From de4d60b2286db5f424f88b011c06536b765c8632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hora=C8=9Biu=20Mlendea?= Date: Tue, 28 Apr 2026 22:04:39 +0300 Subject: [PATCH] paypal: Integrated with PayPal --- Program.cs | 1 + Service/EmailWorker.cs | 1 + Service/Processors/IPayPalProcessor.cs | 9 ++++++ Service/Processors/PayPalProcessor.cs | 38 ++++++++++++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 Service/Processors/IPayPalProcessor.cs create mode 100644 Service/Processors/PayPalProcessor.cs diff --git a/Program.cs b/Program.cs index ff91364..b5e3b8d 100644 --- a/Program.cs +++ b/Program.cs @@ -73,6 +73,7 @@ static IServiceProvider CreateIOC() .AddSingleton() .AddSingleton() .AddSingleton() + .AddSingleton() .AddSingleton() .AddSingleton() .AddSingleton() diff --git a/Service/EmailWorker.cs b/Service/EmailWorker.cs index 50773cd..db3c754 100644 --- a/Service/EmailWorker.cs +++ b/Service/EmailWorker.cs @@ -14,6 +14,7 @@ public class EmailWorker( IAliExpressProcessor aliExpressProcessor, IGandiProcessor gandiProcessor, IOpsGenieEmailProcessor opsGenieEmailProcessor, + IPayPalProcessor payPalProcessor, IProfiProcessor profiProcessor, IEmailProcessor emailProcessor, ImapSettings imapSettings, diff --git a/Service/Processors/IPayPalProcessor.cs b/Service/Processors/IPayPalProcessor.cs new file mode 100644 index 0000000..6256a62 --- /dev/null +++ b/Service/Processors/IPayPalProcessor.cs @@ -0,0 +1,9 @@ +using PersonalDataLogger.Service.Models; + +namespace PersonalDataLogger.Service.Processors +{ + public interface IPayPalProcessor + { + void ProcessEmail(AvailableEmail email); + } +} diff --git a/Service/Processors/PayPalProcessor.cs b/Service/Processors/PayPalProcessor.cs new file mode 100644 index 0000000..50a2a1e --- /dev/null +++ b/Service/Processors/PayPalProcessor.cs @@ -0,0 +1,38 @@ +using System.Collections.Generic; +using System.Text.RegularExpressions; +using PersonalDataLogger.Client; +using PersonalDataLogger.Service.Models; + +namespace PersonalDataLogger.Service.Processors +{ + public class PayPalProcessor( + IPersonalLogManagerService personalLogManagerService) + : IPayPalProcessor + { + const string PlatformName = "PayPal"; + + public void ProcessEmail(AvailableEmail email) + { + if (email.Subject.Contains("Conectare de pe un dispozitiv nou")) + { + Match emailAddressMatch = Regex.Match( + email.Body, + @"contul tău PayPal, (?[^:]+):", + RegexOptions.IgnoreCase); + + string emailAddress = emailAddressMatch.Success + ? emailAddressMatch.Groups["username"].Value + : string.Empty; + + personalLogManagerService.SendPersonalLogToManager( + email.Timestamp, + "AccountLogin", + new Dictionary() + { + ["platform"] = PlatformName, + ["username"] = emailAddress + }); + } + } + } +}