Esempio n. 1
0
 public TrainingDayKey(TrainingDayKey key)
 {
     UserId        = key.UserId;
     Year          = key.Year;
     WeekOfYear    = key.WeekOfYear;
     DayOfWeek     = key.DayOfWeek;
     TrainingDayId = key.TrainingDayId;
 }
Esempio n. 2
0
        public TrainingDayKey Clone()
        {
            var copy = new TrainingDayKey();

            copy.UserId        = UserId;
            copy.Year          = Year;
            copy.WeekOfYear    = WeekOfYear;
            copy.DayOfWeek     = DayOfWeek;
            copy.TrainingDayId = TrainingDayId;
            return(copy);
        }
Esempio n. 3
0
        private static void UpdateTrainingDayModificationDate(ApplicationDbContext dbContext, DateTime modificationDate, TrainingDayKey trainingDayKey)
        {
            var trainingDaysService = WebAppConfiguration.ServiceProvider.GetService<ITrainingDaysService>();
            ((BodyReportService)trainingDaysService).SetDbContext(dbContext);

            var scenario = new TrainingDayScenario() { ManageExercise = false };
            var trainingDay = trainingDaysService.GetTrainingDay(trainingDayKey, scenario);
            if(trainingDay != null && trainingDay.ModificationDate != null && modificationDate != null &&
               (modificationDate - trainingDay.ModificationDate).TotalSeconds > 2) // don't spam database
            {
                trainingDaysService.UpdateTrainingDay(trainingDay, scenario);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Delete data in database
        /// </summary>
        /// <param name="key">Primary Key</param>
        public void Delete(TrainingDayKey key)
        {
            if (key == null || string.IsNullOrWhiteSpace(key.UserId) || key.Year == 0 ||
                key.WeekOfYear == 0 || key.DayOfWeek < 0 || key.DayOfWeek > 6 || key.TrainingDayId == 0)
                return;

            var row = _dbContext.TrainingDay.Where(t => t.UserId == key.UserId && t.Year == key.Year &&
                                                                t.WeekOfYear == key.WeekOfYear && t.DayOfWeek == key.DayOfWeek &&
                                                                t.TrainingDayId == key.TrainingDayId).FirstOrDefault();
            if (row != null)
            {
                _dbContext.TrainingDay.Remove(row);
                _dbContext.SaveChanges();
            }
        }
Esempio n. 5
0
        public void DeleteTrainingDay(TrainingDayKey key)
        {
            var trainingDayScenario = new TrainingDayScenario() { ManageExercise = true };
            var trainingDay = GetTrainingDay(key, trainingDayScenario);
            if (trainingDay != null)
            {
                _trainingDayModule.Delete(trainingDay);
                SynchroManager.TrainingDayChange(DbContext, trainingDay, true);

                if (trainingDay.TrainingExercises != null)
                {
                    foreach (var trainingExercise in trainingDay.TrainingExercises)
                    {
                        _trainingWeeksService.DeleteTrainingExercise(trainingExercise);
                    }
                }
            }
        }
Esempio n. 6
0
 public void DeleteTrainingDay(TrainingDayKey key)
 {
     BeginTransaction();
     try
     {
         GetTrainingDayManager().DeleteTrainingDay(key);
         CommitTransaction();
     }
     catch (Exception exception)
     {
         _logger.LogCritical("Unable to delete training day", exception);
         RollbackTransaction();
         throw exception;
     }
     finally
     {
         EndTransaction();
     }
 }
Esempio n. 7
0
        public static void TrainingExerciseChange(ApplicationDbContext dbContext, TrainingExercise trainingExercise, bool deleted = false)
        {
            if (trainingExercise == null || (!deleted && trainingExercise.ModificationDate == null))
                return;

            var trainingDayKey = new TrainingDayKey()
            {
                UserId = trainingExercise.UserId,
                Year = trainingExercise.Year,
                WeekOfYear = trainingExercise.WeekOfYear,
                DayOfWeek = trainingExercise.DayOfWeek,
                TrainingDayId = trainingExercise.TrainingDayId
            };
            var modificationDate = deleted ? Utils.DateTimeWithoutMs : trainingExercise.ModificationDate;
            UpdateTrainingDayModificationDate(dbContext, modificationDate, trainingDayKey);

            var trainingWeekKey = new TrainingWeekKey()
            {
                UserId = trainingExercise.UserId,
                Year = trainingExercise.Year,
                WeekOfYear = trainingExercise.WeekOfYear
            };
            UpdateTrainingWeekModificationDate(dbContext, modificationDate, trainingWeekKey);
        }
Esempio n. 8
0
        /// <summary>
        /// Get data in database
        /// </summary>
        /// <param name="key">Primary Key</param>
        /// <returns>read data</returns>
        public TrainingDay Get(TrainingDayKey key)
        {
            if (key == null || string.IsNullOrWhiteSpace(key.UserId) ||
                key.Year == 0 || key.WeekOfYear == 0 || key.DayOfWeek < 0 || key.DayOfWeek > 6 || key.TrainingDayId == 0)
                return null;

            var row = _dbContext.TrainingDay.Where(t => t.UserId == key.UserId &&
                                                                t.Year == key.Year &&
                                                                t.WeekOfYear == key.WeekOfYear &&
                                                                t.DayOfWeek == key.DayOfWeek &&
                                                                t.TrainingDayId == key.TrainingDayId).FirstOrDefault();
            if (row != null)
            {
                return TrainingDayTransformer.ToBean(row);
            }
            return null;
        }
Esempio n. 9
0
 public TrainingDay(TrainingDayKey key) : base(key)
 {
 }
Esempio n. 10
0
 public TrainingDayKey Clone()
 {
     var copy = new TrainingDayKey();
     copy.UserId = UserId;
     copy.Year = Year;
     copy.WeekOfYear = WeekOfYear;
     copy.DayOfWeek = DayOfWeek;
     copy.TrainingDayId = TrainingDayId;
     return copy;
 }
Esempio n. 11
0
 /// <summary>
 /// Equals by key
 /// </summary>
 /// <returns></returns>
 public static bool IsEqualByKey(TrainingDayKey key1, TrainingDayKey key2)
 {
     return key1.UserId == key2.UserId && key1.Year == key2.Year && key1.WeekOfYear == key2.WeekOfYear &&
            key1.DayOfWeek == key2.DayOfWeek && key1.TrainingDayId == key2.TrainingDayId;
 }
Esempio n. 12
0
 public TrainingDayKey(TrainingDayKey key)
 {
     UserId = key.UserId;
     Year = key.Year;
     WeekOfYear = key.WeekOfYear;
     DayOfWeek = key.DayOfWeek;
     TrainingDayId = key.TrainingDayId;
 }
Esempio n. 13
0
 public TrainingDay(TrainingDayKey key)
     : base(key)
 {
 }
Esempio n. 14
0
 public TrainingDay GetTrainingDay(TrainingDayKey key, TrainingDayScenario trainingDayScenario)
 {
     return GetTrainingDayManager().GetTrainingDay(key, trainingDayScenario);
 }
        public IActionResult AddTrainingExercises(TrainingExercisesViewModel viewModel, string buttonType)
        {
            if (IncorrectHttpData(viewModel.UserId, viewModel.Year, viewModel.WeekOfYear, viewModel.DayOfWeek, viewModel.TrainingDayId))
                return View(viewModel);

            bool displayMessage = buttonType == "submit";

            int currentMuscularGroupId = 0, currentMuscleId = 0;
            if (viewModel != null)
            {
                currentMuscularGroupId = viewModel.MuscularGroupId;
                currentMuscleId = viewModel.MuscleId;
            }

            List<BodyExercise> bodyExerciseList;
            InsertViewBagOnEditTrainingExercise(out bodyExerciseList, currentMuscularGroupId, currentMuscleId);
            ModelState.Clear();

            if (ModelState.IsValid)
            {
                if(viewModel.BodyExerciseList != null)
                { // filter selected data with existing exercise
                    if (bodyExerciseList == null)
                        viewModel.BodyExerciseList = null;
                    else
                    {
                        var deleteList = new List<SelectBodyExercise>();
                        foreach(var selectBodyExercise in viewModel.BodyExerciseList)
                        {
                            if(bodyExerciseList.FirstOrDefault(c => c.Id == selectBodyExercise.Id) == null)
                            {
                                deleteList.Add(selectBodyExercise);
                            }
                        }

                        foreach (var selectBodyExercise in deleteList)
                        {
                            viewModel.BodyExerciseList.Remove(selectBodyExercise);
                        }
                    }
                }

                if (viewModel.BodyExerciseList == null || viewModel.BodyExerciseList.Count(b => b.Selected == true) == 0)
                {
                    CopyViewBagBodyExerciseToViewModel(viewModel, bodyExerciseList);
                    if (displayMessage)
                        ModelState.AddModelError(string.Empty, string.Format(Translation.THE_P0_FIELD_IS_REQUIRED, Translation.BODY_EXERCISES));
                    return View(viewModel);
                }

                var trainingDayKey = new TrainingDayKey() { UserId = viewModel.UserId, Year = viewModel.Year, WeekOfYear = viewModel.WeekOfYear, DayOfWeek = viewModel.DayOfWeek, TrainingDayId = viewModel.TrainingDayId };
                var trainingDayScenario = new TrainingDayScenario() { ManageExercise = true };
                var trainingDay = _trainingDaysService.GetTrainingDay(trainingDayKey, trainingDayScenario);

                if(trainingDay == null)
                {
                    CopyViewBagBodyExerciseToViewModel(viewModel, bodyExerciseList);
                    ModelState.AddModelError(string.Empty, string.Format(Translation.P0_NOT_EXIST, Translation.TRAINING_DAY));
                    return View(viewModel);
                }

                if (trainingDay.TrainingExercises == null)
                    trainingDay.TrainingExercises = new List<TrainingExercise>();

                int bodyExerciseCount = trainingDay.TrainingExercises.Count;
                int maxId = 1;
                if (bodyExerciseCount > 0)
                    maxId = trainingDay.TrainingExercises.Max(t => t.Id) + 1;
                TrainingExercise trainingExercise;
                var bodyExerciseSelectedList = viewModel.BodyExerciseList.Where(b => b.Selected == true);
                foreach (var bodyExercise in bodyExerciseSelectedList)
                {
                    //Only manage add in this page
                    trainingExercise = new TrainingExercise()
                    {
                        UserId = viewModel.UserId,
                        Year = viewModel.Year,
                        WeekOfYear = viewModel.WeekOfYear,
                        DayOfWeek = viewModel.DayOfWeek,
                        TrainingDayId = viewModel.TrainingDayId,
                        Id = maxId,
                        BodyExerciseId = bodyExercise.Id,
                        RestTime = 0,
                        EccentricContractionTempo = 1,
                        StretchPositionTempo = 0,
                        ConcentricContractionTempo = 1,
                        ContractedPositionTempo = 0
                    };
                    trainingDay.TrainingExercises.Add(trainingExercise);
                    maxId++;
                }
                if(bodyExerciseCount != trainingDay.TrainingExercises.Count)
                { //data changed
                    _trainingDaysService.UpdateTrainingDay(trainingDay, trainingDayScenario);
                }

                return GetViewActionResult(viewModel.UserId, viewModel.Year, viewModel.WeekOfYear, viewModel.DayOfWeek);
            }

            CopyViewBagBodyExerciseToViewModel(viewModel, bodyExerciseList);
            return View(viewModel);
        }
Esempio n. 16
0
        internal TrainingDay GetTrainingDay(TrainingDayKey key, TrainingDayScenario trainingDayScenario)
        {
            var trainingDay = _trainingDayModule.Get(key);

            if (trainingDayScenario.ManageExercise && trainingDay != null)
            {
                CompleteTrainingDayWithExercise(trainingDay);
            }

            return trainingDay;
        }
        public IActionResult EditTrainingDay(TrainingDayViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                if (string.IsNullOrWhiteSpace(viewModel.UserId) || viewModel.Year == 0 || viewModel.WeekOfYear == 0 ||
                    viewModel.DayOfWeek < 0 || viewModel.DayOfWeek > 6 || viewModel.TrainingDayId == 0 || SessionUserId != viewModel.UserId)
                    return View(viewModel);

                //Verify valide week of year
                if (viewModel.WeekOfYear > 0 && viewModel.WeekOfYear <= 52)
                {
                    var trainingDay = ControllerUtils.TransformViewModelToTrainingDay(viewModel);

                    var key = new TrainingDayKey()
                    {
                        UserId = trainingDay.UserId,
                        Year = trainingDay.Year,
                        WeekOfYear = trainingDay.WeekOfYear,
                        DayOfWeek = trainingDay.DayOfWeek,
                        TrainingDayId = trainingDay.TrainingDayId
                    };
                    var trainingDayScenario = new TrainingDayScenario() { ManageExercise = false };
                    var foundTrainingDay = _trainingDaysService.GetTrainingDay(key, trainingDayScenario);
                    if (foundTrainingDay == null) // no data found
                    {
                        ModelState.AddModelError(string.Empty, string.Format(Translation.P0_NOT_EXIST, Translation.TRAINING_DAY));
                        return View(viewModel);
                    }

                    trainingDay = _trainingDaysService.UpdateTrainingDay(trainingDay, trainingDayScenario);

                    if (trainingDay != null)
                    {
                        return RedirectToAction("View", new { userId = trainingDay.UserId, year = trainingDay.Year, weekOfYear = trainingDay.WeekOfYear, dayOfWeekSelected = trainingDay.DayOfWeek });
                    }
                }
            }

            return View(viewModel);
        }
        public IActionResult EditTrainingDay(string userId, int year, int weekOfYear, int dayOfWeek, int trainingDayId)
        {
            if (string.IsNullOrWhiteSpace(userId) || year == 0 || weekOfYear == 0 || dayOfWeek < 0 || dayOfWeek > 6 || trainingDayId == 0 || SessionUserId != userId)
                return RedirectToAction("Index");

            var key = new TrainingDayKey()
            {
                UserId = userId,
                Year = year,
                WeekOfYear = weekOfYear,
                DayOfWeek = dayOfWeek,
                TrainingDayId = trainingDayId
            };
            var trainingDayScenario = new TrainingDayScenario() { ManageExercise = true };
            var trainingDay = _trainingDaysService.GetTrainingDay(key, trainingDayScenario);
            if (trainingDay == null) // no data found
                return RedirectToAction("View", new { userId = userId, year = year, weekOfYear = weekOfYear, dayOfWeek = dayOfWeek });

            var userInfo = _userInfosService.GetUserInfo(new UserInfoKey() { UserId = SessionUserId });
            if (userInfo == null)
                userInfo = new UserInfo();
            return View(TrainingViewModelTransformer.TrainingDayToViewModel(trainingDay, userInfo));
        }
        public IActionResult DeleteTrainingDay(string userId, int year, int weekOfYear, int dayOfWeek, int trainingDayId, bool confirmation = false)
        {
            if (string.IsNullOrWhiteSpace(userId) || year == 0 || weekOfYear == 0 || dayOfWeek < 0 || dayOfWeek > 6 || trainingDayId == 0 || SessionUserId != userId)
                return RedirectToAction("Index");

            if (confirmation)
            {
                var actionResult = RedirectToAction("View", "TrainingJournal", new { Area = "User", userId = userId, year = year, weekOfYear = weekOfYear, dayOfWeekSelected = dayOfWeek });
                var key = new TrainingDayKey()
                {
                    UserId = userId,
                    Year = year,
                    WeekOfYear = weekOfYear,
                    DayOfWeek = dayOfWeek,
                    TrainingDayId = trainingDayId
                };
                var trainingDayScenario = new TrainingDayScenario() { ManageExercise = true };
                var trainingDay = _trainingDaysService.GetTrainingDay(key, trainingDayScenario);
                if (trainingDay == null)
                    return actionResult;

                _trainingDaysService.DeleteTrainingDay(trainingDay);
                return actionResult;
            }
            else
            {
                string title = Translation.TRAINING_DAY;
                string message = Translation.ARE_YOU_SURE_YOU_WANNA_DELETE_THIS_ELEMENT_PI;
                string returnUrlYes = Url.Action("DeleteTrainingDay", "TrainingJournal", new { Area = "User", userId = userId, year = year, weekOfYear = weekOfYear, dayOfWeek = dayOfWeek, trainingDayId = trainingDayId, confirmation = true });
                string returnUrlNo = Url.Action("View", "TrainingJournal", new { Area = "User", userId = userId, year = year, weekOfYear = weekOfYear, dayOfWeekSelected = dayOfWeek });
                return RedirectToAction("Confirm", "Message", new { Area = "Site", title = title, message = message, returnUrlYes = returnUrlYes, returnUrlNo = returnUrlNo });
            }
        }
Esempio n. 20
0
 /// <summary>
 /// Equals by key
 /// </summary>
 /// <returns></returns>
 public static bool IsEqualByKey(TrainingDayKey key1, TrainingDayKey key2)
 {
     return(key1.UserId == key2.UserId && key1.Year == key2.Year && key1.WeekOfYear == key2.WeekOfYear &&
            key1.DayOfWeek == key2.DayOfWeek && key1.TrainingDayId == key2.TrainingDayId);
 }
Esempio n. 21
0
 public IActionResult Get(TrainingDayKey trainingDayKey, TrainingDayScenario trainingDayScenario)
 {
     try
     {
         if (trainingDayKey == null || trainingDayScenario == null)
             return BadRequest();
         var trainingday = _trainingDaysService.GetTrainingDay(trainingDayKey, trainingDayScenario);
         return new OkObjectResult(trainingday);
     }
     catch (Exception exception)
     {
         return BadRequest(new WebApiException("Error", exception));
     }
 }