public async Task <bool> EditClassTimetable(EditClassTimetableViewModel viewModel)
        {
            var dto = new ClassTimetableDto()
            {
                Id            = viewModel.Id,
                StartHour     = viewModel.StartHour,
                StartMinutes  = viewModel.StartMinutes,
                EndHour       = viewModel.EndHour,
                EndMinutes    = viewModel.EndMinutes,
                Weekday       = viewModel.Weekday,
                ClassTypeName = viewModel.ClassTypeName
            };

            var isSuccess = _classTimetableWriter.UpdateClassTimetable(dto);

            return(await Task.FromResult(isSuccess));
        }
        public async Task<ActionResult> Edit(string id)
        {
            if (id == null)
            {
                _logger.Trace("No parameters passed for Edit");
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            var classTypeNames = await _classTypeService.GetAllActiveClassTypeNames();
            var classTimetable = await _classTimetableService.GetClassTimetable(id);

            if (classTimetable == null || classTypeNames == null)
            {
                _logger.Info($"Parameter {id} was passed for Edit but did not return a result");
                return HttpNotFound();
            }

            var viewModel = new EditClassTimetableViewModel(classTimetable, classTypeNames);

            return View(viewModel);
        }
        public async Task<ActionResult> Edit(EditClassTimetableViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var isClassTimerangeValid = ValidateTime(viewModel.StartHour, viewModel.StartMinutes, viewModel.EndHour, viewModel.EndMinutes);
                if (!isClassTimerangeValid)
                {
                    viewModel.ClassTypeNames = await _classTypeService.GetAllActiveClassTypeNames();
                    return View(viewModel);
                }

                var isSuccess = await _classTimetableService.EditClassTimetable(viewModel);

                if (isSuccess)
                {
                    return RedirectToAction("Index");
                }
                return new HttpStatusCodeResult(HttpStatusCode.InternalServerError);
            }

            return View(viewModel);
        }