Exemple #1
0
        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());
        }
Exemple #2
0
        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);
            });
        }
Exemple #3
0
        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);
        }
Exemple #6
0
        public MyTrainingDTO MyTrainingOperation(Token token, MyTrainingOperationParam param)
        {
            var securityInfo = SecurityManager.EnsureAuthentication(token);
            var service      = new SupplementsEngineService(Session, securityInfo, Configuration);

            return(service.MyTrainingOperation(param));
        }
Exemple #7
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #11
0
        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());
        }
Exemple #15
0
        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);
            });
        }
Exemple #17
0
        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);
            }
        }
Exemple #20
0
        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);
                }
            }
        }
Exemple #21
0
        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);
            }
        }
Exemple #22
0
        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);
        }
Exemple #26
0
        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);
        }
Exemple #27
0
        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);
        }
Exemple #30
0
        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);
        }