Example #1
0
        public async Task <Result <ScheduleDto> > UpdateStudentGroupAsync(long scheduleId, UpdateScheduleDto scheduleDTO)
        {
            try
            {
                if (scheduleDTO == null)
                {
                    return(Result <ScheduleDto> .Error(ErrorCode.NotFound, "UpdateScheduleDto is null"));
                }
                var foundSchedule = await _unitOfWork.ScheduleRepository.GetByIdAsync(scheduleId);

                if (foundSchedule == null)
                {
                    return(Result <ScheduleDto> .Error(ErrorCode.NotFound,
                                                       $"Schedule with id={scheduleId} does not exist"));
                }
                var updatedEntity = _mapper.Map <Schedule>(scheduleDTO);

                var errorMessage = Validate(updatedEntity);

                if (errorMessage != null)
                {
                    Result <ScheduleDto> .Error(ErrorCode.ValidationError, errorMessage);
                }

                foundSchedule.RepeatRate = updatedEntity.RepeatRate;

                if (updatedEntity.DayNumber != null)
                {
                    foundSchedule.DayNumber = updatedEntity.DayNumber;
                }
                await _unitOfWork.CommitAsync();

                return(Result <ScheduleDto> .Success(_mapper.Map <ScheduleDto>(foundSchedule)));
            }
            catch
            {
                _unitOfWork.Rollback();

                return(Result <ScheduleDto> .Error(ErrorCode.InternalServerError, "Internal error"));
            }
        }
        public async Task <ActionResult <ScheduleDto> > PutSchedule(long scheduleId, [FromBody] UpdateScheduleDto updateScheduleDto)
        {
            var foundSchedules = await _scheduleService.UpdateStudentGroupAsync(scheduleId, updateScheduleDto);

            return(foundSchedules.ToActionResult());
        }