Exemplo n.º 1
0
        internal static async Task <TrainingWeek> CopyTrainingWeekAsync(CopyTrainingWeek copyTrainingWeek)
        {
            if (copyTrainingWeek == null)
            {
                return(null);
            }

            return(await HttpConnector.Instance.PostAsync <CopyTrainingWeek, TrainingWeek>("Api/TrainingWeeks/Copy", copyTrainingWeek));
        }
        private void SynchronizeData()
        {
            CopyTrainingWeek                  = new CopyTrainingWeek();
            CopyTrainingWeek.UserId           = _originTrainingWeek.UserId;
            CopyTrainingWeek.OriginYear       = _originTrainingWeek.Year;
            CopyTrainingWeek.OriginWeekOfYear = _originTrainingWeek.WeekOfYear;
            CopyTrainingWeek.Year             = _originTrainingWeek.Year;
            CopyTrainingWeek.WeekOfYear       = Math.Min(52, _originTrainingWeek.WeekOfYear + 1);

            OnPropertyChanged("CopyTrainingWeek");
        }
        public IActionResult Copy([FromBody] CopyTrainingWeek copyTrainingWeek)
        {
            if (copyTrainingWeek == null)
            {
                return(BadRequest());
            }

            try
            {
                TrainingWeek trainingWeek;
                if (!_trainingWeeksService.CopyTrainingWeek(SessionUserId, copyTrainingWeek, out trainingWeek))
                {
                    return(new OkResult());
                }

                return(new OkObjectResult(trainingWeek));
            }
            catch (Exception exception) when(exception is ErrorException || exception is Exception)
            {
                return(BadRequest(new WebApiException("Error", exception)));
            }
        }
Exemplo n.º 4
0
        public bool CopyTrainingWeek(string currentUserId, CopyTrainingWeek copyTrainingWeek, out TrainingWeek newTrainingWeek)
        {
            bool result = false;

            BeginTransaction();
            try
            {
                result = GetTrainingWeekManager().CopyTrainingWeek(currentUserId, copyTrainingWeek, out newTrainingWeek);
                CommitTransaction();
                result = true;
            }
            catch (Exception exception)
            {
                _logger.LogCritical("Unable to copy training week", exception);
                RollbackTransaction();
                throw exception;
            }
            finally
            {
                EndTransaction();
            }
            return(result);
        }
Exemplo n.º 5
0
        public bool CopyTrainingWeek(string currentUserId, CopyTrainingWeek copyTrainingWeek, out TrainingWeek newTrainingWeek)
        {
            newTrainingWeek = null;
            if (string.IsNullOrWhiteSpace(copyTrainingWeek.UserId) || copyTrainingWeek.OriginYear == 0 || copyTrainingWeek.OriginWeekOfYear == 0 ||
                copyTrainingWeek.Year == 0 || copyTrainingWeek.WeekOfYear == 0 || currentUserId != copyTrainingWeek.UserId)
            {
                return(false);
            }

            bool result = false;

            //Verify valid week of year
            if (copyTrainingWeek.WeekOfYear > 0 && copyTrainingWeek.WeekOfYear <= 52 &&
                !(copyTrainingWeek.Year == copyTrainingWeek.OriginYear && copyTrainingWeek.WeekOfYear == copyTrainingWeek.OriginWeekOfYear))
            {
                //check if new trainingWeek exist
                var trainingWeekScenario = new TrainingWeekScenario()
                {
                    ManageTrainingDay = false
                };
                var trainingWeekKey = new TrainingWeekKey()
                {
                    UserId = copyTrainingWeek.UserId, Year = copyTrainingWeek.Year, WeekOfYear = copyTrainingWeek.WeekOfYear
                };
                var trainingWeek = GetTrainingWeek(trainingWeekKey, trainingWeekScenario);

                if (trainingWeek != null)
                {
                    throw new ErrorException(string.Format(Translation.P0_ALREADY_EXIST, Translation.TRAINING_WEEK));
                }

                // Check if origin training week exist
                trainingWeekScenario = new TrainingWeekScenario()
                {
                    ManageTrainingDay   = true,
                    TrainingDayScenario = new TrainingDayScenario()
                    {
                        ManageExercise = true
                    }
                };
                trainingWeekKey = new TrainingWeekKey()
                {
                    UserId = copyTrainingWeek.UserId, Year = copyTrainingWeek.OriginYear, WeekOfYear = copyTrainingWeek.OriginWeekOfYear
                };
                trainingWeek = GetTrainingWeek(trainingWeekKey, trainingWeekScenario);

                if (trainingWeek == null)
                {
                    throw new ErrorException(string.Format(Translation.P0_NOT_EXIST, Translation.TRAINING_WEEK));
                }

                //Change ids of origin training week/exercise/day etc.. for new trainingweek
                ChangeIDForNewTrainingWeek(trainingWeek, copyTrainingWeek.OriginYear, copyTrainingWeek.OriginWeekOfYear, copyTrainingWeek.Year, copyTrainingWeek.WeekOfYear);

                // Create data in database (with update for Security existing old data in database)
                trainingWeek = UpdateTrainingWeek(trainingWeek, trainingWeekScenario);

                if (trainingWeek == null)
                {
                    throw new ErrorException(string.Format(Translation.IMPOSSIBLE_TO_CREATE_P0, Translation.TRAINING_WEEK));
                }
                else
                {
                    result          = true;
                    newTrainingWeek = trainingWeek;
                }
            }
            return(result);
        }