private void fillDaysCombo() { lvA6W.Items.Clear(); MyTrainingDTO fullMyTraining = null; if (!A6WEntry.MyTraining.IsNew) { fullMyTraining = MyTraining; } if (fullMyTraining == null) { return; } entries = fullMyTraining.EntryObjects.Cast <A6WEntryDTO>().ToDictionary(x => x.Day.DayNumber); foreach (A6WDay day in A6WManager.Days) { A6WItemViewModel item = new A6WItemViewModel(day, A6WEntry); if (entries.ContainsKey(day.DayNumber)) { string icon = "pack://application:,,,/BodyArchitect.Client.Module.A6W;component/Images/{0}"; item.Icon = string.Format(icon, entries[day.DayNumber].Completed ? "Completed.png" : "PartialCompleted.png"); } lvA6W.Items.Add(item); } }
public void StartA6WTraining_ResultEntries() { 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); }); var entries = result.EntryObjects.OrderBy(x => x.TrainingDay.TrainingDate).ToList(); for (int index = 0; index < entries.Count; index++) { var entry = (A6WEntryDTO)entries[index]; Assert.AreEqual(index + 1, entry.Day.DayNumber); Assert.IsNull(entry.RemindBefore); Assert.AreEqual(EntryObjectStatus.Planned, entry.Status); } }
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); }); }
public static IList <EntryObjectDTO> GetMyTrainingEntries(MyTrainingDTO myTraining) { return(exceptionHandling(delegate { return Instance.GetMyTrainingEntries(Token, myTraining); })); }
public void StartA6WTraining() { 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); }); var dbCycle = Session.Get <MyTraining>(result.GlobalId); Assert.AreEqual(42, dbCycle.EntryObjects.Count); //Assert.AreEqual(SuplementsEntryDTO.EntryTypeId, dbCycle.TypeId); var entries = dbCycle.EntryObjects.OrderBy(x => x.TrainingDay.TrainingDate).Cast <A6WEntry>().ToList(); Assert.AreEqual(date, entries.ElementAt(0).TrainingDay.TrainingDate); Assert.AreEqual(date.AddDays(41), entries.ElementAt(41).TrainingDay.TrainingDate); foreach (var entry in entries) { Assert.AreEqual(Model.EntryObjectStatus.Planned, entry.Status); } }
public void StartNewCycle_WithEmptyTrainingDays() { definition = createCreating2DT1DNTDefinition(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.Name = "Creatine"; cycle.StartDate = date; cycle.TrainingDays = ""; cycle.SupplementsCycleDefinitionId = definition.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile1, ClientInformation); MyTrainingDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); var dbCycle = Session.Get <SupplementCycle>(result.GlobalId); Assert.AreEqual(28, dbCycle.EntryObjects.Count); }
public void Test() { var cycleDef = createCycle(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.Name = "Sterydy"; cycle.StartDate = date; cycle.TrainingDays = string.Format("{0}S,{1}S,{2}B", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.SupplementsCycleDefinitionId = cycleDef.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile1, ClientInformation); MyTrainingDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); var dbCycle = Session.Get <SupplementCycle>(result.GlobalId); Assert.AreEqual(70, dbCycle.EntryObjects.Count); }
public void StopTraining() { 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); }); RunServiceMethod(delegate(InternalBodyArchitectService service) { var param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Stop; param.MyTraining = result; result = service.MyTrainingOperation(data.Token, param); }); var dbCycle = Session.Get <MyTraining>(result.GlobalId); Assert.AreEqual(0, dbCycle.EntryObjects.Count); Assert.AreEqual(0, dbCycle.PercentageCompleted); Assert.AreEqual(0, Session.QueryOver <TrainingDay>().RowCount()); Assert.AreEqual(0, Session.QueryOver <EntryObject>().RowCount()); }
public void StartAlreadyStartedCycle() { definition = createCreating2DT1DNTDefinition(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.TrainingDays = string.Format("{0}S,{1}S,{2}S", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.Name = "Creatine"; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = definition.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile1, ClientInformation); MyTrainingDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = (SupplementsCycleDTO)result; service.MyTrainingOperation(data.Token, param); }); }
public void SimulateNewCycle_EntriesFromResult() { definition = createCreating2DT1DNTDefinition(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.TrainingDays = string.Format("{0}S,{1}S,{2}S", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.Name = "Creatine"; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = definition.GlobalId; 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.Simulate; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); Assert.AreEqual(28, result.EntryObjects.Count); //Assert.AreEqual(SuplementsEntryDTO.EntryTypeId, dbCycle.TypeId); var entries = result.EntryObjects.OrderBy(x => x.TrainingDay.TrainingDate).ToList(); Assert.AreEqual(date, entries.ElementAt(0).TrainingDay.TrainingDate); Assert.AreEqual(date.AddDays(27), entries.ElementAt(27).TrainingDay.TrainingDate); foreach (var entry in entries) { Assert.AreEqual(EntryObjectStatus.Planned, entry.Status); } }
public void StartA6WTraining_ForCustomer() { var cust = CreateCustomer("test", profiles[0]); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new A6WTrainingDTO(); cycle.Name = "My A6W"; cycle.StartDate = date; cycle.CustomerId = cust.GlobalId; 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); }); Assert.AreEqual(cust.GlobalId, result.CustomerId.Value); var a6w = Session.Get <A6WTraining>(result.GlobalId); Assert.AreEqual(cust.GlobalId, a6w.Customer.GlobalId); }
public void Fill(MyTrainingDTO myTraining) { this.myTraining = myTraining; lblTrainingState.Text = EnumLocalizer.Default.Translate(myTraining.TrainingEnd); lblTrainingState.ForeColor = getStatusColor(myTraining.TrainingEnd); if (myTraining.PercentageCompleted.HasValue) { lblPercentageResult.Text = string.Format(ApplicationStrings.CompletePercentageResult, myTraining.PercentageCompleted.Value); lblPercentageResult.Visible = true; } else { lblPercentageResult.Visible = false; } dtaStartDate.DateTime = myTraining.StartDate; if (myTraining.EndDate.HasValue) { lblEndDate.Visible = true; dtaEndDate.Visible = true; btnAbortMyTraining.Visible = false; dtaEndDate.DateTime = myTraining.EndDate.Value; } else { lblEndDate.Visible = false; dtaEndDate.Visible = false; btnAbortMyTraining.Visible = true; } }
public void StartNewCycle_Statistics() { definition = createCreating2DT1DNTDefinition(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.TrainingDays = string.Format("{0}S,{1}S,{2}S", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.Name = "Creatine"; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = definition.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile1, ClientInformation); MyTrainingDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); var dbProfile = Session.Get <Profile>(profiles[0].GlobalId); Assert.AreEqual(28, dbProfile.Statistics.TrainingDaysCount); Assert.IsNotNull(dbProfile.Statistics.LastEntryDate); Assert.AreEqual(28, dbProfile.Statistics.SupplementEntriesCount); }
public void SimulateNewCycle_EntriesInDb() { definition = createCreating2DT1DNTDefinition(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.TrainingDays = string.Format("{0}S,{1}S,{2}S", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.Name = "Creatine"; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = definition.GlobalId; 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.Simulate; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); Assert.AreEqual(0, Session.QueryOver <SupplementCycle>().RowCount()); Assert.AreEqual(0, Session.QueryOver <TrainingDay>().RowCount()); Assert.AreEqual(0, Session.QueryOver <SupplementCycle>().RowCount()); }
public void StartA6WTraining_WithReminders() { DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new A6WTrainingDTO(); cycle.Name = "My A6W"; cycle.StartDate = date; cycle.RemindBefore = TimeSpan.FromMinutes(15); 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); }); var dbCycle = Session.Get <MyTraining>(result.GlobalId); var entries = dbCycle.EntryObjects.OrderBy(x => x.TrainingDay.TrainingDate).Cast <A6WEntry>().ToList(); foreach (var entry in entries) { Assert.AreEqual(entry.TrainingDay.TrainingDate, entry.Reminder.DateTime.Date); Assert.AreEqual(TimeSpan.FromMinutes(15), entry.Reminder.RemindBefore); Assert.AreEqual("EntryObjectDTO:" + entry.GlobalId, entry.Reminder.ConnectedObject); Assert.AreEqual(ReminderRepetitions.Once, entry.Reminder.Repetitions); } }
public void StartA6WTraining_TrainingDayStatistics() { 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); }); var dbProfile = Session.Get <Profile>(profiles[0].GlobalId); Assert.AreEqual(42, dbProfile.Statistics.TrainingDaysCount); Assert.IsNotNull(dbProfile.Statistics.LastEntryDate); Assert.AreEqual(0, dbProfile.Statistics.A6WFullCyclesCount); Assert.AreEqual(42, dbProfile.Statistics.A6WEntriesCount); }
public void StopTraining_WithReminders() { 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); }); RunServiceMethod(delegate(InternalBodyArchitectService service) { var param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Stop; param.MyTraining = result; result = service.MyTrainingOperation(data.Token, param); }); Assert.AreEqual(0, Session.QueryOver <ReminderItem>().RowCount()); }
public void StopTraining_AnotherProfile() { 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); }); profile1 = (ProfileDTO)profiles[1].Tag; data = CreateNewSession(profile1, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService service) { var param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Stop; param.MyTraining = result; service.MyTrainingOperation(data.Token, param); }); }
public void StartNewCycle_AllowCommentsSetting_True() { profiles[0].Settings.AllowTrainingDayComments = true; insertToDatabase(profiles[0].Settings); definition = createCreating2DT1DNTDefinition(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.TrainingDays = string.Format("{0}S,{1}S,{2}S", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.Name = "Creatine"; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = definition.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile1, ClientInformation); MyTrainingDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); //Assert.AreEqual(SuplementsEntryDTO.EntryTypeId, dbCycle.TypeId); var entries = result.EntryObjects.OrderBy(x => x.TrainingDay.TrainingDate).ToList(); foreach (var entry in entries) { Assert.IsTrue(entry.TrainingDay.AllowComments); } }
public void StartNewCycle_Longer_ShouldUseRepetition_DoNotChangeDefinitionInDb() { definition = createCycleForRepetitions(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.TrainingDays = string.Format("{0}S,{1}S,{2}S", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.Name = "Creatine"; cycle.StartDate = date; cycle.TotalWeeks = 14; cycle.SupplementsCycleDefinitionId = definition.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile1, ClientInformation); MyTrainingDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); var dbCycle = Session.Get <SupplementCycleDefinition>(definition.GlobalId); Assert.AreEqual(4, dbCycle.Weeks.Count); }
public void CreatineCycle_2DT_1DNT() { definition = createCreating2DT1DNTDefinition(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.TrainingDays = string.Format("{0}S,{1}S,{2}S", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.Name = "Creatine"; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = definition.GlobalId; 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); }); var dbCycle = Session.Get <SupplementCycle>(result.GlobalId); Assert.AreEqual(28, dbCycle.EntryObjects.Count); //Assert.AreEqual(SuplementsEntryDTO.EntryTypeId, dbCycle.TypeId); var entries = dbCycle.EntryObjects.OrderBy(x => x.TrainingDay.TrainingDate).Cast <SuplementsEntry>().ToList(); foreach (var entry in entries) { Assert.IsNotNull(entry.LoginData); Assert.IsNull(entry.Reminder); if (entry.TrainingDay.TrainingDate.DayOfWeek == DayOfWeek.Monday || entry.TrainingDay.TrainingDate.DayOfWeek == DayOfWeek.Wednesday || entry.TrainingDay.TrainingDate.DayOfWeek == DayOfWeek.Friday) { Assert.AreEqual(2, entry.Items.Count); var item = entry.Items.Where(x => x.Time.TimeType == Model.TimeType.OnEmptyStomach).Single(); Assert.AreEqual(5, item.Dosage); Assert.AreEqual(Model.DosageType.Grams, item.DosageType); Assert.AreEqual(supplement.GlobalId, item.Suplement.GlobalId); item = entry.Items.Where(x => x.Time.TimeType == Model.TimeType.AfterWorkout).Single(); Assert.AreEqual(5, item.Dosage); Assert.AreEqual(Model.DosageType.Grams, item.DosageType); Assert.AreEqual(supplement.GlobalId, item.Suplement.GlobalId); } else { Assert.AreEqual(1, entry.Items.Count); var item = entry.Items.Where(x => x.Time.TimeType == Model.TimeType.OnEmptyStomach).Single(); Assert.AreEqual(5, item.Dosage); Assert.AreEqual(Model.DosageType.Grams, item.DosageType); Assert.AreEqual(supplement.GlobalId, item.Suplement.GlobalId); } } }
public IList <EntryObjectDTO> GetMyTrainingEntries(Token token, MyTrainingDTO myTraining) { //var token2=Mapper.Map<Token, V2.Model.Token>(token); //var myTraining2=Mapper.Map<MyTrainingDTO, V2.Model.MyTrainingDTO>(myTraining); //var result = service.GetMyTrainingEntries(token2, myTraining2); //return Mapper.Map<IList<V2.Model.EntryObjectDTO>, EntryObjectDTO[]>(result); throw new NotImplementedException(); }
public void Test() { var cycleDef = createCycle(); DateTime date = new DateTime(2012, 03, 26); //monday var cycle = new SupplementsCycleDTO(); cycle.Name = "Sterydy"; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = cycleDef.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile1, ClientInformation); MyTrainingDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); var dbCycle = Session.Get <SupplementCycle>(result.GlobalId); Assert.AreEqual(30, dbCycle.EntryObjects.Count); //Assert.AreEqual(SuplementsEntryDTO.EntryTypeId, dbCycle.TypeId); var entries = dbCycle.EntryObjects.OrderBy(x => x.TrainingDay.TrainingDate).ToList(); Assert.AreEqual(2, entries.OfType <SizeEntry>().Count()); Assert.AreEqual(28, entries.OfType <SuplementsEntry>().Count()); foreach (var entry in entries) { SuplementsEntry suplementEntry = entry as SuplementsEntry; if (suplementEntry == null) { continue; } Assert.IsNotNull(entry.LoginData); Assert.IsNull(entry.Reminder); Assert.AreEqual(5, suplementEntry.Items.ElementAt(0).Dosage); Assert.AreEqual(Model.DosageType.Tablets, suplementEntry.Items.ElementAt(0).DosageType); Assert.AreEqual(bcaa.GlobalId, suplementEntry.Items.ElementAt(0).Suplement.GlobalId); Assert.AreEqual(Model.TimeType.OnEmptyStomach, suplementEntry.Items.ElementAt(0).Time.TimeType); Assert.AreEqual(5, suplementEntry.Items.ElementAt(1).Dosage); Assert.AreEqual(Model.DosageType.Tablets, suplementEntry.Items.ElementAt(1).DosageType); Assert.AreEqual(bcaa.GlobalId, suplementEntry.Items.ElementAt(1).Suplement.GlobalId); Assert.AreEqual(Model.TimeType.BeforeWorkout, suplementEntry.Items.ElementAt(1).Time.TimeType); Assert.AreEqual(5, suplementEntry.Items.ElementAt(2).Dosage); Assert.AreEqual(Model.DosageType.Tablets, suplementEntry.Items.ElementAt(2).DosageType); Assert.AreEqual(bcaa.GlobalId, suplementEntry.Items.ElementAt(2).Suplement.GlobalId); Assert.AreEqual(Model.TimeType.AfterWorkout, suplementEntry.Items.ElementAt(2).Time.TimeType); } }
public void Test() { var cycleDef = createCycle(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.Name = "Sterydy"; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = cycleDef.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile1, ClientInformation); MyTrainingDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); var dbCycle = Session.Get <SupplementCycle>(result.GlobalId); Assert.AreEqual(112, dbCycle.EntryObjects.Count); //Assert.AreEqual(SuplementsEntryDTO.EntryTypeId, dbCycle.TypeId); var entries = dbCycle.EntryObjects.OrderBy(x => x.TrainingDay.TrainingDate).Cast <SuplementsEntry>().ToList(); foreach (var entry in entries) { Assert.IsNotNull(entry.LoginData); Assert.IsNull(entry.Reminder); var week = (int)((entry.TrainingDay.TrainingDate - dbCycle.StartDate).TotalDays / 7) + 1; bool isMonday = entry.TrainingDay.TrainingDate.DayOfWeek == DayOfWeek.Monday; Assert.AreEqual(isMonday?2:1, entry.Items.Count); if (isMonday) { Assert.AreEqual(week == 1 ? 600 : 300, entry.Items.Where(x => x.Suplement.GlobalId == metenolon.GlobalId).Single().Dosage); Assert.AreEqual(Model.DosageType.MiliGrams, entry.Items.Where(x => x.Suplement.GlobalId == metenolon.GlobalId).Single().DosageType); Assert.AreEqual(Model.TimeType.NotSet, entry.Items.Where(x => x.Suplement.GlobalId == metenolon.GlobalId).Single().Time.TimeType); Assert.AreEqual(50, entry.Items.Where(x => x.Suplement.GlobalId == testosteron.GlobalId).Single().Dosage); Assert.AreEqual(Model.DosageType.MiliGrams, entry.Items.Where(x => x.Suplement.GlobalId == testosteron.GlobalId).Single().DosageType); Assert.AreEqual(Model.TimeType.NotSet, entry.Items.Where(x => x.Suplement.GlobalId == testosteron.GlobalId).Single().Time.TimeType); } else { Assert.AreEqual(50, entry.Items.Where(x => x.Suplement.GlobalId == testosteron.GlobalId).Single().Dosage); Assert.AreEqual(Model.DosageType.MiliGrams, entry.Items.Where(x => x.Suplement.GlobalId == testosteron.GlobalId).Single().DosageType); Assert.AreEqual(Model.TimeType.NotSet, entry.Items.Where(x => x.Suplement.GlobalId == testosteron.GlobalId).Single().Time.TimeType); } } }
public void SaveOnceEntryAsDoneAndStopCycle_Statistics() { definition = createCreating2DT1DNTDefinition(); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.TrainingDays = string.Format("{0}S,{1}S,{2}S", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.Name = "Creatine"; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = definition.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile1, ClientInformation); MyTrainingDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; result = service.MyTrainingOperation(data.Token, param); }); var dbTrainingDay = Session.QueryOver <TrainingDay>().Where(x => x.TrainingDate == date).Fetch(x => x.Objects).Eager.Fetch(x => x.Objects.First().MyTraining).Eager.SingleOrDefault(); var dtoTrainingDay = dbTrainingDay.Map <TrainingDayDTO>(); dtoTrainingDay.Objects[0].Status = EntryObjectStatus.Done; RunServiceMethod(delegate(InternalBodyArchitectService service) { dtoTrainingDay = service.SaveTrainingDay(data.Token, dtoTrainingDay).TrainingDay; }); RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Stop; param.MyTraining = (SupplementsCycleDTO)result; result = service.MyTrainingOperation(data.Token, param); }); var dbProfile = Session.Get <Profile>(profiles[0].GlobalId); Assert.AreEqual(1, dbProfile.Statistics.TrainingDaysCount); Assert.IsNotNull(dbProfile.Statistics.LastEntryDate); Assert.AreEqual(1, dbProfile.Statistics.SupplementEntriesCount); }
public void FinishTraining_BySaveTrainingDay() { 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); }); var dbTrainingDay = Session.QueryOver <TrainingDay>().Fetch(x => x.Objects).Eager.Fetch(x => x.Objects.First().MyTraining).Eager.List(); for (int i = 0; i < 41; i++) { dbTrainingDay[i].Objects.ElementAt(0).Status = Model.EntryObjectStatus.Done; insertToDatabase(dbTrainingDay[i].Objects.ElementAt(0)); } //mark last entry as Done var dtoTrainingDay = dbTrainingDay[41].Map <TrainingDayDTO>(); dtoTrainingDay.Objects[0].Status = Service.V2.Model.EntryObjectStatus.Done; RunServiceMethod(delegate(InternalBodyArchitectService service) { TimerService.UtcNow = DateTime.UtcNow.AddDays(3).Date; var res = service.SaveTrainingDay(data.Token, dtoTrainingDay); dtoTrainingDay = res.TrainingDay; }); Assert.AreEqual(DateTime.UtcNow.AddDays(3).Date, dtoTrainingDay.Objects[0].MyTraining.EndDate); Assert.AreEqual(100, dtoTrainingDay.Objects[0].MyTraining.PercentageCompleted); Assert.AreEqual(Service.V2.Model.TrainingEnd.Complete, dtoTrainingDay.Objects[0].MyTraining.TrainingEnd); var dbCycle = Session.Get <MyTraining>(result.GlobalId); Assert.AreEqual(DateTime.UtcNow.AddDays(3).Date, dbCycle.EndDate); Assert.AreEqual(100, dbCycle.PercentageCompleted); Assert.AreEqual(Model.TrainingEnd.Complete, dbCycle.TrainingEnd); }
private void createEntryObject(MyTrainingDTO param, int dayIndex, Profile dbProfile, MyTraining dbCycle, Func <IEnumerable <EntryObject> > createMethod) { var entries = createMethod(); foreach (var entry in entries) { var newDate = dbCycle.StartDate.Date.AddDays(dayIndex); var trainingDay = Session.QueryOver <TrainingDay>().Where(x => x.TrainingDate == newDate && x.Profile == dbCycle.Profile && x.Customer == dbCycle.Customer).SingleOrDefault(); if (trainingDay == null) { trainingDay = new TrainingDay(newDate); trainingDay.Profile = dbProfile; trainingDay.AllowComments = dbProfile.Settings.AllowTrainingDayComments; trainingDay.Customer = dbCycle.Customer; } entry.Status = EntryObjectStatus.Planned; trainingDay.AddEntry(entry); dbCycle.EntryObjects.Add(entry); entry.LoginData = SecurityInfo.LoginData; entry.MyTraining = dbCycle; if (param.RemindBefore.HasValue) { entry.Reminder = new ReminderItem(); entry.Reminder.DateTime = entry.TrainingDay.TrainingDate; entry.Reminder.Profile = dbProfile; entry.Reminder.Type = ReminderType.EntryObject; entry.Reminder.RemindBefore = param.RemindBefore != TimeSpan.Zero ? param.RemindBefore.Value : (TimeSpan?)null; entry.Reminder.Repetitions = ReminderRepetitions.Once; entry.Reminder.Name = string.Format(LocalizedStrings.SupplementDefinitionEntry_ReminderName, dbCycle.Name); Session.Save(entry.Reminder); } Session.SaveOrUpdate(trainingDay); Session.Flush(); if (entry.Reminder != null) { entry.Reminder.ConnectedObject = string.Format("EntryObjectDTO:{0}", entry.GlobalId); Session.Update(entry.Reminder); } } }
public void SaveOnceEntryAsDoneAndStopTraining_TrainingDayStatistics() { 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); }); var dbTrainingDay = Session.QueryOver <TrainingDay>().Where(x => x.TrainingDate == date).Fetch(x => x.Objects).Eager.Fetch(x => x.Objects.First().MyTraining).Eager.SingleOrDefault(); var dtoTrainingDay = dbTrainingDay.Map <TrainingDayDTO>(); dtoTrainingDay.Objects[0].Status = Service.V2.Model.EntryObjectStatus.Done; RunServiceMethod(delegate(InternalBodyArchitectService service) { dtoTrainingDay = service.SaveTrainingDay(data.Token, dtoTrainingDay).TrainingDay; }); RunServiceMethod(delegate(InternalBodyArchitectService service) { var param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Stop; param.MyTraining = result; result = service.MyTrainingOperation(data.Token, param); }); var dbProfile = Session.Get <Profile>(profiles[0].GlobalId); Assert.AreEqual(1, dbProfile.Statistics.TrainingDaysCount); Assert.IsNotNull(dbProfile.Statistics.LastEntryDate); Assert.AreEqual(0, dbProfile.Statistics.A6WFullCyclesCount); Assert.AreEqual(1, dbProfile.Statistics.A6WEntriesCount); }
public void MyTrainingOperation_ProblemWithResultClass() { var res = CreateSupplement("Sup"); var definition = new SupplementCycleDefinition(); definition.Language = "en"; definition.Profile = profiles[0]; definition.Name = "dfgdfg"; var week = new SupplementCycleWeek(); week.CycleWeekStart = week.CycleWeekEnd = 1; week.Definition = definition; definition.Weeks.Add(week); var dosage = new SupplementCycleDosage(); dosage.Week = week; dosage.Supplement = res; week.Dosages.Add(dosage); insertToDatabase(definition); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.TrainingDays = string.Format("{0}S,{1}S,{2}S", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.Name = "Creatine"; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = definition.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; MyTrainingDTO result = null; MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; IBodyArchitectAccessService service = CreateServiceProxy(AddressHeader.CreateAddressHeader("APIKey", "", "EB17BC2A-94FD-4E65-8751-15730F69E7F5")); var sessionData = service.Login(ClientInformation, "test_user", "pwd".ToSHA1Hash()); result = service.MyTrainingOperation(sessionData.Token, param); Assert.AreEqual(7, result.EntryObjects.Count); }
public void FinishA6WTraining_Statistics_PartiallyCompleted() { 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); }); Run(s => { for (int index = 0; index < 12; index++) { var entryObjectDto = result.EntryObjects[index]; var entry = s.Get <EntryObject>(entryObjectDto.GlobalId); entry.Status = Model.EntryObjectStatus.Done; s.Update(entry); } }); RunServiceMethod(delegate(InternalBodyArchitectService service) { var param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Stop; param.MyTraining = result; result = service.MyTrainingOperation(data.Token, param); }); var dbProfile = Session.Get <Profile>(profiles[0].GlobalId); Assert.AreEqual(12, dbProfile.Statistics.TrainingDaysCount); Assert.AreEqual(0, dbProfile.Statistics.A6WFullCyclesCount); Assert.AreEqual(12, dbProfile.Statistics.A6WEntriesCount); }