private IList <UserOnTimeRangeDto> UserOnTimeRangeParse(UserOnTimeRangeResult userOnTimeRangeResult)
        {
            IList <UserOnTimeRangeDto> userOnTimeRangeDtos = new List <UserOnTimeRangeDto>();
            UserDto user = _userRepository.GetByCode(userOnTimeRangeResult.UserOnTimeRangeForm.Code);

            if (userOnTimeRangeResult.UserOnTimeRangeForm.TimeRanges.Any())
            {
                foreach (var time in userOnTimeRangeResult.UserOnTimeRangeForm.TimeRanges)
                {
                    string timerangestring = time.Key.Replace(_timePrefix, "");

                    if (int.TryParse(timerangestring, out int timeId))
                    {
                        UserOnTimeRangeDto userOnTimeRangeDto = new UserOnTimeRangeDto()
                        {
                            TimeRangeId = timeId,
                            UserId      = user.Id
                        };

                        userOnTimeRangeDtos.Add(userOnTimeRangeDto);
                    }
                }
            }

            return(userOnTimeRangeDtos);
        }
        public UserOnTimeRangeResult SaveUserOnTimeRange(UserOnTimeRangeResult userOnTimeRangeResult)
        {
            if (userOnTimeRangeResult == null || userOnTimeRangeResult.UserOnTimeRangeForm == null)
            {
                throw new ArgumentNullException("No userOnTimeRangeResult send");
            }

            if (string.IsNullOrEmpty(userOnTimeRangeResult.UserOnTimeRangeForm.Code))
            {
                throw new ArgumentNullException("No Code send");
            }

            var userDto = _userRepository.GetByCode(userOnTimeRangeResult.UserOnTimeRangeForm.Code);

            if (userDto == null)
            {
                throw new ArgumentException("Invalid code", nameof(userOnTimeRangeResult.UserOnTimeRangeForm.Code));
            }

            var userOnTimeRangeDtos = UserOnTimeRangeParse(userOnTimeRangeResult);

            _userOnTimeRangeRepository.Clear(userDto);
            userOnTimeRangeDtos = _userOnTimeRangeRepository.Insert(userOnTimeRangeDtos);

            return(UserOnTimeRangeParse(userOnTimeRangeDtos));
        }
 public IActionResult Post([FromBody] UserOnTimeRangeResult userOnTimeResult)
 {
     try
     {
         object offeredGameResult = _userOnTimeService.SaveUserOnTimeRange(userOnTimeResult);
         return(Ok(offeredGameResult));
     }
     catch (Exception exc)
     {
         _logger.LogError(exc, exc.Message);
         return(BadRequest(exc.Message));
     }
 }
        private UserOnTimeRangeResult UserOnTimeRangeParse(IList <UserOnTimeRangeDto> userOnTimeRangeDtos)
        {
            UserOnTimeRangeResult userOnTimeRangeResult = new UserOnTimeRangeResult()
            {
                UserOnTimeRangeForm = new UserOnTimeRangeForm()
            };

            if (userOnTimeRangeDtos.Any())
            {
                userOnTimeRangeResult.UserOnTimeRangeForm.TimeRanges = new Dictionary <string, string>();
                foreach (var time in userOnTimeRangeDtos)
                {
                    userOnTimeRangeResult.UserOnTimeRangeForm.TimeRanges.Add(_timePrefix + time.TimeRangeId, "on");
                }

                //TODO Check if valid
                userOnTimeRangeResult.UserOnTimeRangeForm.Code = userOnTimeRangeDtos[0].User.Code;
            }

            return(userOnTimeRangeResult);
        }