Esempio n. 1
0
        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);
            });
        }
Esempio n. 4
0
 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);
            }
        }
Esempio n. 6
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 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());
        }
Esempio n. 9
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);
            });
        }
Esempio n. 10
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_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);
        }
Esempio n. 12
0
 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;
     }
 }
Esempio n. 13
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);
        }
Esempio n. 14
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());
        }
        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);
            });
        }
Esempio n. 19
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);
            }
        }
Esempio n. 20
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);
        }
Esempio n. 21
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);
                }
            }
        }
Esempio n. 22
0
        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();
        }
Esempio n. 23
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);
            }
        }
Esempio n. 24
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);
                }
            }
        }
Esempio n. 25
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);
        }
        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);
        }
Esempio n. 29
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);
        }
        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);
        }