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 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 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 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 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 MyTrainingDTO MyTrainingOperation(Token token, MyTrainingOperationParam param) { var securityInfo = SecurityManager.EnsureAuthentication(token); var service = new SupplementsEngineService(Session, securityInfo, Configuration); return(service.MyTrainingOperation(param)); }
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 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 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_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 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 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 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() { 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 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 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 void StartNewCycle_CustomerFromAnotherProfile() { definition = createCreating2DT1DNTDefinition(); var customer = CreateCustomer("ccc", profiles[1]); DateTime date = new DateTime(2012, 03, 26);//monday var cycle = new SupplementsCycleDTO(); cycle.TrainingDays = string.Format("{0},{1},{2}", (int)DayOfWeek.Monday, (int)DayOfWeek.Wednesday, (int)DayOfWeek.Friday); cycle.Name = "Creatine"; cycle.CustomerId = customer.GlobalId; cycle.StartDate = date; cycle.SupplementsCycleDefinitionId = definition.GlobalId; var profile1 = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile1, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService service) { MyTrainingOperationParam param = new MyTrainingOperationParam(); param.Operation = MyTrainingOperationType.Start; param.MyTraining = cycle; service.MyTrainingOperation(data.Token, param); }); }
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_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 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 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); } } }
private void startA6WTraining(MyTrainingOperationParam param, A6WTraining dbCycle, Profile dbProfile) { for (int i = 0; i < A6WManager.Days.Count; i++) { createEntryObject(param.MyTraining, i, dbProfile, dbCycle, () => { var entry = new A6WEntry(); entry.DayNumber = i + 1; return(new [] { entry }); }); } }
private void startSupplementsCycle(MyTrainingOperationParam param, SupplementCycle dbCycle, Profile dbProfile, Guid supplementsCycleDefinitionId) { dbCycle.Profile = dbProfile; var dbCycleDefinition = dbCycle.SupplementsCycleDefinition = Session.QueryOver <SupplementCycleDefinition>().Where(x => x.GlobalId == supplementsCycleDefinitionId).Fetch(x => x.Weeks).Eager.Fetch(x => x.Weeks.First().Dosages).Eager.SingleOrDefault(); var definitionDTO = dbCycleDefinition.Map <SupplementCycleDefinitionDTO>(); SupplementsCycleRepetiter repetiter = new SupplementsCycleRepetiter(); var preparedCycleDefinition = repetiter.Preapre(definitionDTO, dbCycle.TotalWeeks); dbCycleDefinition = preparedCycleDefinition.Map <SupplementCycleDefinition>(); for (int i = 0; i < dbCycleDefinition.GetTotalDays(dbCycle.TotalWeeks); i++) { createEntryObject(param.MyTraining, i, dbProfile, dbCycle, () => { List <EntryObject> entries = new List <EntryObject>(); var dosages = getDayDosages(dbCycleDefinition, i, dbCycle); if (dosages.Count == 0) { return(entries); } if (dosages.OfType <SupplementCycleMeasurement>().Count() > 0) { SizeEntry sizeEntry = new SizeEntry(); entries.Add(sizeEntry); } var supplementEntries = dosages.OfType <SupplementCycleDosage>().ToList(); if (supplementEntries.Count == 0) { return(entries); } SuplementsEntry entry = new SuplementsEntry(); foreach (var dosage in supplementEntries) { SuplementItem item = new SuplementItem(); entry.AddItem(item); item.Name = dosage.Name; item.Time.TimeType = (TimeType)dosage.TimeType; item.Suplement = Session.Load <Suplement>(dosage.Supplement.GlobalId); item.Dosage = dosage.Dosage; if (dosage.DosageUnit == BodyArchitect.Model.DosageUnit.ON10KgWight) { item.Dosage = (dosage.Dosage * (dbCycle.Weight / 10M)).RoundToNearestHalf(); } item.DosageType = (DosageType)dosage.DosageType; } entries.Add(entry); return(entries); }); } }
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); }
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); }
A6WTrainingDTO startCycle(MyTrainingOperationType operation) { var cycle = new A6WTrainingDTO(); cycle.RemindBefore = RemindBefore; var param = new MyTrainingOperationParam(); param.Operation = operation; param.MyTraining = cycle; cycle.Name = Name; if (Customer != null) { cycle.CustomerId = Customer.GlobalId; } cycle.StartDate = StartDate.ToUniversalTime(); return((A6WTrainingDTO)ServiceManager.MyTrainingOperation(param)); }
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 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); }
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); }