public bool IsOkToCreateUnavailableInDates(string ApplicationUserId, DateTime StartDate, DateTime EndDate) { if ((StartDate == null || EndDate == null || ApplicationUserId == null) || (StartDate > EndDate) || db.Users.Find(ApplicationUserId) == null) { return(false); } var unavailableDateList = GetUnavailableInDatesListForUser(ApplicationUserId); UnavailableInDate old = IsExistUnavailableInDate(ApplicationUserId, StartDate, EndDate); foreach (var item in unavailableDateList) { if (item.StartDate > StartDate && item.EndDate > EndDate) { continue; } else if (item.StartDate < StartDate && item.EndDate < EndDate) { continue; } else if (item.Equals(old)) { continue; } else { return(false); } } return(true); }
public async Task <ActionResult> UnavailableDateCreate(UnavailableDateCreateVM uv) { var userId = User.Identity.GetUserId(); try { if (ModelState.IsValid && uv != null && uv.StartDate != null && uv.EndDate != null) { if (IsOkToCreateUnavailableInDates(userId, uv.StartDate, uv.EndDate)) { if (IsExistUnavailableInDate(userId, uv.StartDate, uv.EndDate) != null) { return(RedirectToAction("Index")); } UnavailableInDate newUnavailableInDate = db.UnavailableInDates.Add(NewUnavailableInDate(userId, uv.StartDate, uv.EndDate)); var success = await db.SaveChangesAsync(); return(RedirectToAction("Index")); } } } catch (DataException dex) { //Log the error (uncomment dex variable name and add a line here to write a log. ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); } return(RedirectToAction("Index")); }
public async Task <ActionResult> DeleteConfirmedUnavailableInDate(UnavailableInDate un) { UnavailableInDate old = IsExistUnavailableInDate(un.ApplicationUserId, un.StartDate, un.EndDate); db.UnavailableInDates.Remove(old); db.Entry(old).State = EntityState.Deleted; await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> DeleteUnavailableInDate(UnavailableInDate un) { if (un == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } UnavailableInDate old = IsExistUnavailableInDate(un.ApplicationUserId, un.StartDate, un.EndDate); return(old != null ? (ActionResult)View(old) : HttpNotFound()); }
public bool IsOkToUpdateUnavailableInDates(string ApplicationUserId, DateTime NewStartDate, DateTime NewEndDate, DateTime OldStartDate, DateTime OldEndDate) { if ((ApplicationUserId == null || NewStartDate == null || NewEndDate == null || OldStartDate == null || OldEndDate == null) || db.Users.Find(ApplicationUserId) == null || NewStartDate > NewEndDate) { return(false); } UnavailableInDate old = IsExistUnavailableInDate(ApplicationUserId, OldStartDate, OldEndDate); var unavailableDateList = GetUnavailableInDatesListForUser(ApplicationUserId); if (old == null || unavailableDateList.Count == 0) { return(false); } foreach (var item in unavailableDateList) { if (item.StartDate > NewStartDate && item.EndDate > NewEndDate) { continue; } else if (item.StartDate < NewStartDate && item.EndDate < NewEndDate) { continue; } else if (item.Equals(old)) { continue; } else { return(false); } } return(true); }