public async Task <IActionResult> AddOneTimeSubscription(AddSubscriptionViewModel model) { IEnumerable <Course> teacherCourses = _courseService.GetTeacherCourses( HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier), model.SchoolId, true); if (teacherCourses == null || teacherCourses.Where(cour => cour.AllowOneTimePrice == true).Count() == 0) { TempData["ErrorMessage"] = "У вас немає активних курсів з разовими абонементми"; return(RedirectToAction(nameof(Index), new { model.SchoolId })); } model.TeacherCourses = teacherCourses; Subscription subscription = new Subscription(); if (model == null) { return(RedirectToAction(nameof(AddOneTimeSubscription))); } if (model.Student == null) { return(RedirectToAction(nameof(AddOneTimeSubscription))); } if (string.IsNullOrEmpty(model.Student.FullName) && string.IsNullOrEmpty(model.Student.Id)) { TempData["ErrorMessage"] = "Потрібно вибрати учня "; return(View(model)); } if (string.IsNullOrEmpty(model.Student.Id) && (model.Student.FullName.Length < 5)) { TempData["ErrorMessage"] = "Ім'я повинно бути довше 5 символів"; return(View(model)); } if (string.IsNullOrEmpty(model.SelectedPaymentType)) { TempData["ErrorMessage"] = "Виберіть тип оплати"; return(View(model)); } if (model.Month.Year < 2000) { return(RedirectToAction(nameof(AddOneTimeSubscription))); } if (model.SelectedCours == null || string.IsNullOrEmpty(model.SelectedCours.Id)) { return(RedirectToAction(nameof(AddOneTimeSubscription))); } if (!string.IsNullOrEmpty(model.Student.Id)) { var student = await _userService.GetUserAsync(model.Student.Id); subscription.AppUserId = model.Student.Id; subscription.FullName = student.FullName; subscription.Phone = student.PhoneNumber; } else if (!string.IsNullOrEmpty(model.Student.FullName)) { subscription.FullName = model.Student.FullName; if (!string.IsNullOrEmpty(model.Student.PhoneNumber)) { subscription.Phone = model.Student.PhoneNumber; } } else { return(RedirectToAction(nameof(AddOneTimeSubscription))); } subscription.Id = Guid.NewGuid().ToString(); subscription.Period = model.Month; subscription.CourseId = model.SelectedCours.Id; subscription.MonthSubscription = false; subscription.CreatedDatetime = DateTime.Now; subscription.Payments = new List <Payment> { new Payment { DateTime = DateTime.Now, PaymentTypeId = model.SelectedPaymentType, Price = model.SelectedCours.Price, PayedToId = HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier), }, }; subscription.Price = teacherCourses.FirstOrDefault(cour => cour.Id == model.SelectedCours.Id).OneTimePrice; IdentityResult result = await _subscriptionsService.CreateSubscriptionAsync(subscription); if (result.Succeeded) { TempData["SuccessMessage"] = "Відвідування додано"; } else if (result.Errors.Count() > 0) { string erorMessage = ""; foreach (var error in result.Errors) { erorMessage += error.Description; } TempData["ErrorMessage"] = erorMessage; } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> PostSubscriptionAsync() { await _subscriptionsService.CreateSubscriptionAsync(); return(NoContent()); }