public async Task <IActionResult> AddLaundry(DayViewModel parentModel) { var laundry = parentModel.LaundryToAdd; if (!await _authHelpers.CheckDormitoryMembership(User, _dormitoryRepo.GetSingleById(laundry.DormitoryId))) { return(ControllerHelpers.ShowAccessDeniedErrorPage(this)); } DayViewModel model = null; var wholeWorkingTime = laundry.startTime + laundry.shiftTime * laundry.shiftCount; if (wholeWorkingTime.TotalHours > 24) { model = CreateDayViewModel(laundry.DormitoryId, DateTime.Today); model.AddLaundryError = "Laundry's working time ends after midnight."; } else if (_laundryRepo.Laundries.Any(x => x.DormitoryId == laundry.DormitoryId && x.Position == laundry.Position)) { model = CreateDayViewModel(laundry.DormitoryId, DateTime.Today); model.AddLaundryError = "There is a laundry with the same number."; } if (model != null) { model.LaundryToAdd = new Laundry { startTime = laundry.startTime, shiftCount = laundry.shiftCount, shiftTime = laundry.shiftTime, Position = laundry.Position, DormitoryId = laundry.DormitoryId }; return(View(nameof(Day), model)); } var addedLaundry = _laundryRepo.AddLaundry(laundry.DormitoryId, laundry.Position); addedLaundry.startTime = laundry.startTime; addedLaundry.shiftCount = laundry.shiftCount; addedLaundry.shiftTime = laundry.shiftTime; _laundryRepo.UpdateLaundry(addedLaundry); return(RedirectToDayByLaundryId(addedLaundry.Id, DateTime.Now.Date)); }