コード例 #1
0
        public void CreateNewTrainingInSaveTrainingDay()
        {
            DateTime date  = new DateTime(2012, 03, 26);//monday
            var      cycle = new A6WTrainingDTO();

            cycle.Name      = "My A6W";
            cycle.StartDate = date;
            var         profile1 = (ProfileDTO)profiles[0].Tag;
            SessionData data     = CreateNewSession(profile1, ClientInformation);


            TrainingDayDTO day   = new TrainingDayDTO(DateTime.UtcNow.AddDays(50));
            A6WEntryDTO    entry = new A6WEntryDTO();

            entry.Day        = A6WManager.Days[0];
            entry.MyTraining = cycle;
            day.AddEntry(entry);
            RunServiceMethod(delegate(InternalBodyArchitectService service)
            {
                var result = service.SaveTrainingDay(data.Token, day);
                day        = result.TrainingDay;
            });
            var count = Session.QueryOver <MyTrainingDTO>().RowCount();

            Assert.AreEqual(0, count);
            var dbDay = Session.Get <TrainingDay>(day.GlobalId);

            Assert.IsNull(dbDay.Objects.ElementAt(0).MyTraining);
        }
コード例 #2
0
        public void AddAnotherEntryToTraining()
        {
            DateTime date  = new DateTime(2012, 03, 26);//monday
            var      cycle = new A6WTrainingDTO();

            cycle.Name      = "My A6W";
            cycle.StartDate = date;
            var         profile1 = (ProfileDTO)profiles[0].Tag;
            SessionData data     = CreateNewSession(profile1, ClientInformation);

            MyTrainingDTO result = null;

            RunServiceMethod(delegate(InternalBodyArchitectService service)
            {
                var param        = new MyTrainingOperationParam();
                param.Operation  = MyTrainingOperationType.Start;
                param.MyTraining = cycle;
                result           = service.MyTrainingOperation(data.Token, param);
            });

            TrainingDayDTO day   = new TrainingDayDTO(DateTime.UtcNow.AddDays(50));
            A6WEntryDTO    entry = new A6WEntryDTO();

            entry.Day        = A6WManager.Days[0];
            entry.MyTraining = result;
            day.AddEntry(entry);
            RunServiceMethod(delegate(InternalBodyArchitectService service)
            {
                TimerService.UtcNow = DateTime.UtcNow.AddDays(3).Date;
                service.SaveTrainingDay(data.Token, day);
            });
        }
コード例 #3
0
 public void Save(A6WEntryDTO entry)
 {
     if (txtSet1.Visible && txtSet1.Value > 0)
     {
         entry.Set1 = (int)txtSet1.Value;
     }
     else
     {
         entry.Set1 = null;
     }
     if (txtSet2.Visible && txtSet2.Value > 0)
     {
         entry.Set2 = (int)txtSet2.Value;
     }
     else
     {
         entry.Set2 = null;
     }
     if (txtSet3.Visible && txtSet3.Value > 0)
     {
         entry.Set3 = (int)txtSet3.Value;
     }
     else
     {
         entry.Set3 = null;
     }
 }
コード例 #4
0
        void generateProgress(A6WEntryDTO entry)
        {
            var series = new DataSeries <string, double>();

            series.Add(new DataPoint <string, double>(A6WEntryStrings.usrA6WProgress_Completed, entry.MyTraining.PercentageCompleted));
            series.Add(new DataPoint <string, double>(A6WEntryStrings.usrA6WProgress_NotCompleted, 100 - entry.MyTraining.PercentageCompleted));
            MainChart.DataSeries = series;
        }
コード例 #5
0
 private void save1(A6WEntryDTO entry)
 {
     if (txtSet1.Visibility == Visibility.Visible && txtSet1.Value > 0)
     {
         entry.Set1 = (int)txtSet1.Value;
     }
     else
     {
         entry.Set1 = null;
     }
 }
コード例 #6
0
        public override bool ValidateControl(EntryObjectDTO entryDto)
        {
            A6WEntryDTO entry = (A6WEntryDTO)entryDto;

            if (entry.Status == EntryObjectStatus.Done && entry.MyTraining.TrainingEnd == TrainingEnd.NotEnded && !rbPartialCompleted.IsChecked.Value && !rbCompleted.IsChecked.Value)
            {
                BAMessageBox.ShowErrorEx(A6WEntryStrings.ErrorA6WDayResultMissing, A6WEntryStrings.EntryTypeName);
                return(false);
            }
            if (entry.MyTraining.TrainingEnd == TrainingEnd.NotEnded && rbPartialCompleted.IsChecked.Value && !usrA6WPartialCompleted1.Validate(entry))
            {
                return(false);
            }
            return(true);
        }
コード例 #7
0
 public void Fill(A6WEntryDTO entry)
 {
     if (entry.Set1.HasValue)
     {
         txtSet1.Value = entry.Set1.Value;
     }
     if (entry.Set2.HasValue)
     {
         txtSet2.Value = entry.Set2.Value;
     }
     if (entry.Set3.HasValue)
     {
         txtSet3.Value = entry.Set3.Value;
     }
     showSetControls(entry.DayNumber);
 }
コード例 #8
0
ファイル: A6WModule.cs プロジェクト: robocik/BodyArchitect
        public ShareSocialContent ShareToSocial(EntryObjectDTO entryObj)
        {
            A6WEntryDTO        a6W     = (A6WEntryDTO)entryObj;
            ShareSocialContent content = new ShareSocialContent();

            content.Caption = EnumLocalizer.Default.GetUIString("BodyArchitect.Client.Module.A6W:A6WEntryStrings:A6WModule_ShareToSocial_Caption");
            content.Name    = EnumLocalizer.Default.GetUIString("BodyArchitect.Client.Module.A6W:A6WEntryStrings:A6WModule_ShareToSocial_Name");
            var daysToFinish = A6WManager.Days.Count - a6W.Day.DayNumber;

            if (daysToFinish == 0)
            {
                content.Description = string.Format(EnumLocalizer.Default.GetUIString("BodyArchitect.Client.Module.A6W:A6WEntryStrings:A6WModule_ShareToSocial_Finished_Description"), a6W.Day.DayNumber, a6W.TrainingDay.TrainingDate.ToShortDateString());
            }
            else
            {
                content.Description = string.Format(EnumLocalizer.Default.GetUIString("BodyArchitect.Client.Module.A6W:A6WEntryStrings:A6WModule_ShareToSocial_NotFinished_Description"), a6W.Day.DayNumber, a6W.TrainingDay.TrainingDate.ToShortDateString(), daysToFinish);
            }

            return(content);
        }
コード例 #9
0
        public bool Validate(A6WEntryDTO entry)
        {
            A6WDay day = A6WManager.Days[entry.DayNumber - 1];

            if (day.RepetitionNumber < txtSet1.Value)
            {
                FMMessageBox.ShowError(A6WEntryStrings.ErrorSetTooManyRepetitions, 1, entry.DayNumber, day.RepetitionNumber);
                return(false);
            }
            if (day.RepetitionNumber < txtSet2.Value)
            {
                FMMessageBox.ShowError(A6WEntryStrings.ErrorSetTooManyRepetitions, 2, entry.DayNumber, day.RepetitionNumber);
                return(false);
            }
            if (day.RepetitionNumber < txtSet3.Value)
            {
                FMMessageBox.ShowError(A6WEntryStrings.ErrorSetTooManyRepetitions, 3, entry.DayNumber, day.RepetitionNumber);
                return(false);
            }
            return(true);
        }
コード例 #10
0
ファイル: usrA6W.cs プロジェクト: robocik/BodyArchitect
        public void Fill(EntryObjectDTO entry)
        {
            this.entry = (A6WEntryDTO)entry;
            usrReportStatus1.Fill(entry);
            if (this.entry.MyTraining.Id == Constants.UnsavedObjectId)
            {
                FMMessageBox.ShowInfo(A6WEntryStrings.StartNewTrainingText);
            }

            if (entry.Id != Constants.UnsavedObjectId)
            {
                rbCompleted.Checked        = this.entry.Completed;
                rbPartialCompleted.Checked = !this.entry.Completed;
            }
            ReadOnly        = ReadOnly || this.entry.MyTraining.TrainingEnd != TrainingEnd.NotEnded;
            txtComment.Text = entry.Comment;
            fillDaysCombo();
            usrMyTrainingStatus1.Fill(this.entry.MyTraining);
            usrA6WPartialCompleted1.Fill(this.entry);
            lvA6W.Items[this.entry.DayNumber - 1].BackColor = selectedDayColor;
        }
コード例 #11
0
        public override void Fill(EntryObjectDTO entryDto)
        {
            A6WEntryDTO entry = (A6WEntryDTO)entryDto;

            usrApplicationName.Fill(entry);
            usrReportStatus1.Fill(entry);

            usrA6WPartialCompleted1.Fill(entry);
            if (entry.Status == EntryObjectStatus.Done)
            {
                rbPartialCompleted.IsChecked = !entry.Completed;
                rbCompleted.IsChecked        = entry.Completed;
            }
            if (entry.RemindBefore == null && entry.TrainingDay.TrainingDate < DateTime.Now.Date)
            {//hide reminder box for old entries
                grRemindMe.SetVisible(false);
            }
            usrReminder.Entry = entry;
            txtComment.Text   = entry.Comment;

            usrMyTrainingStatus1.Fill(a6wControl.MyTraining);
        }
コード例 #12
0
        public override void UpdateEntryObject(EntryObjectDTO entryDto)
        {
            A6WDay?day = a6wControl.GetSelectedA6wDay();

            if (day == null)
            {
                return;
            }
            A6WEntryDTO entry = (A6WEntryDTO)entryDto;

            entry.Day       = day.Value;
            entry.Completed = rbCompleted.IsChecked.Value;
            entry.Comment   = txtComment.Text;
            usrReportStatus1.Save(entry);
            if (entry.Status == EntryObjectStatus.Planned)
            {
                entry.Completed = false;
            }
            else
            {
                if (!entry.Completed)
                {
                    usrA6WPartialCompleted1.Save(entry);
                }
                else
                {
                    entry.Set1 = entry.Set2 = entry.Set3 = null;
                }
            }

            if (entry.Day.DayNumber == A6WManager.LastDay.DayNumber && entry.MyTraining.TrainingEnd == TrainingEnd.NotEnded)
            {
                entry.MyTraining.Complete();
                BAMessageBox.ShowInfo(EnumLocalizer.Default.GetUIString("BodyArchitect.Client.Module.A6W:A6WEntryStrings:TrainingCompletedText"));
            }
        }
コード例 #13
0
 public void Save(A6WEntryDTO entry)
 {
     save1(entry);
     save2(entry);
     save3(entry);
 }
コード例 #14
0
ファイル: usrA6W.xaml.cs プロジェクト: robocik/BodyArchitect
 public A6WItemViewModel(A6WDay day, A6WEntryDTO entry)
 {
     this.day   = day;
     this.entry = entry;
 }