public ActionResult Reserve(CreateReserveViewModel createReserveViewModel) { var room = db.Rooms.Find(createReserveViewModel.RoomId); var reserveds = db.Reserveds .Where(x => x.RoomId == createReserveViewModel.RoomId && x.ReservedDate == createReserveViewModel.ReservedDate) .Include(x => x.User); //ViewBag.NameRoom = room.NameRoom; //ViewBag.UsersEmails = db.Users.Select(x => x.UserName).ToList(); string message = ""; if (createReserveViewModel.ReservedDate < DateTime.Today || (createReserveViewModel.ReservedDate == DateTime.Today && createReserveViewModel.ReservedTimeFrom < DateTime.Now.TimeOfDay) ) { message += "Уваги ви бронюєте на минулий час <br/>"; } else if (createReserveViewModel.ReservedDate == DateTime.Today && createReserveViewModel.ReservedTimeFrom.TotalMinutes < DateTime.Now.TimeOfDay.TotalMinutes) { } if (createReserveViewModel.ReservedTimeFrom < room.MinTime || createReserveViewModel.ReservedTimeTo > room.MaxTime) { message += "Час виходить за межі ( " + room.MinTime + " " + room.MaxTime + " ) <br/>"; } if (createReserveViewModel.UsersEmails != null && createReserveViewModel.UsersEmails.Length > room.MaxPeople) { message += $"Не всі помістяться в кімнаті (максимальна кількість: {room.MaxPeople} ) <br/>"; } foreach (var item in reserveds) { if ((createReserveViewModel.ReservedTimeFrom > item.ReservedTimeFrom && createReserveViewModel.ReservedTimeFrom < item.ReservedTimeTo) || (item.ReservedTimeFrom >= createReserveViewModel.ReservedTimeFrom && item.ReservedTimeFrom <= createReserveViewModel.ReservedTimeTo) || (createReserveViewModel.ReservedTimeTo > item.ReservedTimeFrom && createReserveViewModel.ReservedTimeTo < item.ReservedTimeTo)) { message += $"Час перетинається з {item.User.UserName} ({item.ReservedTimeFrom} - {item.ReservedTimeTo})"; } } return(Json(message, JsonRequestBehavior.AllowGet)); }
// GET: Reserveds/Create public ActionResult Create() { //ViewBag.OwnerId = System.Web.HttpContext.Current.User.Identity.GetUserId(); CreateReserveViewModel createReserveViewModel = new CreateReserveViewModel { UserId = currentUserId, GetUserList = db.Users.ToList() }; ViewBag.RoomId = new SelectList(db.Rooms, "RoomId", "NameRoom"); //ViewBag.UsersEmails = db.Users.Select(x => x.UserName).ToList(); ViewBag.CurrentUserName = currentUserName; return(View(createReserveViewModel)); }
public ActionResult Create(CreateReserveViewModel createReserveViewModel) { createReserveViewModel.UserId = currentUserId; if (!ModelState.IsValid) { ViewBag.UsersEmails = db.Users.Select(x => x.UserName).ToList(); ViewBag.RoomId = new SelectList(db.Rooms, "RoomId", "NameRoom", createReserveViewModel.RoomId); return(Json("model is not valid", JsonRequestBehavior.AllowGet)); } if (createReserveViewModel.UsersEmails != null) { createReserveViewModel.SelectedUsersEmails = string.Join(",", createReserveViewModel.UsersEmails); } db.Reserveds.Add(CreateReserveViewModelToReserved.CreateMapper() .Map <CreateReserveViewModel, Reserved>(createReserveViewModel)); db.SaveChanges(); return(Json("success", JsonRequestBehavior.AllowGet)); }
public ActionResult Reserve(int?RoomId) { var room = db.Rooms.Find(RoomId); //createReserveViewModel.GetUserList = db.Users.Select(x => //new ApplicationUser { Id = x.Id, UserName = x.UserName }).ToList(); //var uEmails = db.Users.Select(x => new ApplicationUser //{ //}).ToList(); var allUsers = db.Users.ToList(); CreateReserveViewModel createReserveViewModel = new CreateReserveViewModel { ReservedTimeFrom = room.MinTime, ReservedTimeTo = room.MaxTime, RoomId = RoomId, Room = room, GetUserList = allUsers }; //var allUserNames = db.Users.Select(x => x.UserName).ToList(); //ViewBag.UsersEmails = allUserNames; ViewBag.CurrentUserName = currentUserName; ViewBag.NameRoom = room.NameRoom; //ViewBag.RoomId = new SelectList(db.Rooms, "RoomId","NameRoom"); return(View(createReserveViewModel)); }
public async Task <ActionResult> SaveReserve(CreateReserveViewModel createReserveViewModel) { createReserveViewModel.UserId = currentUserId; if (createReserveViewModel.UsersEmails != null) { var selecteUsersEmails = db.Users.Where(x => createReserveViewModel.UsersEmails.Contains(x.Id)) .Select(x => x.UserName).ToArray(); createReserveViewModel.SelectedUsersEmails = string.Join(",", selecteUsersEmails); } Reserved reserved = new Reserved { ReservedId = createReserveViewModel.ReservedId, EventName = createReserveViewModel.EventName, Description = createReserveViewModel.Description, ReservedDate = createReserveViewModel.ReservedDate, ReservedTimeFrom = createReserveViewModel.ReservedTimeFrom, ReservedTimeTo = createReserveViewModel.ReservedTimeTo, RoomId = createReserveViewModel.RoomId, UserId = createReserveViewModel.UserId, SelectedUsersEmails = createReserveViewModel.SelectedUsersEmails, IsPrivate = createReserveViewModel.IsPrivate, UsersEmails = createReserveViewModel.UsersEmails }; db.Reserveds.Add(reserved); //db.Reserveds.Add( // CreateReserveViewModelToReserved.CreateMapper() // .Map<CreateReserveViewModel, Reserved>(createReserveViewModel) // ); db.SaveChanges(); if (createReserveViewModel.UsersEmails != null) { await Task.Run(async() => { var date = reserved.ReservedDate.ToShortDateString(); var id = reserved.ReservedId; var msg = "Вас запрошено на"; string emailBody = $"<div class='center-block'>" + $"<p>{msg} {reserved.EventName} <br/>" + $"Дата: {date} <br/>" + $"Час початку: {reserved.ReservedTimeFrom} <br/>" + $"Час кінця: {reserved.ReservedTimeTo} <br/>" + $"Організатор: {currentUserName} <br/></p>"; foreach (var email in createReserveViewModel.UsersEmails) { var emailTo = db.Users.Find(email).Email.ToString(); var link = $"https://localhost:44367/Reserveds/AcceptInvite?id={id}&email={emailTo}&accept="; var linkMsg = $"<p><a href = '{link}true' > Прийняти </a> </p> " + $" <p><a href = '{link}false' > Відхилити </a></p></div>"; bool isSend = await SendEmailAsync(emailTo, reserved.EventName, emailBody + linkMsg); } }); } return(Json(reserved.ReservedId, JsonRequestBehavior.AllowGet)); }