public void TestGetTrainingDays_Private()
        {
            setPrivacy(Privacy.Private);

            PagedResult <TrainingDayDTO> days = null;
            var         profile1 = (ProfileDTO)profiles[1].Tag;
            var         profile2 = (ProfileDTO)profiles[2].Tag;
            SessionData data     = SecurityManager.CreateNewSession(profile1, ClientInformation);
            WorkoutDaysSearchCriteria searchCriteria = new WorkoutDaysSearchCriteria();

            searchCriteria.UserId = profiles[0].Id;

            RunServiceMethod(delegate(InternalBodyArchitectService Service)
            {
                days = Service.GetTrainingDays(data.Token, searchCriteria, new PartialRetrievingInfo()
                {
                    PageSize = PartialRetrievingInfo.AllElementsPageSize
                });
            });
            Assert.AreEqual(0, days.AllItemsCount);

            data                  = SecurityManager.CreateNewSession(profile2, ClientInformation);
            searchCriteria        = new WorkoutDaysSearchCriteria();
            searchCriteria.UserId = profiles[0].Id;

            RunServiceMethod(delegate(InternalBodyArchitectService Service)
            {
                days = Service.GetTrainingDays(data.Token, searchCriteria, new PartialRetrievingInfo()
                {
                    PageSize = PartialRetrievingInfo.AllElementsPageSize
                });
            });
            Assert.AreEqual(0, days.AllItemsCount);
        }
예제 #2
0
        public void GetApplicationName()
        {
            LoginData loginData = new LoginData();

            loginData.ApiKey              = apiKey;
            loginData.ApplicationVersion  = "1.0.0";
            loginData.LoginDateTime       = DateTime.UtcNow;
            loginData.ApplicationLanguage = "en";
            loginData.PlatformVersion     = "NUnit";
            insertToDatabase(loginData);
            trainingDays[0].Objects.ElementAt(0).LoginData = loginData;
            insertToDatabase(trainingDays[0]);
            var profile1 = (ProfileDTO)profiles[0].Tag;

            SessionData data = CreateNewSession(profile1, ClientInformation);
            WorkoutDaysSearchCriteria searchCriteria = new WorkoutDaysSearchCriteria();

            searchCriteria.StartDate = searchCriteria.EndDate = trainingDays[0].TrainingDate;
            PagedResult <TrainingDayDTO> days = null;

            RunServiceMethod(delegate(InternalBodyArchitectService Service)
            {
                Service.Configuration.CurrentApiKey = key;
                days = Service.GetTrainingDays(data.Token, searchCriteria, new PartialRetrievingInfo()
                {
                    PageSize = PartialRetrievingInfo.AllElementsPageSize
                });
            });
            Assert.AreEqual(apiKey.ApplicationName, days.Items[0].Objects.ElementAt(0).ApplicationName);
        }
        public void RetrieveDays(DateTime startDate, DateTime endDate)
        {
            var      param    = new WorkoutDaysSearchCriteria();
            DateTime firstDay = DateHelper.GetFirstDayOfMonth(startDate);
            DateTime endDay   = DateHelper.GetLastDayOfMonth(endDate);

            param.StartDate  = firstDay;
            param.EndDate    = endDay;
            param.CustomerId = key.CustomerId;
            param.UserId     = key.ProfileId;

            var pageInfo = new PartialRetrievingInfo();

            pageInfo.PageSize = PartialRetrievingInfo.AllElementsPageSize;
            var res = ServiceManager.GetTrainingDays(param, pageInfo);

            foreach (var dto in res.Items)
            {
                days.AddOrUpdate(dto.TrainingDate, dto, (x, y) => dto);
            }
            for (int i = 0; i < endDate.MonthDifference(startDate) + 1; i++)
            {
                DateTime tempDate = startDate.AddMonths(i);
                if (!retrievedMonths.Contains(tempDate))
                {
                    retrievedMonths.Add(tempDate);
                }
            }
        }
예제 #4
0
        public PagedResult <TrainingDayDTO> GetTrainingDays(Token token, WorkoutDaysSearchCriteria searchCriteria, PartialRetrievingInfo retrievingInfo)
        {
            var securityInfo           = SecurityManager.EnsureAuthentication(token);
            TrainingDayService service = new TrainingDayService(Session, securityInfo, Configuration, PushNotificationService, EMailService);

            return(service.GetTrainingDays(searchCriteria, retrievingInfo));
        }
예제 #5
0
 public static PagedResult <TrainingDayDTO> GetTrainingDays(WorkoutDaysSearchCriteria searchCriteria, PartialRetrievingInfo pageInfo)
 {
     return(exceptionHandling(delegate
     {
         return Instance.GetTrainingDays(Token, searchCriteria, pageInfo);
     }));
 }
예제 #6
0
        public WorkoutDaysSearchCriteria GetWorkoutDaysCriteria()
        {
            var criteria = new WorkoutDaysSearchCriteria();

            criteria.StartDate = this.usrDateRange1.DateFrom;
            criteria.EndDate   = this.usrDateRange1.DateTo;
            return(criteria);
        }
예제 #7
0
        public async void RetrieveMonth(DateTime monthDate, TrainingDaysHolder holder)
        {
            DateTime monthTOShow             = monthDate;
            WorkoutDaysSearchCriteria search = new WorkoutDaysSearchCriteria();

            search.UserId     = holder.User != null ? (Guid?)holder.User.GlobalId : null;
            search.CustomerId = holder.CustomerId;
            search.EndDate    = monthDate.AddMonths(1);
            if (Settings.NumberOfMonthToRetrieve > 1)
            {//-1 because we need to subtract months
                monthDate = monthDate.AddMonths(-1 * (Settings.NumberOfMonthToRetrieve - 1));
            }
            search.StartDate = monthDate;
            PartialRetrievingInfo pageInfo = new PartialRetrievingInfo();

            pageInfo.PageSize = 0;//we want to download all entries in selected period of time



            var m = new ServiceManager <GetTrainingDaysCompletedEventArgs>(delegate(BodyArchitectAccessServiceClient client1, EventHandler <GetTrainingDaysCompletedEventArgs> operationCompleted)
            {
                client1.GetTrainingDaysCompleted -= operationCompleted;
                client1.GetTrainingDaysCompleted += operationCompleted;
                client1.GetTrainingDaysAsync(ApplicationState.Current.SessionData.Token, search, pageInfo);
            });

            m.OperationCompleted += (s, a) =>
            {
                if (a.Error != null)
                {
                    onTrainingDaysRetrieved(monthTOShow);
                    BAMessageBox.ShowError(ApplicationStrings.ApplicationState_ErrRetrieveTrainingDays);
                    return;
                }
                if (a.Result != null && a.Result.Result != null)
                {
                    RetrievedDays(monthDate, Settings.NumberOfMonthToRetrieve, a.Result.Result.Items, holder);
                    onTrainingDaysRetrieved(monthTOShow);
                }
            };

            if (!m.Run())
            {
                if (ApplicationState.Current.IsOffline)
                {
                    BAMessageBox.ShowError(ApplicationStrings.ErrOfflineMode);
                }
                else
                {
                    BAMessageBox.ShowError(ApplicationStrings.ErrNoNetwork);
                }
                onTrainingDaysRetrieved(monthTOShow);
            }
        }
예제 #8
0
        public void ForCustomer_GetTrainingDays_CustomerFromAnotherProfile_SecurityBug()
        {
            var profile1 = (ProfileDTO)profiles[0].Tag;

            SessionData data = CreateNewSession(profile1, ClientInformation);
            WorkoutDaysSearchCriteria searchCriteria = new WorkoutDaysSearchCriteria();

            searchCriteria.UserId     = profiles[1].GlobalId;
            searchCriteria.CustomerId = customers[2].GlobalId;
            RunServiceMethod(delegate(InternalBodyArchitectService service)
            {
                service.GetTrainingDays(data.Token, searchCriteria, new PartialRetrievingInfo()
                {
                    PageSize = PartialRetrievingInfo.AllElementsPageSize
                });
            });
        }
        public void TestBugWithCircuralReferences_EntryObject_TrainingDay()
        {
            var profile1 = (ProfileDTO)profiles[0].Tag;

            //create some training day entries
            var day = new TrainingDay(DateTime.Now.AddDays(-2));

            day.Profile = profiles[0];
            var sizeEntry = new SizeEntry();

            sizeEntry.Wymiary        = new Wymiary();
            sizeEntry.Wymiary.Height = 213;
            day.AddEntry(sizeEntry);
            Session.Save(day);
            trainingDays.Add(day);

            day                      = new TrainingDay(DateTime.Now.AddDays(-1));
            day.Profile              = profiles[0];
            sizeEntry                = new SizeEntry();
            sizeEntry.Wymiary        = new Wymiary();
            sizeEntry.Wymiary.Height = 113;
            day.AddEntry(sizeEntry);
            Session.Save(day);
            trainingDays.Add(day);

            SessionData data = SecurityManager.CreateNewSession(profile1, ClientInformation);
            WorkoutDaysSearchCriteria searchCriteria = new WorkoutDaysSearchCriteria();

            searchCriteria.UserId = profiles[0].Id;
            PagedResult <TrainingDayDTO> days = null;

            RunServiceMethod(delegate(InternalBodyArchitectService Service)
            {
                days = Service.GetTrainingDays(data.Token, searchCriteria,
                                               new PartialRetrievingInfo()
                {
                    PageSize = PartialRetrievingInfo.AllElementsPageSize
                });
            });
            Assert.AreEqual(days.Items[0], days.Items[0].Objects[0].TrainingDay);
            Assert.AreEqual(days.Items[1], days.Items[1].Objects[0].TrainingDay);
        }
예제 #10
0
        public void ForCustomer_GetTrainingDays()
        {
            var profile1 = (ProfileDTO)profiles[0].Tag;

            SessionData data = CreateNewSession(profile1, ClientInformation);
            WorkoutDaysSearchCriteria searchCriteria = new WorkoutDaysSearchCriteria();

            searchCriteria.UserId     = profiles[0].GlobalId;
            searchCriteria.CustomerId = customers[0].GlobalId;
            PagedResult <TrainingDayDTO> days = null;

            RunServiceMethod(delegate(InternalBodyArchitectService Service)
            {
                days = Service.GetTrainingDays(data.Token, searchCriteria, new PartialRetrievingInfo()
                {
                    PageSize = PartialRetrievingInfo.AllElementsPageSize
                });
            });
            Assert.AreEqual(2, days.AllItemsCount);
            Assert.AreEqual(customersTrainingDays[0].GlobalId, days.Items[0].GlobalId);
            Assert.AreEqual(customersTrainingDays[1].GlobalId, days.Items[1].GlobalId);
        }
예제 #11
0
 private void fillImplementation(DateTime activeMonth, UserDTO user, OperationContext context)
 {
     try
     {
         DateTime startDate = DateHelper.GetFirstDayOfMonth(activeMonth);
         DateTime endDate   = DateHelper.GetLastDayOfMonth(activeMonth);
         WorkoutDaysSearchCriteria searchCriteria = new WorkoutDaysSearchCriteria();
         searchCriteria.StartDate = startDate;
         searchCriteria.EndDate   = endDate;
         searchCriteria.UserId    = user.Id;
         var pageInfo = new PartialRetrievingInfo();
         pageInfo.PageSize = PartialRetrievingInfo.AllElementsPageSize;
         var days = ServiceManager.GetTrainingDays(searchCriteria, pageInfo);
         if (context != null && context.CancellatioToken.IsCancellationRequested)
         {
             return;
         }
         if (ParentWindow != null && monthCalendar1.ActiveMonth.Month == activeMonth.Month && monthCalendar1.ActiveMonth.Year == activeMonth.Year)
         {
             dayInfoFiller.PrepareData();
             ParentWindow.SynchronizationContext.Send(delegate
             {
                 monthCalendar1.ResetDateInfo();
                 //DateTime start = DateTime.Now;
                 foreach (var day in days.Items)
                 {
                     addTrainingDayInfo(day);
                 }
             }, context);
         }
     }
     finally
     {
         isFilled = true;
     }
 }
        public void TestBugWithCircuralReferences_StrengthTraining()
        {
            var profile1 = (ProfileDTO)profiles[0].Tag;

            //create some training day entries
            var day = new TrainingDay(DateTime.Now.AddDays(-2));

            day.Profile = profiles[0];
            var sizeEntry = new StrengthTrainingEntry();

            day.AddEntry(sizeEntry);
            var strengthItem = new StrengthTrainingItem();

            sizeEntry.AddEntry(strengthItem);
            var set = new Serie();

            strengthItem.AddSerie(set);
            set = new Serie();
            strengthItem.AddSerie(set);
            strengthItem = new StrengthTrainingItem();
            sizeEntry.AddEntry(strengthItem);
            set = new Serie();
            strengthItem.AddSerie(set);
            set = new Serie();
            strengthItem.AddSerie(set);
            Session.Save(day);
            trainingDays.Add(day);

            day         = new TrainingDay(DateTime.Now.AddDays(-1));
            day.Profile = profiles[0];
            sizeEntry   = new StrengthTrainingEntry();
            day.AddEntry(sizeEntry);
            strengthItem = new StrengthTrainingItem();
            sizeEntry.AddEntry(strengthItem);
            set = new Serie();
            strengthItem.AddSerie(set);
            set = new Serie();
            strengthItem.AddSerie(set);
            strengthItem = new StrengthTrainingItem();
            sizeEntry.AddEntry(strengthItem);
            set = new Serie();
            strengthItem.AddSerie(set);
            set = new Serie();
            strengthItem.AddSerie(set);
            Session.Save(day);
            trainingDays.Add(day);

            SessionData data = SecurityManager.CreateNewSession(profile1, ClientInformation);
            WorkoutDaysSearchCriteria searchCriteria = new WorkoutDaysSearchCriteria();

            searchCriteria.UserId = profiles[0].Id;
            PagedResult <TrainingDayDTO> days = null;

            RunServiceMethod(delegate(InternalBodyArchitectService Service)
            {
                days = Service.GetTrainingDays(data.Token, searchCriteria,
                                               new PartialRetrievingInfo()
                {
                    PageSize = PartialRetrievingInfo.AllElementsPageSize
                });
            });
            foreach (var item in ((StrengthTrainingEntryDTO)days.Items[5].Objects[0]).Entries)
            {
                Assert.AreEqual(days.Items[5].Objects[0], item.StrengthTrainingEntry);
                foreach (var tSet in item.Series)
                {
                    Assert.AreEqual(item, tSet.StrengthTrainingItem);
                }
            }

            foreach (var item in ((StrengthTrainingEntryDTO)days.Items[6].Objects[0]).Entries)
            {
                Assert.AreEqual(days.Items[6].Objects[0], item.StrengthTrainingEntry);
                foreach (var tSet in item.Series)
                {
                    Assert.AreEqual(item, tSet.StrengthTrainingItem);
                }
            }
        }
예제 #13
0
 public PagedResult <TrainingDayDTO> GetTrainingDays(Token token, WorkoutDaysSearchCriteria searchCriteria, PartialRetrievingInfo retrievingInfo)
 {
     throw new NotImplementedException();
 }
예제 #14
0
        public async Task RetrieveMonthAsync(DateTime monthDate, TrainingDaysHolder holder)
        {
            DateTime monthTOShow             = monthDate;
            WorkoutDaysSearchCriteria search = new WorkoutDaysSearchCriteria();

            search.UserId     = holder.User != null ? (Guid?)holder.User.GlobalId : null;
            search.CustomerId = holder.CustomerId;
            search.EndDate    = monthDate.AddMonths(1);
            if (Settings.NumberOfMonthToRetrieve > 1)
            {//-1 because we need to subtract months
                monthDate = monthDate.AddMonths(-1 * (Settings.NumberOfMonthToRetrieve - 1));
            }
            search.StartDate = monthDate;
            PartialRetrievingInfo pageInfo = new PartialRetrievingInfo();

            pageInfo.PageSize = 0;//we want to download all entries in selected period of time

            try
            {
                var result = await BAService.GetTrainingDaysAsync(search, pageInfo);

                RetrievedDays(monthDate, Settings.NumberOfMonthToRetrieve, result.Items, holder);
            }
            catch (NetworkException)
            {
                if (ApplicationState.Current.IsOffline)
                {
                    BAMessageBox.ShowWarning(ApplicationStrings.EntryObjectPageBase_SavedLocallyOnly);
                }
                else
                {
                    BAMessageBox.ShowError(ApplicationStrings.ErrNoNetwork);
                }
            }
            catch (Exception)
            {
                BAMessageBox.ShowError(ApplicationStrings.ApplicationState_ErrRetrieveTrainingDays);
            }



            //var m = new ServiceManager<GetTrainingDaysCompletedEventArgs>(delegate(BodyArchitectAccessServiceClient client1, EventHandler<GetTrainingDaysCompletedEventArgs> operationCompleted)
            //{
            //    client1.GetTrainingDaysCompleted -= operationCompleted;
            //    client1.GetTrainingDaysCompleted += operationCompleted;
            //    client1.GetTrainingDaysAsync(ApplicationState.Current.SessionData.Token, search, pageInfo);
            //});
            //m.OperationCompleted += (s, a) =>
            //   {

            //    if (a.Error != null)
            //    {
            //        onTrainingDaysRetrieved(monthTOShow);
            //        BAMessageBox.ShowError(ApplicationStrings.ApplicationState_ErrRetrieveTrainingDays);
            //        return;
            //    }
            //    if (a.Result != null && a.Result.Result!=null )
            //    {
            //        RetrievedDays(monthDate, Settings.NumberOfMonthToRetrieve, a.Result.Result.Items, holder);
            //        onTrainingDaysRetrieved(monthTOShow);
            //    }
            //};

            //if(!m.Run())
            //{
            //    if(ApplicationState.Current.IsOffline)
            //    {
            //        BAMessageBox.ShowError(ApplicationStrings.ErrOfflineMode);
            //    }
            //    else
            //    {
            //        BAMessageBox.ShowError(ApplicationStrings.ErrNoNetwork);
            //    }
            //    onTrainingDaysRetrieved(monthTOShow);
            //}
        }
 public PagedResult <TrainingDayDTO> GetTrainingDays(Token token, WorkoutDaysSearchCriteria searchCriteria, PartialRetrievingInfo retrievingInfo)
 {
     return(exceptionHandling(token, () => InternalService.GetTrainingDays(token, searchCriteria, retrievingInfo)));
 }
예제 #16
0
        static async public Task <PagedResultOfTrainingDayDTO5oAtqRlh> GetTrainingDaysAsync(WorkoutDaysSearchCriteria search, PartialRetrievingInfo pageInfo)
        {
            var test = exceptionHandling((client) =>
            {
                return(Task <PagedResultOfTrainingDayDTO5oAtqRlh> .Factory.FromAsync(client.BeginGetTrainingDays, client.EndGetTrainingDays, ApplicationState.Current.SessionData.Token, search, pageInfo, null));
            });

            return(await test);
        }