コード例 #1
0
        public IActionResult Create([FromBody] TrainingDayViewModel viewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (string.IsNullOrWhiteSpace(viewModel.UserId) || viewModel.Year == 0 || viewModel.WeekOfYear == 0 ||
                        viewModel.DayOfWeek < 0 || viewModel.DayOfWeek > 6 || SessionUserId != viewModel.UserId)
                    {
                        return(BadRequest());
                    }

                    //Verify trainingWeek exist
                    var trainingWeekKey = new TrainingWeekKey()
                    {
                        UserId     = viewModel.UserId,
                        Year       = viewModel.Year,
                        WeekOfYear = viewModel.WeekOfYear
                    };
                    var trainingWeekScenario = new TrainingWeekScenario()
                    {
                        ManageTrainingDay = false
                    };
                    var trainingWeek = _trainingWeeksService.GetTrainingWeek(trainingWeekKey, trainingWeekScenario);

                    if (trainingWeek == null)
                    {
                        return(BadRequest(new WebApiException(string.Format(Translation.P0_NOT_EXIST, Translation.TRAINING_WEEK))));
                    }

                    //Verify valid week of year
                    if (viewModel.WeekOfYear > 0 && viewModel.WeekOfYear <= 52)
                    {
                        var trainingDay = ControllerUtils.TransformViewModelToTrainingDay(viewModel);
                        trainingDay = _trainingDaysService.CreateTrainingDay(trainingDay);
                        if (trainingDay == null)
                        {
                            return(BadRequest(new WebApiException(string.Format(Translation.IMPOSSIBLE_TO_CREATE_P0, Translation.TRAINING_DAY))));
                        }
                        else
                        {
                            return(new OkObjectResult(trainingDay));
                        }
                    }
                    else
                    {
                        return(BadRequest());
                    }
                }
                else
                {
                    return(BadRequest(new WebApiException(ControllerUtils.GetModelStateError(ModelState))));
                }
            }
            catch (Exception exception)
            {
                return(BadRequest(new WebApiException("Error", exception)));
            }
        }
コード例 #2
0
        private async Task <TrainingDayViewModel> GetIndexViewModelAsync(Guid trainingDayId)
        {
            var parentRoutine = await _bll.WorkoutRoutines.FindWithTrainingDayIdAsync(trainingDayId);

            var trainingDay = await _bll.TrainingDays.FindAsync(trainingDayId);

            var viewModel = new TrainingDayViewModel
            {
                WorkoutRoutineId = parentRoutine.Id,
                TrainingDay      = trainingDay
            };

            return(viewModel);
        }
コード例 #3
0
        public TrainingDayPage(TrainingDayViewModel viewModel) : base(viewModel)
        {
            InitializeComponent();

            /*if (this.ToolbarItems != null && Device.OS == TargetPlatform.iOS)
             * {
             *      for (int i = 0; i < ToolbarItems.Count; i++) {
             *              if (ToolbarItems[i].Text == viewModel.PrintLabel) {
             *                      this.ToolbarItems.Remove (ToolbarItems[i]);
             *                      break;
             *              }
             *      }
             * }*/
        }
コード例 #4
0
        public static TrainingDay TransformViewModelToTrainingDay(TrainingDayViewModel viewModel)
        {
            TrainingDay trainingDay = new TrainingDay();

            trainingDay.UserId        = viewModel.UserId;
            trainingDay.Year          = viewModel.Year;
            trainingDay.WeekOfYear    = viewModel.WeekOfYear;
            trainingDay.DayOfWeek     = viewModel.DayOfWeek;
            trainingDay.TrainingDayId = viewModel.TrainingDayId;
            trainingDay.BeginHour     = viewModel.BeginHour.ToUniversalTime();
            trainingDay.EndHour       = viewModel.EndHour.ToUniversalTime();
            trainingDay.Unit          = Utils.IntToEnum <TUnitType>(viewModel.Unit);

            return(trainingDay);
        }
コード例 #5
0
        public static TrainingDayViewModel TrainingDayToViewModel(TrainingDay trainingDay, UserInfo userInfo)
        {
            var result = new TrainingDayViewModel()
            {
                UserId = trainingDay.UserId,
                Year = trainingDay.Year,
                WeekOfYear = trainingDay.WeekOfYear,
                DayOfWeek = trainingDay.DayOfWeek,
                TrainingDayId = trainingDay.TrainingDayId
            };

            //convert date to user timezone
            var timeZoneInfo = TimeZoneMapper.GetTimeZoneByOlsonName(userInfo.TimeZoneName);
            if (timeZoneInfo == null)
                timeZoneInfo = TimeZoneInfo.Local;
            result.BeginHour = TimeZoneInfo.ConvertTime(trainingDay.BeginHour, timeZoneInfo);
            result.EndHour = TimeZoneInfo.ConvertTime(trainingDay.EndHour, timeZoneInfo);

            return result;
        }
コード例 #6
0
        public static TrainingDayViewModel TrainingDayToViewModel(TrainingDay trainingDay, UserInfo userInfo)
        {
            //convert date to user timezone
            var timeZoneInfo = TimeZoneMapper.GetTimeZoneByOlsonName(userInfo.TimeZoneName);

            if (timeZoneInfo == null)
            {
                timeZoneInfo = TimeZoneInfo.Local;
            }

            var result = new TrainingDayViewModel()
            {
                UserId        = trainingDay.UserId,
                Year          = trainingDay.Year,
                WeekOfYear    = trainingDay.WeekOfYear,
                DayOfWeek     = trainingDay.DayOfWeek,
                TrainingDayId = trainingDay.TrainingDayId,
                BeginHour     = TimeZoneInfo.ConvertTime(trainingDay.BeginHour, timeZoneInfo),
                EndHour       = TimeZoneInfo.ConvertTime(trainingDay.EndHour, timeZoneInfo),
                Unit          = (int)trainingDay.Unit
            };

            if (trainingDay.TrainingExercises != null)
            {
                foreach (var trainingExercise in trainingDay.TrainingExercises)
                {
                    if (result.RegroupExerciseUnitType == null)
                    {
                        result.RegroupExerciseUnitType = trainingExercise.ExerciseUnitType;
                    }
                    else if (result.RegroupExerciseUnitType != trainingExercise.ExerciseUnitType)
                    {
                        result.RegroupExerciseUnitType = null; // Mixt, stop foreach
                        break;
                    }
                }
            }


            return(result);
        }