public async Task<ActionResult> Create(AddClassTimetableViewModel viewModel)
        {
            if (viewModel == null)
            {
                _logger.Trace("Null parameter passed for Create ClassTimetable");
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            if (ModelState.IsValid)
            {
                var isClassTimerangeValid = ValidateTime(viewModel.StartHour, viewModel.StartMinutes, viewModel.EndHour, viewModel.EndMinutes);
                if (!isClassTimerangeValid)
                {
                    _logger.Info($"An attempt was made to create a class timetable outside of the gym opening times");
                    viewModel.ClassTypeNames = await _classTypeService.GetAllActiveClassTypeNames();
                    return View(viewModel);
                }

                var isSuccess = await _classTimetableService.AddClassTimetable(viewModel);

                if (isSuccess == true)
                {
                    return RedirectToAction("Index");
                }
            }

            return View(viewModel);
        }
        public async Task <bool> AddClassTimetable(AddClassTimetableViewModel viewModel)
        {
            var dto = new ClassTimetableDto()
            {
                Id            = Guid.NewGuid().ToString(),
                StartHour     = viewModel.StartHour,
                StartMinutes  = viewModel.StartMinutes,
                EndHour       = viewModel.EndHour,
                EndMinutes    = viewModel.EndMinutes,
                Weekday       = viewModel.Weekday,
                ClassTypeName = viewModel.ClassTypeName
            };

            var isSuccess = _classTimetableWriter.AddClassTimetable(dto);

            return(await Task.FromResult(isSuccess));
        }
        public async Task<ActionResult> Create(int weekday, int startHour)
        {
            if (weekday < 0 || weekday > 7)
            {
                _logger.Info($"An attempt was made to create a timetable entry with the weekday parameter as {weekday}");
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            var classTypeNames = await _classTypeService.GetAllActiveClassTypeNames();

            if (classTypeNames == null)
            {
                _logger.Info($"There may be no class types created yet");
                return HttpNotFound();
            }

            var newClass = new AddClassTimetableViewModel(weekday, startHour, classTypeNames);

            return View(newClass);
        }