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")); }
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()); } }