public async Task <IActionResult> Subscribe(int id) { ViewData["Username"] = HttpContext.User.Identity.Name; if (HttpContext.User.Identity.Name == null) { return(RedirectToAction("Login", "Account")); } Event curr_event = await db.Events.FirstOrDefaultAsync(el => el.Id == id); if (curr_event == null) { return(RedirectToAction("Error", "Home")); } DateEventModel model = new DateEventModel { Events = db.Events, SelectedEvent = curr_event.Title, BeginDate = curr_event.BeginDate, EndDate = curr_event.EndDate }; return(View(model)); }
public async Task <IActionResult> Subscribe(DateEventModel model, string SelectedEvent) { ViewData["Username"] = HttpContext.User.Identity.Name; if (HttpContext.User.Identity.Name == null) { return(RedirectToAction("Login", "Account")); } DateEventModel errModel = new DateEventModel { Events = db.Events, SelectedEvent = SelectedEvent, BeginDate = model.BeginDate, EndDate = model.EndDate }; if (!ModelState.IsValid) { ModelState.AddModelError("", "Некоректные данные"); return(View(errModel)); } User user = await db.Users.FirstOrDefaultAsync(u => u.Nickname == model.Nickname); if (user == null) { ModelState.AddModelError("", "Такого пользователя не существует!"); return(View(errModel)); } Event ev = await db.Events.FirstOrDefaultAsync(u => u.Title == SelectedEvent); if (ev == null) { ModelState.AddModelError("", "Такого события не существует"); return(View(errModel)); } if (model.BeginDate >= DateTime.Now && model.EndDate >= model.BeginDate) { db.DateEvents.Add(new DateEvent { EventId = ev.Id, UserId = user.Id, BeginDate = model.BeginDate, EndDate = model.EndDate }); await db.SaveChangesAsync(); return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("", "Неврно заполнена дата проведения"); return(View(errModel)); } }