public static async Task <bool> ShowAsync(TrainingWeek originTrainingWeek, BaseViewModel parent = null)
        {
            var viewModel = new CopyTrainingWeekViewModel();

            viewModel._originTrainingWeek = originTrainingWeek;
            return(await ShowModalViewModelAsync(viewModel, parent));
        }
        private void ConfirmClose(object sender, RoutedEventArgs e)
        {
            string text = ((ComboBoxItem)fatique_combo.SelectedItem).Content.ToString();
            int    fatique;

            if (text == "low")
            {
                fatique = 24;
            }
            else if (text == "medium")
            {
                fatique = 40;
            }
            else if (text == "high")
            {
                fatique = 56;
            }
            else
            {
                fatique = 72;
            }

            string squat_primary    = ((ComboBoxItem)squat_primary_combo.SelectedItem).Content.ToString();
            string bench_primary    = ((ComboBoxItem)bench_primary_combo.SelectedItem).Content.ToString();
            string deadlift_primary = ((ComboBoxItem)deadlift_primary_combo.SelectedItem).Content.ToString();

            MainWorkouts main_workouts = new MainWorkouts(bench_primary, deadlift_primary, squat_primary);

            TrainingWeek new_week = new TrainingWeek(template_path, trainingBlock.GetBlockType(), fatique, main_workouts);

            trainingBlock.GetTrainingWeeks().Add(new_week);
            this.Close();
        }
示例#3
0
        private void ChangeIDForNewTrainingWeek(TrainingWeek trainingWeek, int oldTrainingYear, int oldTrainingWeek, int newTrainingYear, int newTrainingWeek)
        {
            trainingWeek.Year       = newTrainingYear;
            trainingWeek.WeekOfYear = newTrainingWeek;
            if (trainingWeek.TrainingDays != null)
            {
                foreach (var trainginDay in trainingWeek.TrainingDays)
                {
                    trainginDay.Year       = newTrainingYear;
                    trainginDay.WeekOfYear = newTrainingWeek;

                    if (trainginDay.TrainingExercises != null)
                    {
                        foreach (var trainginsExercise in trainginDay.TrainingExercises)
                        {
                            trainginsExercise.Year       = newTrainingYear;
                            trainginsExercise.WeekOfYear = newTrainingWeek;

                            if (trainginsExercise.TrainingExerciseSets != null)
                            {
                                foreach (var set in trainginsExercise.TrainingExerciseSets)
                                {
                                    set.Year       = newTrainingYear;
                                    set.WeekOfYear = newTrainingWeek;
                                }
                            }
                        }
                    }
                }
            }
        }
示例#4
0
        private async Task <bool> SaveDataAsync()
        {
            TrainingWeek trainingWeek = null;

            if (EditMode == TEditMode.Create)
            {
                trainingWeek = await TrainingWeekWebService.CreateTrainingWeekAsync(TrainingWeek);

                if (trainingWeek != null)
                {
                    var trainingWeekScenario = new TrainingWeekScenario()
                    {
                        ManageTrainingDay = true
                    };
                    _trainingWeekService.UpdateTrainingWeek(trainingWeek, trainingWeekScenario);
                }
            }
            else
            {
                var trainingWeekScenario = new TrainingWeekScenario()
                {
                    ManageTrainingDay = false
                };
                trainingWeek = await TrainingWeekWebService.UpdateTrainingWeekAsync(TrainingWeek, trainingWeekScenario);

                if (trainingWeek != null)
                {
                    _trainingWeekService.UpdateTrainingWeek(trainingWeek, trainingWeekScenario);
                }
            }

            return(trainingWeek != null);
        }
示例#5
0
        private async Task CreateNewTrainingWeekActionAsync()
        {
            try
            {
                var userInfo = UserData.Instance.UserInfo;
                if (userInfo == null)
                {
                    userInfo = new UserInfo();
                }

                DateTime dateTime     = DateTime.Now;
                var      trainingWeek = new TrainingWeek()
                {
                    UserId     = userInfo.UserId,
                    Year       = dateTime.Year,
                    WeekOfYear = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday),
                    UserHeight = userInfo.Height,
                    UserWeight = userInfo.Weight,
                    Unit       = userInfo.Unit
                };

                if (await EditTrainingWeekViewModel.ShowAsync(trainingWeek, TEditMode.Create, this))
                {
                    //Refresh data
                    RetreiveLocalData();
                    SynchronizeData();
                }
            }
            catch (Exception except)
            {
                await _userDialog.AlertAsync(except.Message, Translation.Get(TRS.ERROR), Translation.Get(TRS.OK));
            }
        }
示例#6
0
        public static async Task <bool> ShowAsync(TrainingWeek trainingWeek, TEditMode editMode, BaseViewModel parent = null)
        {
            var viewModel = new EditTrainingWeekViewModel();

            viewModel.TrainingWeek = trainingWeek;
            viewModel.EditMode     = editMode;
            return(await ShowModalViewModelAsync(viewModel, parent));
        }
示例#7
0
        public async Task CopyTrainingDayActionAsync(DayOfWeek dayOfWeek)
        {
            if (TrainingWeek == null)
            {
                return;
            }
            try
            {
                var trainingDayKey = new TrainingDayKey()
                {
                    UserId     = TrainingWeek.UserId,
                    Year       = TrainingWeek.Year,
                    WeekOfYear = TrainingWeek.WeekOfYear,
                    DayOfWeek  = (int)dayOfWeek
                };
                List <GenericData> datas = new List <GenericData>();
                foreach (DayOfWeek dayOfWeekTmp in Enum.GetValues(typeof(DayOfWeek)))
                {
                    if (dayOfWeekTmp != dayOfWeek)
                    {
                        datas.Add(new GenericData()
                        {
                            Tag = (int)dayOfWeekTmp, Name = Translation.Get(dayOfWeekTmp.ToString().ToUpper())
                        });
                    }
                }

                var result = await ListViewModel.ShowGenericListAsync(Translation.Get(TRS.DAY_OF_WEEK), datas, null, this);

                if (result.Validated && result.SelectedData != null)
                {
                    int dayOfWeekSelected = (int)result.SelectedData.Tag;
                    //Copy day on server
                    await TrainingDayWebService.CopyDayOfTrainingDay(trainingDayKey, dayOfWeekSelected);

                    //Reload updated TrainingWeek on server
                    var updatedTrainingWeek = await TrainingWeekWebService.GetTrainingWeekAsync(TrainingWeek, true);

                    if (updatedTrainingWeek != null)
                    {
                        var trainingWeekService  = new TrainingWeekService(DbContext);
                        var trainingWeekScenario = new TrainingWeekScenario()
                        {
                            ManageTrainingDay = true
                        };
                        trainingWeekService.UpdateTrainingWeek(updatedTrainingWeek, trainingWeekScenario);
                        //Update UI
                        TrainingWeek = updatedTrainingWeek;
                        await SynchronizeDataAsync();
                    }
                }
            }
            catch (Exception except)
            {
                await _userDialog.AlertAsync(except.Message, Translation.Get(TRS.ERROR), Translation.Get(TRS.OK));
            }
        }
示例#8
0
        public static async Task <TrainingWeek> UpdateTrainingWeekAsync(TrainingWeek trainingWeek, TrainingWeekScenario trainingWeekScenario)
        {
            var trainingWeekWithScenario = new TrainingWeekWithScenario()
            {
                TrainingWeek         = trainingWeek,
                TrainingWeekScenario = trainingWeekScenario
            };

            return(await HttpConnector.Instance.PostAsync <TrainingWeekWithScenario, TrainingWeek> ("Api/TrainingWeeks/Update", trainingWeekWithScenario));
        }
示例#9
0
        public static async Task <bool> ShowAsync(TrainingWeek trainingWeek, BaseViewModel parent = null)
        {
            bool result = false;

            if (trainingWeek != null)
            {
                var viewModel = new TrainingWeekViewModel();
                viewModel.TrainingWeek = trainingWeek;
                result = await ShowModalViewModelAsync(viewModel, parent);
            }
            return(result);
        }
示例#10
0
        /// <summary>
        /// Create data in database
        /// </summary>
        /// <param name="trainingJournal">Data</param>
        /// <returns>insert data</returns>
        public TrainingWeek Create(TrainingWeek trainingJournal)
        {
            if (trainingJournal == null || string.IsNullOrWhiteSpace(trainingJournal.UserId) ||
                trainingJournal.Year == 0 || trainingJournal.WeekOfYear == 0)
                return null;

            var row = new TrainingWeekRow();
            TrainingWeekTransformer.ToRow(trainingJournal, row);
            _dbContext.TrainingWeek.Add(row);
            _dbContext.SaveChanges();
            return TrainingWeekTransformer.ToBean(row);
        }
        public static void ToRow(TrainingWeek bean, TrainingWeekRow row)
        {
            if (bean == null)
                return;

            row.UserId = bean.UserId;
            row.Year = bean.Year;
            row.WeekOfYear = bean.WeekOfYear;
            row.UserHeight = bean.UserHeight;
            row.UserWeight = bean.UserWeight;
            row.Unit = (int)bean.Unit;
            row.ModificationDate = DbUtils.DateToUtc(Utils.DateTimeWithoutMs); // Set modificationDate
        }
示例#12
0
        /// <summary>
        /// Create data in database
        /// </summary>
        /// <param name="trainingJournal">Data</param>
        /// <returns>insert data</returns>
        public TrainingWeek Create(TrainingWeek trainingJournal)
        {
            if (trainingJournal == null || string.IsNullOrWhiteSpace(trainingJournal.UserId) ||
                trainingJournal.Year == 0 || trainingJournal.WeekOfYear == 0)
            {
                return(null);
            }

            var row = new TrainingWeekRow();

            TrainingWeekTransformer.ToRow(trainingJournal, row);
            _dbContext.Insert(row);
            return(TrainingWeekTransformer.ToBean(row));
        }
示例#13
0
        private void FillWeekOfYearDescription(TrainingWeek trainingWeek)
        {
            if (trainingWeek != null && trainingWeek.WeekOfYear > 0)
            {
                DateTime date    = Utils.YearWeekToPlanningDateTime(trainingWeek.Year, trainingWeek.WeekOfYear);
                string   dateStr = string.Format(Translation.Get(TRS.FROM_THE_P0TH_TO_THE_P1TH_OF_P2_P3), date.Day, date.AddDays(6).Day, Translation.Get(((TMonthType)date.Month).ToString().ToUpper()), date.Year);

                trainingWeek.WeekOfYearDescription = dateStr;
            }
            else
            {
                trainingWeek.WeekOfYearDescription = string.Empty;
            }
        }
示例#14
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;
        }
        internal static TrainingWeek ToBean(TrainingWeekRow row)
        {
            if (row == null)
                return null;

            var bean = new TrainingWeek();
            bean.UserId = row.UserId;
            bean.Year = row.Year;
            bean.WeekOfYear = row.WeekOfYear;
            bean.UserHeight = row.UserHeight;
            bean.UserWeight = row.UserWeight;
            bean.Unit = Utils.IntToEnum<TUnitType>(row.Unit);
            bean.ModificationDate = DbUtils.DbDateToUtc(row.ModificationDate);
            return bean;
        }
        public static void ToRow(TrainingWeek bean, TrainingWeekRow row)
        {
            if (bean == null)
            {
                return;
            }

            row.UserId           = bean.UserId;
            row.Year             = bean.Year;
            row.WeekOfYear       = bean.WeekOfYear;
            row.UserHeight       = bean.UserHeight;
            row.UserWeight       = bean.UserWeight;
            row.Unit             = (int)bean.Unit;
            row.ModificationDate = bean.ModificationDate;
        }
        public static void ToRow(TrainingWeek bean, TrainingWeekRow row)
        {
            if (bean == null)
            {
                return;
            }

            row.UserId           = bean.UserId;
            row.Year             = bean.Year;
            row.WeekOfYear       = bean.WeekOfYear;
            row.UserHeight       = bean.UserHeight;
            row.UserWeight       = bean.UserWeight;
            row.Unit             = (int)bean.Unit;
            row.ModificationDate = DbUtils.DateToUtc(Utils.DateTimeWithoutMs); // Set modificationDate
        }
        internal TrainingWeek UpdateTrainingWeek(TrainingWeek trainingWeek, TrainingWeekScenario trainingWeekScenario)
        {
            DbContext.ChangeTracker.AutoDetectChangesEnabled = false;
            TrainingWeek trainingWeekResult = null;

            trainingWeekResult = _trainingWeekModule.Update(trainingWeek);

            if (trainingWeekScenario != null && trainingWeekScenario.ManageTrainingDay)
            {
                var trainingDayCriteria = new TrainingDayCriteria()
                {
                    UserId = new StringCriteria()
                    {
                        Equal = trainingWeek.UserId
                    },
                    Year = new IntegerCriteria()
                    {
                        Equal = trainingWeek.Year
                    },
                    WeekOfYear = new IntegerCriteria()
                    {
                        Equal = trainingWeek.WeekOfYear
                    }
                };
                var userUnit       = AppUtils.GetUserUnit(_userInfosService, trainingWeek.UserId);
                var trainingDaysDb = _trainingDayService.FindTrainingDay(userUnit, trainingDayCriteria, trainingWeekScenario.TrainingDayScenario);
                if (trainingDaysDb != null && trainingDaysDb.Count > 0)
                {
                    foreach (var trainingDayDb in trainingDaysDb)
                    {
                        _trainingDayService.DeleteTrainingDay(trainingDayDb);
                    }
                }

                if (trainingWeek.TrainingDays != null)
                {
                    trainingWeekResult.TrainingDays = new List <TrainingDay>();
                    foreach (var trainingDay in trainingWeek.TrainingDays)
                    {
                        trainingWeekResult.TrainingDays.Add(_trainingDayService.UpdateTrainingDay(trainingDay, trainingWeekScenario.TrainingDayScenario));
                    }
                }
            }
            DbContext.ChangeTracker.DetectChanges();
            DbContext.SaveChanges();
            DbContext.ChangeTracker.AutoDetectChangesEnabled = true;
            return(trainingWeekResult);
        }
示例#19
0
        internal TrainingWeek UpdateTrainingWeek(TrainingWeek trainingWeek, TrainingWeekScenario trainingWeekScenario)
        {
            TrainingWeek trainingWeekResult = null;

            trainingWeekResult = _trainingWeekModule.Update(trainingWeek);

            if (trainingWeekScenario != null && trainingWeekScenario.ManageTrainingDay)
            {
                var trainingDayScenario = new TrainingDayScenario()
                {
                    ManageExercise = true
                };

                var trainingDayCriteria = new TrainingDayCriteria()
                {
                    UserId = new StringCriteria()
                    {
                        Equal = trainingWeek.UserId
                    },
                    Year = new IntegerCriteria()
                    {
                        Equal = trainingWeek.Year
                    },
                    WeekOfYear = new IntegerCriteria()
                    {
                        Equal = trainingWeek.WeekOfYear
                    }
                };
                var trainingDaysDb = _trainingDaysService.FindTrainingDay(AppUtils.GetUserUnit(_userInfosService, trainingWeek.UserId), trainingDayCriteria, trainingDayScenario);
                if (trainingDaysDb != null && trainingDaysDb.Count > 0)
                {
                    foreach (var trainingDayDb in trainingDaysDb)
                    {
                        _trainingDaysService.DeleteTrainingDay(trainingDayDb);
                    }
                }

                if (trainingWeek.TrainingDays != null)
                {
                    trainingWeekResult.TrainingDays = new List <TrainingDay>();
                    foreach (var trainingDay in trainingWeek.TrainingDays)
                    {
                        trainingWeekResult.TrainingDays.Add(_trainingDaysService.UpdateTrainingDay(trainingDay, trainingWeekScenario.TrainingDayScenario));
                    }
                }
            }
            return(trainingWeekResult);
        }
示例#20
0
        protected virtual IEnumerable <UserTrainingDay> GenerateTrainingDays(TrainingWeek baseTrainingWeek,
                                                                             IReadOnlyList <DateTime> dates, Guid parentId)
        {
            var generatedTrainingDays = new List <UserTrainingDay>();
            var baseTrainingDays      = baseTrainingWeek.TrainingDays.ToArray();

            for (var i = 0; i < baseTrainingWeek.TrainingDays.Count(); i++)
            {
                var generatedTrainingDay =
                    GenerateTrainingDay(baseTrainingDays[i], dates[i], baseTrainingWeek.WeekNumber);
                generatedTrainingDay.TrainingWeekId = parentId;
                generatedTrainingDays.Add(generatedTrainingDay);
            }

            return(generatedTrainingDays);
        }
        private async Task <bool> SaveDataAsync()
        {
            bool         result       = false;
            TrainingWeek trainingWeek = await TrainingWeekWebService.CopyTrainingWeekAsync(CopyTrainingWeek);

            if (trainingWeek != null)
            {
                var trainingWeekScenario = new TrainingWeekScenario()
                {
                    ManageTrainingDay = true
                };
                _trainingWeekService.UpdateTrainingWeek(trainingWeek, trainingWeekScenario);
                result = true;
            }
            return(result);
        }
        internal TrainingWeek CreateTrainingWeek(TrainingWeek trainingWeek)
        {
            TrainingWeek trainingWeekResult = null;

            trainingWeekResult = _trainingWeekModule.Create(trainingWeek);

            if (trainingWeek.TrainingDays != null)
            {
                trainingWeekResult.TrainingDays = new List <TrainingDay>();
                foreach (var trainingDay in trainingWeek.TrainingDays)
                {
                    trainingWeekResult.TrainingDays.Add(_trainingDayService.CreateTrainingDay(trainingDay));
                }
            }
            return(trainingWeekResult);
        }
        public static TrainingWeekViewModel TrainingWeekToViewModel(TrainingWeek trainingWeek, IUsersService usersService)
        {
            TrainingWeekViewModel trainingJournalVM = new TrainingWeekViewModel();

            trainingJournalVM.UserId = trainingWeek.UserId;
            trainingJournalVM.Year = trainingWeek.Year;
            trainingJournalVM.WeekOfYear = trainingWeek.WeekOfYear;
            trainingJournalVM.UserHeight = trainingWeek.UserHeight;
            trainingJournalVM.UserWeight = trainingWeek.UserWeight;
            trainingJournalVM.Unit = (int)trainingWeek.Unit;

            var user = usersService.GetUser(new UserKey() { Id = trainingWeek.UserId });
            if (user != null)
                trainingJournalVM.UserName = user.Name;

            return trainingJournalVM;
        }
        public IActionResult Create([FromBody] TrainingWeek trainingWeek)
        {
            try
            {
                if (trainingWeek == null || trainingWeek.UserId != SessionUserId)
                {
                    return(BadRequest());
                }

                var result = _trainingWeeksService.CreateTrainingWeek(trainingWeek);
                return(new OkObjectResult(result));
            }
            catch (Exception exception)
            {
                return(BadRequest(new WebApiException("Error", exception)));
            }
        }
        internal static TrainingWeek ToBean(TrainingWeekRow row)
        {
            if (row == null)
            {
                return(null);
            }

            var bean = new TrainingWeek();

            bean.UserId           = row.UserId;
            bean.Year             = row.Year;
            bean.WeekOfYear       = row.WeekOfYear;
            bean.UserHeight       = row.UserHeight;
            bean.UserWeight       = row.UserWeight;
            bean.Unit             = Utils.IntToEnum <TUnitType>(row.Unit);
            bean.ModificationDate = DbUtils.DbDateToUtc(row.ModificationDate);
            return(bean);
        }
示例#26
0
        private UserTrainingWeek CreateWeek(TrainingWeek trainingWeek, DateTime weekDate)
        {
            var week = new UserTrainingWeek
            {
                Id     = Guid.NewGuid(),
                Number = trainingWeek.Number,
                Days   = new List <UserTrainingDay>()
            };
            var previousDayOfWeek = 0;
            var trainingDate      = weekDate.Date;

            foreach (var day in trainingWeek.Days)
            {
                week.Days.Add(CreateDay(day, trainingDate));
                trainingDate      = trainingDate.AddDays(day.DayOfWeek - previousDayOfWeek).Date;
                previousDayOfWeek = day.DayOfWeek;
            }

            return(week);
        }
示例#27
0
        protected virtual TrainingWeek GenerateTrainingWeek(TrainingWeek baseTrainingWeek, DateTime startingDate)
        {
            var baseDates = baseTrainingWeek.TrainingDays.Select(d => d.Date)
                            .OrderBy(d => d.Date)
                            .ToArray();

            var newDates = startingDate.StartingFromGetDatesWithSameDayOfWeek(baseDates);
            var generatedTrainingWeek = new TrainingWeek
            {
                Id           = Guid.NewGuid(),
                StartingDate = startingDate,
                EndingDate   = startingDate.AddDays(6),
                IsDeload     = baseTrainingWeek.IsDeload,
                WeekNumber   = baseTrainingWeek.WeekNumber
            };

            generatedTrainingWeek.TrainingDays =
                GenerateTrainingDays(baseTrainingWeek, newDates, generatedTrainingWeek.Id);
            return(generatedTrainingWeek);
        }
        public TrainingWeek CreateTrainingWeek(TrainingWeek trainingWeek)
        {
            TrainingWeek result = null;

            BeginTransaction();
            try
            {
                result = GetTrainingWeekManager().CreateTrainingWeek(trainingWeek);
                CommitTransaction();
            }
            catch
            {
                RollbackTransaction();
                throw;
            }
            finally
            {
                EndTransaction();
            }
            return(result);
        }
示例#29
0
        private void FillWeekDays(TrainingWeek trainingWeek)
        {
            foreach (var bindingWeekTrainingDay in BindingWeekTrainingDays)
            {
                bindingWeekTrainingDay.TrainingDayExist = false;
            }

            if (trainingWeek != null && trainingWeek.TrainingDays != null)
            {
                foreach (var trainingDay in trainingWeek.TrainingDays)
                {
                    foreach (var bindingWeekTrainingDay in BindingWeekTrainingDays)
                    {
                        if (trainingDay.DayOfWeek == (int)bindingWeekTrainingDay.DayOfWeek)
                        {
                            bindingWeekTrainingDay.TrainingDayExist = true;
                        }
                    }
                }
            }
        }
        public TrainingWeek UpdateTrainingWeek(TrainingWeek trainingWeek, TrainingWeekScenario trainingWeekScenario)
        {
            TrainingWeek result = null;

            BeginTransaction();
            try
            {
                result = GetTrainingWeekManager().UpdateTrainingWeek(trainingWeek, trainingWeekScenario);
                CommitTransaction();
            }
            catch
            {
                RollbackTransaction();
                throw;
            }
            finally
            {
                EndTransaction();
            }
            return(result);
        }
示例#31
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;
 }
示例#32
0
        /// <summary>
        /// Update data in database
        /// </summary>
        /// <param name="trainingJournal">data</param>
        /// <returns>updated data</returns>
        public TrainingWeek Update(TrainingWeek trainingJournal)
        {
            if (trainingJournal == null || string.IsNullOrWhiteSpace(trainingJournal.UserId) ||
                trainingJournal.Year == 0 || trainingJournal.WeekOfYear == 0)
            {
                return(null);
            }

            var trainingJournalRow = _dbContext.TrainingWeek.Where(t => t.UserId == trainingJournal.UserId && t.Year == trainingJournal.Year &&
                                                                   t.WeekOfYear == trainingJournal.WeekOfYear).FirstOrDefault();

            if (trainingJournalRow == null)
            { // No data in database
                return(Create(trainingJournal));
            }
            else
            { //Modify Data in database
                TrainingWeekTransformer.ToRow(trainingJournal, trainingJournalRow);
                _dbContext.SaveChanges();
                return(TrainingWeekTransformer.ToBean(trainingJournalRow));
            }
        }
示例#33
0
 public TrainingWeek CreateTrainingWeek(TrainingWeek trainingWeek)
 {
     TrainingWeek result = null;
     //Create data in database
     BeginTransaction();
     try
     {
         result = GetTrainingWeekManager().CreateTrainingWeek(trainingWeek);
         CommitTransaction();
     }
     catch (Exception exception)
     {
         _logger.LogCritical("Unable to create training week", exception);
         RollbackTransaction();
         throw exception;
     }
     finally
     {
         EndTransaction();
     }
     return result;
 }
示例#34
0
        public TrainingWeek UpdateTrainingWeek(TrainingWeek trainingWeek, TrainingWeekScenario trainingWeekScenario)
        {
            TrainingWeek result = null;

            BeginTransaction();
            try
            {
                result = GetTrainingWeekManager().UpdateTrainingWeek(trainingWeek, trainingWeekScenario);
                CommitTransaction();
            }
            catch (Exception exception)
            {
                _logger.LogCritical("Unable to update training week", exception);
                RollbackTransaction();
                throw exception;
            }
            finally
            {
                EndTransaction();
            }
            return(result);
        }
示例#35
0
 private void CompleteTrainingWeekWithTrainingDay(TrainingWeek trainingWeek, TrainingDayScenario trainingDayScenario)
 {
     if (trainingWeek != null)
     {
         var trainingDayCriteria = new TrainingDayCriteria()
         {
             UserId = new StringCriteria()
             {
                 Equal = trainingWeek.UserId
             },
             Year = new IntegerCriteria()
             {
                 Equal = trainingWeek.Year
             },
             WeekOfYear = new IntegerCriteria()
             {
                 Equal = trainingWeek.WeekOfYear
             },
         };
         trainingWeek.TrainingDays = _trainingDaysService.FindTrainingDay(AppUtils.GetUserUnit(_userInfosService, trainingWeek.UserId), trainingDayCriteria, trainingDayScenario);
     }
 }
        private TrainingWeek CreateWeek(int number, int daysBreak)
        {
            var week = new TrainingWeek
            {
                Id     = Guid.NewGuid(),
                Number = number,
                Days   = new List <TrainingDay>()
            };
            var dayOfWeek = 1;

            for (var i = 0; i < 7; i++)
            {
                if (dayOfWeek > 7)
                {
                    break;
                }
                week.Days.Add(CreateDay(dayOfWeek));
                dayOfWeek += daysBreak;
            }

            return(week);
        }
示例#37
0
        /// <summary>
        /// Update data in database
        /// </summary>
        /// <param name="trainingWeek">data</param>
        /// <returns>updated data</returns>
        public TrainingWeek Update(TrainingWeek trainingWeek)
        {
            if (trainingWeek == null || string.IsNullOrWhiteSpace(trainingWeek.UserId) ||
                trainingWeek.Year == 0 || trainingWeek.WeekOfYear == 0)
            {
                return(null);
            }

            var trainingWeekRow = _dbContext.Table <TrainingWeekRow>().Where(t => t.UserId == trainingWeek.UserId && t.Year == trainingWeek.Year &&
                                                                             t.WeekOfYear == trainingWeek.WeekOfYear).FirstOrDefault();

            if (trainingWeekRow == null)
            {             // No data in database
                return(Create(trainingWeek));
            }
            else
            {                                       //Modify Data in database
                TrainingWeekTransformer.ToRow(trainingWeek, trainingWeekRow);
                _dbContext.Delete(trainingWeekRow); //Update don't work... need delete and insert
                _dbContext.Insert(trainingWeekRow);
                return(TrainingWeekTransformer.ToBean(trainingWeekRow));
            }
        }
示例#38
0
        /// <summary>
        /// Update data in database
        /// </summary>
        /// <param name="trainingJournal">data</param>
        /// <returns>updated data</returns>
        public TrainingWeek Update(TrainingWeek trainingJournal)
        {
            if (trainingJournal == null || string.IsNullOrWhiteSpace(trainingJournal.UserId) ||
                trainingJournal.Year == 0 || trainingJournal.WeekOfYear == 0)
                return null;

            var trainingJournalRow = _dbContext.TrainingWeek.Where(t => t.UserId == trainingJournal.UserId && t.Year == trainingJournal.Year &&
                                                                            t.WeekOfYear == trainingJournal.WeekOfYear).FirstOrDefault();
            if (trainingJournalRow == null)
            { // No data in database
                return Create(trainingJournal);
            }
            else
            { //Modify Data in database
                TrainingWeekTransformer.ToRow(trainingJournal, trainingJournalRow);
                _dbContext.SaveChanges();
                return TrainingWeekTransformer.ToBean(trainingJournalRow);
            }
        }
示例#39
0
 private void CompleteTrainingWeekWithTrainingDay(TrainingWeek trainingWeek, TrainingDayScenario trainingDayScenario)
 {
     if (trainingWeek != null)
     {
         var trainingDayCriteria = new TrainingDayCriteria()
         {
             UserId = new StringCriteria() { Equal = trainingWeek.UserId },
             Year = new IntegerCriteria() { Equal = trainingWeek.Year },
             WeekOfYear = new IntegerCriteria() { Equal = trainingWeek.WeekOfYear },
         };
         trainingWeek.TrainingDays = _trainingDaysService.FindTrainingDay(trainingDayCriteria, trainingDayScenario);
     }
 }
示例#40
0
        internal TrainingWeek UpdateTrainingWeek(TrainingWeek trainingWeek, TrainingWeekScenario trainingWeekScenario)
        {
            TrainingWeek trainingWeekResult = null;
            trainingWeekResult = _trainingWeekModule.Update(trainingWeek);

            if (trainingWeekScenario != null && trainingWeekScenario.ManageTrainingDay)
            {
                var trainingDayScenario = new TrainingDayScenario() { ManageExercise = true };

                var trainingDayCriteria = new TrainingDayCriteria()
                {
                    UserId = new StringCriteria() { Equal = trainingWeek.UserId },
                    Year = new IntegerCriteria() { Equal = trainingWeek.Year },
                    WeekOfYear = new IntegerCriteria() { Equal = trainingWeek.WeekOfYear }
                };
                var trainingDaysDb = _trainingDaysService.FindTrainingDay(trainingDayCriteria, trainingDayScenario);
                if (trainingDaysDb != null && trainingDaysDb.Count > 0)
                {
                    foreach (var trainingDayDb in trainingDaysDb)
                        _trainingDaysService.DeleteTrainingDay(trainingDayDb);
                }

                if (trainingWeek.TrainingDays != null)
                {
                    trainingWeekResult.TrainingDays = new List<TrainingDay>();
                    foreach (var trainingDay in trainingWeek.TrainingDays)
                    {
                        trainingWeekResult.TrainingDays.Add(_trainingDaysService.UpdateTrainingDay(trainingDay, trainingWeekScenario.TrainingDayScenario));
                    }
                }
            }
            return trainingWeekResult;
        }
示例#41
0
 public TrainingWeek UpdateTrainingWeek(TrainingWeek trainingWeek, TrainingWeekScenario trainingWeekScenario)
 {
     TrainingWeek result = null;
     BeginTransaction();
     try
     {
         result = GetTrainingWeekManager().UpdateTrainingWeek(trainingWeek, trainingWeekScenario);
         CommitTransaction();
     }
     catch (Exception exception)
     {
         _logger.LogCritical("Unable to update training week", exception);
         RollbackTransaction();
         throw exception;
     }
     finally
     {
         EndTransaction();
     }
     return result;
 }
示例#42
0
        internal TrainingWeek CreateTrainingWeek(TrainingWeek trainingWeek)
        {
            TrainingWeek trainingWeekResult = null;
            trainingWeekResult = _trainingWeekModule.Create(trainingWeek);

            if (trainingWeek.TrainingDays != null)
            {
                trainingWeekResult.TrainingDays = new List<TrainingDay>();
                foreach (var trainingDay in trainingWeek.TrainingDays)
                {
                    trainingWeekResult.TrainingDays.Add(_trainingDaysService.CreateTrainingDay(trainingDay));
                }
            }
            return trainingWeekResult;
        }
示例#43
0
        private void ChangeIDForNewTrainingWeek(TrainingWeek trainingWeek, int oldTrainingYear, int oldTrainingWeek, int newTrainingYear, int newTrainingWeek)
        {
            trainingWeek.Year = newTrainingYear;
            trainingWeek.WeekOfYear = newTrainingWeek;
            if (trainingWeek.TrainingDays != null)
            {
                foreach (var trainginDay in trainingWeek.TrainingDays)
                {
                    trainginDay.Year = newTrainingYear;
                    trainginDay.WeekOfYear = newTrainingWeek;

                    if (trainginDay.TrainingExercises != null)
                    {
                        foreach (var trainginsExercise in trainginDay.TrainingExercises)
                        {
                            trainginsExercise.Year = newTrainingYear;
                            trainginsExercise.WeekOfYear = newTrainingWeek;

                            if (trainginsExercise.TrainingExerciseSets != null)
                            {
                                foreach (var set in trainginsExercise.TrainingExerciseSets)
                                {
                                    set.Year = newTrainingYear;
                                    set.WeekOfYear = newTrainingWeek;
                                }
                            }
                        }
                    }
                }
            }
        }
        //
        // GET: /Report/TrainingDayReport/Index
        public IActionResult Index(string userId, int year, int weekOfYear, int dayOfWeek, int? trainingDayId, bool displayImages, string userIdViewer)
        {
            var userInfo = _userInfosService.GetUserInfo(new UserInfoKey() { UserId = userId });
            if (userInfo == null)
                userInfo = new UserInfo();

            var trainingWeekKey = new TrainingWeekKey()
            {
                UserId = userId,
                Year = year,
                WeekOfYear = weekOfYear
            };

            var trainingWeekScenario = new TrainingWeekScenario()
            {
                ManageTrainingDay = true,
                TrainingDayScenario = new TrainingDayScenario() { ManageExercise = true }
            };
            var trainingWeek = _trainingWeeksService.GetTrainingWeek(trainingWeekKey, trainingWeekScenario);

            if (trainingWeek == null)
                trainingWeek = new TrainingWeek();

            //Unit viewer convertion
            if (string.IsNullOrEmpty(userIdViewer))
            {
                userIdViewer = SessionUserId;
            }
            var viewerUnit = GetUserUnit(userIdViewer);
            var userUnit = GetUserUnit(userId);
            trainingWeek.UserHeight = Utils.TransformLengthToUnitSytem(userUnit, viewerUnit, trainingWeek.UserHeight);
            trainingWeek.UserWeight = Utils.TransformWeightToUnitSytem(userUnit, viewerUnit, trainingWeek.UserWeight);

            var trainingWeekViewModel = TrainingViewModelTransformer.TrainingWeekToViewModel(trainingWeek, _usersService);
            List<TrainingDayViewModel> trainingDayViewModels = null;
            List<TrainingExerciseViewModel> trainingExerciseViewModels = null;
            if (trainingWeek != null && trainingWeek.TrainingDays != null && trainingWeek.TrainingDays.Count > 0)
            {
                trainingDayViewModels = new List<TrainingDayViewModel>();
                foreach (var trainingDay in trainingWeek.TrainingDays)
                {
                    if (!trainingDayId.HasValue || trainingDay.TrainingDayId == trainingDayId)
                    {
                        if (trainingDay.DayOfWeek == dayOfWeek)
                        { // Get only current
                            trainingDayViewModels.Add(TrainingViewModelTransformer.TrainingDayToViewModel(trainingDay, userInfo));

                            var trainingExercises = FindTrainingExercise(trainingDay);
                            if (trainingExercises != null)
                            {
                                foreach (var trainingExercise in trainingExercises)
                                {
                                    //Convert user Unit to viewer unit
                                    if (trainingExercise.TrainingExerciseSets != null)
                                    {
                                        foreach (var set in trainingExercise.TrainingExerciseSets)
                                            set.Weight = Utils.TransformWeightToUnitSytem(userUnit, viewerUnit, set.Weight);
                                    }

                                    if (trainingExerciseViewModels == null)
                                        trainingExerciseViewModels = new List<TrainingExerciseViewModel>();
                                    trainingExerciseViewModels.Add(TrainingViewModelTransformer.TrainingExerciseToViewModel(trainingExercise, _bodyExercisesService));
                                }
                            }
                        }
                    }
                }
            }

            ViewBag.DayOfWeek = dayOfWeek;
            ViewBag.displayImages = displayImages;
            ViewBag.ViewerUnit = viewerUnit;
            return View(new Tuple<TrainingWeekViewModel, List<TrainingDayViewModel>, List<TrainingExerciseViewModel>>(trainingWeekViewModel, trainingDayViewModels, trainingExerciseViewModels));
        }
        public IActionResult Create()
        {
            var userInfo = _userInfosService.GetUserInfo(new UserInfoKey() { UserId = SessionUserId });
            if (userInfo == null)
                userInfo = new UserInfo();

            var timeZoneInfo = TimeZoneMapper.GetTimeZoneByOlsonName(userInfo.TimeZoneName);
            if (timeZoneInfo == null)
                timeZoneInfo = TimeZoneInfo.Local;
            DateTime dateTime = TimeZoneInfo.ConvertTime(DateTime.Now, timeZoneInfo);

            var trainingWeek = new TrainingWeek();
            trainingWeek.UserId = SessionUserId;
            trainingWeek.Year = dateTime.Year;
            trainingWeek.WeekOfYear = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
            trainingWeek.UserHeight = userInfo.Height;
            trainingWeek.UserWeight = userInfo.Weight;
            trainingWeek.Unit = userInfo.Unit;

            ViewBag.UserUnit = userInfo.Unit;
            return View(TrainingViewModelTransformer.TrainingWeekToViewModel(trainingWeek, _usersService));
        }
        private TrainingWeek TransformViewModelToTrainingWeek(TrainingWeekViewModel viewModel)
        {
            TrainingWeek trainingJournal = new TrainingWeek();

            trainingJournal.UserId = viewModel.UserId;
            trainingJournal.Year = viewModel.Year;
            trainingJournal.WeekOfYear = viewModel.WeekOfYear;
            trainingJournal.UserHeight = viewModel.UserHeight;
            trainingJournal.UserWeight = viewModel.UserWeight;
            trainingJournal.Unit = Utils.IntToEnum<TUnitType>(viewModel.Unit);

            return trainingJournal;
        }