public async Task <IActionResult> Index(ConfirmPaymentViewModel model)
        {
            var user = await _userManager.GetUserAsync(User);

            var marker = await _context.Markers.FirstOrDefaultAsync(x => x.Id == model.MarkerId);

            var seedling = await _context.Seedlings.FirstOrDefaultAsync(x => x.Id == model.SeedlingId);

            var payment = new Payment
            {
                User            = user,
                Marker          = marker,
                Seedling        = seedling,
                PurchasedAmount = model.PurchasedAmount,
                Price           = model.Price
            };
            await _context.Payments.AddAsync(payment);

            await new EmailService().SendEmailAsync(user.Email, "Статус оплати",
                                                    $"Дорога(-ий) {user.Name} {user.UserSurname}," +
                                                    $" дякуємо вам за оплату! Зовсім скоро ви отримаєте електронне повідомлення про статус оплати!");
            if (seedling.Amount > 0)
            {
                seedling.Amount -= model.PurchasedAmount;
                _context.Update(seedling);
            }
            if (marker.PlantCount > 0)
            {
                marker.PlantCount -= model.PurchasedAmount;
                _context.Update(marker);
            }
            if (marker.PlantCount == 0)
            {
                marker.isPlantingFinished = true;
                _context.Update(marker);
            }

            await _context.SaveChangesAsync();


            return(RedirectToAction("Index", "Map"));
        }
示例#2
0
        public async Task <IActionResult> Purchases(int?id)
        {
            if (id != null)
            {
                var          purchase     = _context.Payments.FirstOrDefault(x => x.Id == id);
                var          user         = _context.Users.FirstOrDefault(x => x.Id == purchase.UserId);
                EmailService emailService = new EmailService();

                await emailService.SendEmailAsync(user.Email, "Вітання!!!",
                                                  $"Дорога(-ий) {user.Name} {user.UserSurname}, ваша оплата була успішно підтверджена!" +
                                                  $"\nВаше бажання врятувати світ є більшим, ніж наша вдячність вам!\nСлідкуйте за нашими оновленнями, щоб бути в курсі всього!");

                purchase.IsPaymentSucceded = true;
                _context.Update(purchase);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Purchases"));
            }
            else
            {
                return(NotFound());
            }
        }