internal static async Task <TrainingWeek> CopyTrainingWeekAsync(CopyTrainingWeek copyTrainingWeek) { if (copyTrainingWeek == null) { return(null); } return(await HttpConnector.Instance.PostAsync <CopyTrainingWeek, TrainingWeek>("Api/TrainingWeeks/Copy", copyTrainingWeek)); }
private void SynchronizeData() { CopyTrainingWeek = new CopyTrainingWeek(); CopyTrainingWeek.UserId = _originTrainingWeek.UserId; CopyTrainingWeek.OriginYear = _originTrainingWeek.Year; CopyTrainingWeek.OriginWeekOfYear = _originTrainingWeek.WeekOfYear; CopyTrainingWeek.Year = _originTrainingWeek.Year; CopyTrainingWeek.WeekOfYear = Math.Min(52, _originTrainingWeek.WeekOfYear + 1); OnPropertyChanged("CopyTrainingWeek"); }
public IActionResult Copy([FromBody] CopyTrainingWeek copyTrainingWeek) { if (copyTrainingWeek == null) { return(BadRequest()); } try { TrainingWeek trainingWeek; if (!_trainingWeeksService.CopyTrainingWeek(SessionUserId, copyTrainingWeek, out trainingWeek)) { return(new OkResult()); } return(new OkObjectResult(trainingWeek)); } catch (Exception exception) when(exception is ErrorException || exception is Exception) { return(BadRequest(new WebApiException("Error", exception))); } }
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); }
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); }