public PaymentResult ValidationPayment(PaymentResult result, User user, TransferTransact transfer, PaymentData paymentData) { if (!GetPhoneNotification("111")) { result.PaymentStatus = PaymentStatus.PhoneCodeInvalid; return(result); } if (user == null) { result.PaymentStatus = PaymentStatus.UserNotFound; transfer.PaymentStatus = PaymentStatus.UserNotFound; FakeDataRepository.TransferTransacts.Add(transfer); return(result); } transfer.UserId = user.IdUser; if (user.Account.AccountNumber != paymentData.NumberCard || user.Account.CVV != paymentData.CVV) { result.PaymentStatus = PaymentStatus.CardNotExist; transfer.PaymentStatus = PaymentStatus.CardNotExist; FakeDataRepository.TransferTransacts.Add(transfer); return(result); } if (user.Account.MoneyAccount < paymentData.AmountOfPayment) { result.PaymentStatus = PaymentStatus.NotEnoughMoney; transfer.PaymentStatus = PaymentStatus.NotEnoughMoney; FakeDataRepository.TransferTransacts.Add(transfer); return(result); } if (!string.IsNullOrWhiteSpace(paymentData.PhoneNumber)) { PhoneService phoneService = new PhoneService(); if (!phoneService.CodeIdentic(paymentData.PhoneNumber)) { result.PaymentStatus = PaymentStatus.PhoneCodeInvalid; transfer.PaymentStatus = PaymentStatus.PhoneCodeInvalid; FakeDataRepository.TransferTransacts.Add(transfer); return(result); } } var newManager = Users.First(a => a.UserId == user.IdUser); if (newManager != CurrentManager) { SetCurrentManager(newManager); } result.PaymentStatus = PaymentStatus.Success; return(result); }
private async Task <PaymentResult> Payment(PaymentData paymentData) { TransferTransact transfer = new TransferTransact { Date = DateTime.Now, MoneyAccount = paymentData.AmountOfPayment, NumberCard = paymentData.NumberCard, PurposeOfPayment = paymentData.PurposeOfPayment, TransferTransactId = 5 }; PaymentResult result = new PaymentResult(); string[] userName = paymentData.FullName.Split(' '); var user = FakeDataRepository.Users.FirstOrDefault(a => a.UserName == userName[0] && a.UserSurname == userName[1]); result = ValidationPayment(result, user, transfer, paymentData); if (result.PaymentStatus != PaymentStatus.Success) { return(result); } user.Account.MoneyAccount -= paymentData.AmountOfPayment; result.PaymentStatus = PaymentStatus.Success; transfer.PaymentStatus = PaymentStatus.Success; FakeDataRepository.TransferTransacts.Add(transfer); if (!string.IsNullOrWhiteSpace(paymentData.Email) || !string.IsNullOrWhiteSpace(user.UserEmail)) { string email = paymentData.Email ?? user.UserEmail; EmailService emailService = new EmailService(); emailService.SendEmail(transfer, email); } return(result); }
public void SendEmail(TransferTransact tranfer, string userEmail) { SmtpClient smtp = new SmtpClient(); smtp.Port = 587; smtp.Host = SettingsConst.Host; smtp.Credentials = new NetworkCredential(SettingsConst.FromAdress, SettingsConst.PasswordMail); MailMessage message = new MailMessage(); smtp.EnableSsl = true; message.From = new MailAddress(SettingsConst.FromAdress); message.To.Add(new MailAddress("*****@*****.**")); message.Subject = "GameStore Payment"; string text = "Transfer ID: " + tranfer.TransferTransactId + "\n User ID " + tranfer.UserId + "\n Payment Status: " + tranfer.PaymentStatus + "\n Card: " + tranfer.NumberCard + "\n Money Account " + tranfer.MoneyAccount + "\n Date: " + tranfer.Date + "\n"; if (tranfer.PaymentStatus != PaymentStatus.Success) { text += tranfer.ErrorMessage; } message.Body = text; try { smtp.Send(message); } catch (SmtpException ex) { throw new SmtpException(ex.Message); } }