public IActionResult Get(TrainingWeekKey trainingWeekKey, Boolean manageDay = false)
 {
     try
     {
         if (trainingWeekKey == null)
         {
             return(BadRequest());
         }
         var trainingWeekScenario = new TrainingWeekScenario()
         {
             ManageTrainingDay = manageDay
         };
         if (manageDay)
         {
             trainingWeekScenario.TrainingDayScenario = new TrainingDayScenario()
             {
                 ManageExercise = true
             };
         }
         var trainingWeek = _trainingWeeksService.GetTrainingWeek(trainingWeekKey, trainingWeekScenario);
         return(new OkObjectResult(trainingWeek));
     }
     catch (Exception exception)
     {
         return(BadRequest(new WebApiException("Error", exception)));
     }
 }
Exemple #2
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);
        }
        internal void DeleteTrainingWeek(TrainingWeekKey key)
        {
            var trainingWeekScenario = new TrainingWeekScenario()
            {
                ManageTrainingDay   = true,
                TrainingDayScenario = new TrainingDayScenario()
                {
                    ManageExercise = true
                }
            };
            var trainingWeek = GetTrainingWeek(key, trainingWeekScenario);

            if (trainingWeek != null)
            {
                _trainingWeekModule.Delete(key);

                if (trainingWeek.TrainingDays != null)
                {
                    foreach (var trainingDay in trainingWeek.TrainingDays)
                    {
                        _trainingDayService.DeleteTrainingDay(trainingDay);
                    }
                }
            }
        }
        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)));
            }
        }
Exemple #5
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));
            }
        }
Exemple #6
0
        private void RetreiveLocalData()
        {
            var trainingWeekScenario = new TrainingWeekScenario()
            {
                ManageTrainingDay = false
            };

            _trainingWeekList = _trainingWeekService.FindTrainingWeek(null, trainingWeekScenario);
        }
        internal TrainingWeek GetTrainingWeek(TrainingWeekKey key, TrainingWeekScenario trainingWeekScenario)
        {
            var trainingWeek = _trainingWeekModule.Get(key);

            if (trainingWeek != null && trainingWeekScenario != null && trainingWeekScenario.ManageTrainingDay)
            {
                CompleteTrainingWeekWithTrainingDay(trainingWeek, trainingWeekScenario.TrainingDayScenario);
            }

            return(trainingWeek);
        }
Exemple #8
0
        private static void UpdateTrainingWeekModificationDate(ApplicationDbContext dbContext, DateTime modificationDate, TrainingWeekKey trainingWeekKey)
        {
            var trainingWeeksService = WebAppConfiguration.ServiceProvider.GetService<ITrainingWeeksService>();
            ((BodyReportService)trainingWeeksService).SetDbContext(dbContext);

            var scenario = new TrainingWeekScenario() { ManageTrainingDay = false };
            var trainingWeek = trainingWeeksService.GetTrainingWeek(trainingWeekKey, scenario);
            if (trainingWeek != null && trainingWeek.ModificationDate != null && modificationDate != null &&
               (modificationDate - trainingWeek.ModificationDate).TotalSeconds > 2) // don't spam database
            {
                trainingWeeksService.UpdateTrainingWeek(trainingWeek, scenario);
            }
        }
        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;
        }
Exemple #10
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);
        }
        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);
        }
        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);
        }
Exemple #13
0
        private static void UpdateTrainingWeekModificationDate(ApplicationDbContext dbContext, DateTime modificationDate, TrainingWeekKey trainingWeekKey)
        {
            var trainingWeeksService = WebAppConfiguration.ServiceProvider.GetService <ITrainingWeeksService>();

            ((BodyReportService)trainingWeeksService).SetDbContext(dbContext);

            var scenario = new TrainingWeekScenario()
            {
                ManageTrainingDay = false
            };
            var trainingWeek = trainingWeeksService.GetTrainingWeek(trainingWeekKey, scenario);

            if (trainingWeek != null && trainingWeek.ModificationDate != null && modificationDate != null &&
                (modificationDate - trainingWeek.ModificationDate).TotalSeconds > 2) // don't spam database
            {
                trainingWeeksService.UpdateTrainingWeek(trainingWeek, scenario);
            }
        }
        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));
            }
        }
        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);
        }
Exemple #16
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);
        }
Exemple #17
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);
        }
Exemple #18
0
 public List <TrainingWeek> FindTrainingWeek(TrainingWeekCriteria trainingWeekCriteria, TrainingWeekScenario trainingWeekScenario)
 {
     return(FindTrainingWeek(new CriteriaList <TrainingWeekCriteria>()
     {
         trainingWeekCriteria
     }, trainingWeekScenario));
 }
        public IActionResult Edit(string userId, int year, int weekOfYear)
        {
            if (string.IsNullOrWhiteSpace(userId) || year == 0 || weekOfYear == 0 || SessionUserId != userId)
                return RedirectToAction("Index");

            ViewBag.UserUnit = GetUserUnit(userId);
            var key = new TrainingWeekKey()
            {
                UserId = userId,
                Year = year,
                WeekOfYear = weekOfYear
            };
            var trainingWeekScenario = new TrainingWeekScenario()
            {
                ManageTrainingDay = true,
                TrainingDayScenario = new TrainingDayScenario() { ManageExercise = true }
            };
            var trainingJournal = _trainingWeeksService.GetTrainingWeek(key, trainingWeekScenario);
            if (trainingJournal == null) // no data found
                return RedirectToAction("Index");

            return View(TrainingViewModelTransformer.TrainingWeekToViewModel(trainingJournal, _usersService));
        }
        public IActionResult Edit(TrainingWeekViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                ViewBag.UserUnit = GetUserUnit(viewModel.UserId);
                if (string.IsNullOrWhiteSpace(viewModel.UserId) || viewModel.Year == 0 || viewModel.WeekOfYear == 0 || SessionUserId != viewModel.UserId)
                    return View(viewModel);

                //Verify valide week of year
                if (viewModel.WeekOfYear > 0 && viewModel.WeekOfYear <= 52 &&
                    (viewModel.Unit == (int)TUnitType.Imperial || viewModel.Unit == (int)TUnitType.Metric))
                {
                    var trainingWeek = TransformViewModelToTrainingWeek(viewModel);
                    var trainingWeekKey = new TrainingWeekKey() { UserId = trainingWeek.UserId, Year = trainingWeek.Year, WeekOfYear = trainingWeek.WeekOfYear };
                    var trainingWeekScenario = new TrainingWeekScenario() { ManageTrainingDay = false };
                    var existTrainingWeek = _trainingWeeksService.GetTrainingWeek(trainingWeekKey, trainingWeekScenario);

                    if (existTrainingWeek == null)
                    {
                        ModelState.AddModelError(string.Empty, string.Format(Translation.P0_NOT_EXIST, Translation.TRAINING_WEEK));
                        return View(viewModel);
                    }

                    //Create data in database. No need transaction, only header
                    trainingWeekScenario = new TrainingWeekScenario() { ManageTrainingDay = false };
                    trainingWeek = _trainingWeeksService.UpdateTrainingWeek(trainingWeek, trainingWeekScenario);

                    if (trainingWeek == null)
                    {
                        ModelState.AddModelError(string.Empty, string.Format(Translation.IMPOSSIBLE_TO_UPDATE_P0, Translation.TRAINING_JOURNAL));
                        return View(viewModel);
                    }

                    return RedirectToAction("View", new { userId = trainingWeek.UserId, year = trainingWeek.Year, weekOfYear = trainingWeek.WeekOfYear });
                }
            }

            return View(viewModel);
        }
Exemple #21
0
        public static async Task <List <TrainingWeek> > FindTrainingWeeksAsync(CriteriaList <TrainingWeekCriteria> trainingWeekCriteriaList, TrainingWeekScenario trainingWeekScenario)
        {
            if (trainingWeekCriteriaList == null)
            {
                return(null);
            }

            var trainingWeekFinder = new TrainingWeekFinder();

            trainingWeekFinder.TrainingWeekCriteriaList = trainingWeekCriteriaList;
            trainingWeekFinder.TrainingWeekScenario     = trainingWeekScenario;
            return(await HttpConnector.Instance.PostAsync <TrainingWeekFinder, List <TrainingWeek> > ("Api/TrainingWeeks/Find", trainingWeekFinder));
        }
        //
        // 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));
        }
        internal void DeleteTrainingWeek(TrainingWeekKey key)
        {
            var trainingWeekScenario = new TrainingWeekScenario()
            {
                ManageTrainingDay = true,
                TrainingDayScenario = new TrainingDayScenario() { ManageExercise = true }
            };
            var trainingWeek = GetTrainingWeek(key, trainingWeekScenario);
            if (trainingWeek != null)
            {
                _trainingWeekModule.Delete(key);

                if (trainingWeek.TrainingDays != null)
                {
                    foreach (var trainingDay in trainingWeek.TrainingDays)
                    {
                        _trainingDaysService.DeleteTrainingDay(trainingDay);
                    }
                }
            }
        }
        internal TrainingWeek GetTrainingWeek(TrainingWeekKey key, TrainingWeekScenario trainingWeekScenario)
        {
            var trainingWeek = _trainingWeekModule.Get(key);
            if (trainingWeek != null && trainingWeekScenario != null && trainingWeekScenario.ManageTrainingDay)
            {
                CompleteTrainingWeekWithTrainingDay(trainingWeek, trainingWeekScenario.TrainingDayScenario);
            }

            return trainingWeek;
        }
        public List<TrainingWeek> FindTrainingWeek(CriteriaList<TrainingWeekCriteria> trainingWeekCriteriaList, TrainingWeekScenario trainingWeekScenario)
        {
            List<TrainingWeek> trainingWeeks = _trainingWeekModule.Find(trainingWeekCriteriaList);

            if (trainingWeekScenario != null && trainingWeekScenario.ManageTrainingDay)
            {
                foreach (TrainingWeek trainingJournal in trainingWeeks)
                {
                    CompleteTrainingWeekWithTrainingDay(trainingJournal, trainingWeekScenario.TrainingDayScenario);
                }
            }

            return trainingWeeks;
        }
Exemple #26
0
 public List <TrainingWeek> FindTrainingWeek(CriteriaList <TrainingWeekCriteria> trainingWeekCriteriaList, TrainingWeekScenario trainingWeekScenario)
 {
     return(GetTrainingWeekManager().FindTrainingWeek(trainingWeekCriteriaList, trainingWeekScenario));
 }
Exemple #27
0
 public TrainingWeek GetTrainingWeek(TrainingWeekKey key, TrainingWeekScenario trainingWeekScenario)
 {
     return(GetTrainingWeekManager().GetTrainingWeek(key, trainingWeekScenario));
 }
        public IActionResult Index(string userId, int year, int weekOfYear, int? dayOfWeekSelected)
        {
            var viewModel = new List<TrainingWeekViewModel>();

            var searchCriteria = new TrainingWeekCriteria() { UserId = new StringCriteria() { Equal = SessionUserId } };
            var scenario = new TrainingWeekScenario() { ManageTrainingDay = false };
            var trainingWeekList = _trainingWeeksService.FindTrainingWeek(searchCriteria, scenario);

            if (trainingWeekList != null)
            {
                foreach (var trainingWeek in trainingWeekList)
                {
                    viewModel.Add(TrainingViewModelTransformer.TrainingWeekToViewModel(trainingWeek, _usersService));
                }
            }

            return View(viewModel);
        }
 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;
 }
        public IActionResult Copy(string userId, int year, int weekOfYear)
        {
            if (string.IsNullOrWhiteSpace(userId) || year == 0 || weekOfYear == 0 || SessionUserId != userId)
                return RedirectToAction("Index");

            ViewBag.UserUnit = GetUserUnit(userId);
            var key = new TrainingWeekKey()
            {
                UserId = userId,
                Year = year,
                WeekOfYear = weekOfYear
            };
            var trainingWeekScenario = new TrainingWeekScenario()
            {
                ManageTrainingDay = true,
                TrainingDayScenario = new TrainingDayScenario() { ManageExercise = true }
            };
            var trainingWeek = _trainingWeeksService.GetTrainingWeek(key, trainingWeekScenario);
            if (trainingWeek == null) // no data found
                return RedirectToAction("Index");

            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);
            int nextWeekOfYear = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);

            if (dateTime.Year == year && nextWeekOfYear == weekOfYear
                && nextWeekOfYear < 52)
            {
                nextWeekOfYear++;
            }

            var viewModel = new CopyTrainingWeekViewModel()
            {
                UserId = userId,
                OriginWeekOfYear = weekOfYear,
                OriginYear = year,
                Year = dateTime.Year,
                WeekOfYear = nextWeekOfYear
            };

            //Need for refresh WeekOfYear in CopyTrainingWeekViewModel. Why? i don't understand on this page.
            ModelState.Clear();
            return View(viewModel);
        }
 public TrainingWeek GetTrainingWeek(TrainingWeekKey key, TrainingWeekScenario trainingWeekScenario)
 {
     return GetTrainingWeekManager().GetTrainingWeek(key, trainingWeekScenario);
 }
        //
        // 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 = AppUtils.GetUserUnit(_userInfosService, userIdViewer);
            var userUnit   = AppUtils.GetUserUnit(_userInfosService, 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 List <TrainingWeek> FindTrainingWeek(TrainingWeekCriteria trainingWeekCriteria, TrainingWeekScenario trainingWeekScenario)
        {
            List <TrainingWeek> trainingWeeks = _trainingWeekModule.Find(trainingWeekCriteria);

            if (trainingWeeks != null && trainingWeekScenario != null && trainingWeekScenario.TrainingDayScenario != null)
            {
                foreach (TrainingWeek trainingJournal in trainingWeeks)
                {
                    CompleteTrainingWeekWithTrainingDay(trainingJournal, trainingWeekScenario.TrainingDayScenario);
                }
            }

            return(trainingWeeks);
        }
        public IActionResult View(string userId, int year, int weekOfYear, int? dayOfWeekSelected)
        {
            var userInfo = _userInfosService.GetUserInfo(new UserInfoKey() { UserId = userId });
            if (userInfo == null)
                userInfo = new UserInfo();

            var timeZoneInfo = TimeZoneMapper.GetTimeZoneByOlsonName(userInfo.TimeZoneName);
            if (timeZoneInfo == null)
                timeZoneInfo = TimeZoneInfo.Local;

            DayOfWeek currentDayOfWeek = GetCurrentDayOfWeek(dayOfWeekSelected, timeZoneInfo);
            if (!dayOfWeekSelected.HasValue)
                dayOfWeekSelected = (int)currentDayOfWeek;

            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)
                return RedirectToAction("Index");

            //Unit viewer convertion
            string 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)
                {
                    trainingDayViewModels.Add(TrainingViewModelTransformer.TrainingDayToViewModel(trainingDay, userInfo));

                    if (dayOfWeekSelected.HasValue && trainingDay.DayOfWeek == dayOfWeekSelected)
                    { // Get only current
                        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.UserIdViewer = userIdViewer;
            ViewBag.CurrentDayOfWeek = currentDayOfWeek;
            ViewBag.ViewerUnit = viewerUnit;
            ViewBag.Editable = userId == userIdViewer;
            return View(new Tuple<TrainingWeekViewModel, List<TrainingDayViewModel>, List<TrainingExerciseViewModel>>(trainingWeekViewModel, trainingDayViewModels, trainingExerciseViewModels));
        }
        public List <TrainingWeek> UpdateTrainingWeekList(List <TrainingWeek> trainingWeekList, TrainingWeekScenario trainingWeekScenario)
        {
            if (trainingWeekList == null)
            {
                return(null);
            }

            List <TrainingWeek> result = new List <TrainingWeek>();

            BeginTransaction();
            try
            {
                foreach (var trainingWeek in trainingWeekList)
                {
                    result.Add(GetTrainingWeekManager().UpdateTrainingWeek(trainingWeek, trainingWeekScenario));
                }
                CommitTransaction();
            }
            catch (Exception exception)
            {
                RollbackTransaction();
                throw;
            }
            finally
            {
                EndTransaction();
            }
            return(result);
        }
Exemple #36
0
        private async Task ViewTrainingWeekActionAsync(BindingTrainingWeek bindingTrainingWeek)
        {
            try
            {
                if (bindingTrainingWeek != null && bindingTrainingWeek.TrainingWeek != null)
                {
                    TrainingWeek trainingWeek         = null;
                    var          trainingWeekScenario = new TrainingWeekScenario()
                    {
                        ManageTrainingDay = true
                    };
                    try
                    {
                        //load server data (only header)
                        trainingWeek = await TrainingWeekWebService.GetTrainingWeekAsync(bindingTrainingWeek.TrainingWeek, false);

                        if (trainingWeek != null)
                        {
                            if (trainingWeek.ModificationDate != bindingTrainingWeek.TrainingWeek.ModificationDate)
                            {
                                //load server data (full)
                                trainingWeek = await TrainingWeekWebService.GetTrainingWeekAsync(bindingTrainingWeek.TrainingWeek, true);

                                if (trainingWeek != null)
                                {
                                    //Save data on local database
                                    _trainingWeekService.UpdateTrainingWeek(trainingWeek, trainingWeekScenario);
                                }
                            }
                            else
                            {
                                trainingWeek = null; // force reload local data
                            }
                        }
                    }
                    catch
                    {
                        // Unable to retreive local data
                        ILogger.Instance.Info("Unable to retreive TrainingWeek on server");
                        trainingWeek = null;
                    }

                    if (trainingWeek == null)
                    { //load local data
                        trainingWeek = _trainingWeekService.GetTrainingWeek(bindingTrainingWeek.TrainingWeek, trainingWeekScenario);
                    }

                    if (trainingWeek != null)
                    {
                        //Display view model
                        if (await TrainingWeekViewModel.ShowAsync(trainingWeek, this))
                        {
                            //Refresh data
                            RetreiveLocalData();
                            SynchronizeData();
                        }
                    }
                }
            }
            catch (Exception except)
            {
                await _userDialog.AlertAsync(except.Message, Translation.Get(TRS.ERROR), Translation.Get(TRS.OK));
            }
        }
 public List<TrainingWeek> FindTrainingWeek(TrainingWeekCriteria trainingWeekCriteria, TrainingWeekScenario trainingWeekScenario)
 {
     return FindTrainingWeek(new CriteriaList<TrainingWeekCriteria>() { trainingWeekCriteria }, trainingWeekScenario);
 }
        public IActionResult CreateTrainingDay(TrainingDayViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                if (string.IsNullOrWhiteSpace(viewModel.UserId) || viewModel.Year == 0 || viewModel.WeekOfYear == 0 ||
                    viewModel.DayOfWeek < 0 || viewModel.DayOfWeek > 6 || SessionUserId != viewModel.UserId)
                    return View(viewModel);

                //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)
                {
                    ModelState.AddModelError(string.Empty, string.Format(Translation.P0_NOT_EXIST, Translation.TRAINING_WEEK));
                    return View(viewModel);
                }

                //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 RedirectToAction("View", new { userId = trainingDay.UserId, year = trainingDay.Year, weekOfYear = trainingDay.WeekOfYear, dayOfWeekSelected = trainingDay.DayOfWeek });
                    }
                }
            }

            return View(viewModel);
        }
        public IActionResult Create(TrainingWeekViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                if (string.IsNullOrWhiteSpace(viewModel.UserId) || viewModel.Year == 0 || viewModel.Year == 0 || SessionUserId != viewModel.UserId)
                    return View(viewModel);

                //Verify valide week of year
                if (viewModel.WeekOfYear > 0 && viewModel.WeekOfYear <= 52 &&
                    (viewModel.Unit == (int)TUnitType.Imperial || viewModel.Unit == (int)TUnitType.Metric))
                {
                    var trainingWeek = TransformViewModelToTrainingWeek(viewModel);
                    var trainingWeekKey = new TrainingWeekKey() { UserId = trainingWeek.UserId, Year = trainingWeek.Year, WeekOfYear = trainingWeek.WeekOfYear };
                    var trainingWeekScenario = new TrainingWeekScenario() { ManageTrainingDay = false };
                    var existTrainingWeek = _trainingWeeksService.GetTrainingWeek(trainingWeekKey, trainingWeekScenario);

                    if (existTrainingWeek != null)
                    {
                        ModelState.AddModelError(string.Empty, string.Format(Translation.P0_ALREADY_EXIST, Translation.TRAINING_WEEK));
                        return View(viewModel);
                    }

                    trainingWeek = _trainingWeeksService.CreateTrainingWeek(trainingWeek);
                    if (trainingWeek == null)
                    {
                        ModelState.AddModelError(string.Empty, Translation.IMPOSSIBLE_TO_CREATE_NEW_TRAINING_JOURNAL);
                        return View(viewModel);
                    }

                    return RedirectToAction("View", new { userId = trainingWeek.UserId, year = trainingWeek.Year, weekOfYear = trainingWeek.WeekOfYear });
                }
            }

            return View(viewModel);
        }
 public List<TrainingWeek> FindTrainingWeek(CriteriaList<TrainingWeekCriteria> trainingWeekCriteriaList, TrainingWeekScenario trainingWeekScenario)
 {
     return GetTrainingWeekManager().FindTrainingWeek(trainingWeekCriteriaList, trainingWeekScenario);
 }
 public IActionResult Get(TrainingWeekKey trainingWeekKey, Boolean manageDay = false)
 {
     try
     {
         if (trainingWeekKey == null)
             return BadRequest();
         var trainingWeekScenario = new TrainingWeekScenario() { ManageTrainingDay = manageDay };
         if (manageDay)
         {
             trainingWeekScenario.TrainingDayScenario = new TrainingDayScenario() { ManageExercise = true };
         }
         var trainingWeek = _trainingWeeksService.GetTrainingWeek(trainingWeekKey, trainingWeekScenario);
         return new OkObjectResult(trainingWeek);
     }
     catch(Exception exception)
     {
         return BadRequest(new WebApiException("Error", exception));
     }
 }
        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;
        }
        public IActionResult Delete(string userId, int year, int weekOfYear, bool confirmation = false)
        {
            if (confirmation)
            {
                var actionResult = RedirectToAction("View", "TrainingJournal", new { Area = "User" });
                if (string.IsNullOrWhiteSpace(userId) || year == 0 || weekOfYear == 0 || SessionUserId != userId)
                    return actionResult;

                var key = new TrainingWeekKey()
                {
                    UserId = userId,
                    Year = year,
                    WeekOfYear = weekOfYear
                };
                var trainingWeekScenario = new TrainingWeekScenario() { ManageTrainingDay = false };
                var trainingWeek = _trainingWeeksService.GetTrainingWeek(key, trainingWeekScenario);
                if (trainingWeek == null)
                    return actionResult;

                _trainingWeeksService.DeleteTrainingWeek(trainingWeek);
                return actionResult;
            }
            else
            {
                string title = Translation.TRAINING_WEEK;
                string message = Translation.ARE_YOU_SURE_YOU_WANNA_DELETE_THIS_ELEMENT_PI;
                string returnUrlYes = Url.Action("Delete", "TrainingJournal", new { Area = "User", userId = userId, year = year, weekOfYear = weekOfYear, confirmation = true });
                string returnUrlNo = Url.Action("View", "TrainingJournal", new { Area = "User" });
                return RedirectToAction("Confirm", "Message", new { Area = "Site", title = title, message = message, returnUrlYes = returnUrlYes, returnUrlNo = returnUrlNo });
            }
        }
Exemple #44
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));
        }
Exemple #45
0
        public static async Task <bool> SynchronizeTrainingWeeksAsync(SQLiteConnection dbContext)
        {
            bool result = false;

            try
            {
                //Synchronize TrainingWeek with server (with trainingday and exercise)
                var criteria = new TrainingWeekCriteria();
                criteria.UserId = new StringCriteria()
                {
                    Equal = UserData.Instance.UserInfo.UserId
                };
                TrainingWeekScenario trainingWeekScenario = new TrainingWeekScenario()
                {
                    ManageTrainingDay = false
                };
                var trainingWeekService = new TrainingWeekService(dbContext);
                //retreive local data
                var localTrainingWeekList = trainingWeekService.FindTrainingWeek(criteria, trainingWeekScenario);
                //retreive online data
                var criteriaList = new CriteriaList <TrainingWeekCriteria>()
                {
                    criteria
                };
                var onlineTrainingWeekList = await TrainingWeekWebService.FindTrainingWeeksAsync(criteriaList, trainingWeekScenario);

                bool found;
                //Delete local data if not found on server
                if (localTrainingWeekList != null)
                {
                    var deletedTrainingWeekList = new List <TrainingWeek>();
                    foreach (var localTrainingWeek in localTrainingWeekList)
                    {
                        found = false;
                        if (onlineTrainingWeekList != null)
                        {
                            foreach (var onlineTrainingWeek in onlineTrainingWeekList)
                            {
                                if (TrainingWeekKey.IsEqualByKey(onlineTrainingWeek, localTrainingWeek))
                                {
                                    found = true;
                                    break;
                                }
                            }
                        }
                        if (!found)
                        {
                            deletedTrainingWeekList.Add(localTrainingWeek);
                        }
                    }
                    if (deletedTrainingWeekList.Count > 0)
                    {
                        var deletedTrainingWeekKeyList = new List <TrainingWeekKey>();
                        foreach (var key in deletedTrainingWeekList)
                        {
                            deletedTrainingWeekKeyList.Add(key);
                        }
                        //Delete in local database
                        trainingWeekService.DeleteTrainingWeekList(deletedTrainingWeekKeyList);
                        foreach (var deleteTrainingWeek in deletedTrainingWeekList)
                        {
                            localTrainingWeekList.Remove(deleteTrainingWeek);
                        }
                    }
                }
                //if modification date online != local, get full trainingWeek online data and save them on local database
                var synchronizeTrainingWeekList = new List <TrainingWeek>();
                if (onlineTrainingWeekList != null)
                {
                    foreach (var onlineTrainingWeek in onlineTrainingWeekList)
                    {
                        found = false;
                        if (localTrainingWeekList != null)
                        {
                            foreach (var localTrainingWeek in localTrainingWeekList)
                            {
                                //Same trainingWeek
                                if (TrainingWeekKey.IsEqualByKey(onlineTrainingWeek, localTrainingWeek))
                                {
                                    if (onlineTrainingWeek.ModificationDate.ToUniversalTime() != localTrainingWeek.ModificationDate.ToUniversalTime()) //ToUniversalTime for security...
                                    {
                                        synchronizeTrainingWeekList.Add(onlineTrainingWeek);
                                    }
                                    found = true;
                                    break;
                                }
                            }
                        }
                        if (!found)
                        {
                            synchronizeTrainingWeekList.Add(onlineTrainingWeek);
                        }
                    }
                }

                //Synchronize all trainingWeek data
                trainingWeekScenario = new TrainingWeekScenario()
                {
                    ManageTrainingDay   = true,
                    TrainingDayScenario = new TrainingDayScenario()
                    {
                        ManageExercise = true
                    }
                };
                if (synchronizeTrainingWeekList.Count > 0)
                {
                    criteriaList.Clear();
                    foreach (var trainingWeek in synchronizeTrainingWeekList)
                    {
                        criteria        = new TrainingWeekCriteria();
                        criteria.UserId = new StringCriteria()
                        {
                            Equal = trainingWeek.UserId
                        };
                        criteria.Year = new IntegerCriteria()
                        {
                            Equal = trainingWeek.Year
                        };
                        criteria.WeekOfYear = new IntegerCriteria()
                        {
                            Equal = trainingWeek.WeekOfYear
                        };
                        criteriaList.Add(criteria);
                    }
                    onlineTrainingWeekList = await TrainingWeekWebService.FindTrainingWeeksAsync(criteriaList, trainingWeekScenario);

                    if (onlineTrainingWeekList != null && onlineTrainingWeekList.Count > 0)
                    {
                        trainingWeekService.UpdateTrainingWeekList(onlineTrainingWeekList, trainingWeekScenario);
                    }
                }
                result = true;
            }
            catch (Exception except)
            {
                ILogger.Instance.Error("Unable to synchronize training weeks", except);
            }
            return(result);
        }