public async Task <IActionResult> Create(ShiftCalendarEditViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var dateExists = await _shiftCalendarService.ExistsAsync(viewModel.WorkDate);

            if (dateExists)
            {
                ModelState.AddModelError("Error", "Work date already exists.");
                return(View(viewModel));
            }

            var shift = new ShiftCalendarModel
            {
                WorkDate = viewModel.WorkDate,
                WorkType = viewModel.WorkType,
                ShiftId  = viewModel.ShiftId
            };

            await _shiftCalendarService.AddAsync(shift);

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Create()
        {
            var viewModel = new ShiftCalendarEditViewModel
            {
                Shifts = await _employeeDetailService.GetShifts()
            };

            return(View(viewModel));
        }
        public async Task <IActionResult> Edit(ShiftCalendarEditViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var shift = new ShiftCalendarModel
            {
                WorkDate = model.WorkDate,
                WorkType = model.WorkType,
                ShiftId  = model.ShiftId
            };

            await _shiftCalendarService.UpdateAsync(shift);

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Edit(string date)
        {
            var selectedDate = Convert.ToDateTime(date);

            var shiftCalendar = await _shiftCalendarService.GetByDateAsync(selectedDate);

            if (shiftCalendar == null)
            {
                return(NotFound());
            }

            var editModel = new ShiftCalendarEditViewModel
            {
                WorkDate = shiftCalendar.WorkDate,
                WorkType = shiftCalendar.WorkType,
                ShiftId  = shiftCalendar.ShiftId,
                Shifts   = await _employeeDetailService.GetShifts()
            };

            return(View(editModel));
        }