Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }