Esempio n. 1
0
        public void SkipPlanned()
        {
            AddTrainingDaySize(profiles[0], null, DateTime.UtcNow.Date.AddDays(-10), new Wymiary()
            {
                Height = 100, Klatka = 55
            });

            var entry = AddTrainingDaySize(profiles[0], null, DateTime.UtcNow.Date.AddDays(-10), new Wymiary()
            {
                Height = 401, Klatka = 10
            });

            entry.Status = EntryObjectStatus.Planned;
            insertToDatabase(entry);

            var         profile = (ProfileDTO)profiles[0].Tag;
            SessionData data    = CreateNewSession(profile, ClientInformation);

            RunServiceMethod(delegate(InternalBodyArchitectService service)
            {
                var param           = new ReportMeasurementsTimeParams();
                param.UseAllEntries = true;
                var list            = service.ReportMeasurementsTime(data.Token, param);
                assert(list, new Tuple <DateTime, float, float>(DateTime.UtcNow.Date.AddDays(-10), 100, 55));
            });
        }
Esempio n. 2
0
        public void ToDate()
        {
            AddTrainingDaySize(profiles[0], null, DateTime.UtcNow.Date.AddDays(-3), new Wymiary()
            {
                Height = 100, Klatka = 55
            });
            AddTrainingDaySize(profiles[0], null, DateTime.UtcNow.Date.AddDays(-10), new Wymiary()
            {
                Height = 401, Klatka = 10
            });
            AddTrainingDaySize(profiles[0], null, DateTime.UtcNow.Date.AddDays(-21), new Wymiary()
            {
                Height = 402, Klatka = 11
            });

            var         profile = (ProfileDTO)profiles[0].Tag;
            SessionData data    = CreateNewSession(profile, ClientInformation);

            RunServiceMethod(delegate(InternalBodyArchitectService service)
            {
                var param     = new ReportMeasurementsTimeParams();
                param.EndDate = DateTime.UtcNow.AddDays(-8);
                var list      = service.ReportMeasurementsTime(data.Token, param);
                assert(list, new Tuple <DateTime, float, float>(DateTime.UtcNow.Date.AddDays(-21), 402, 11), new Tuple <DateTime, float, float>(DateTime.UtcNow.Date.AddDays(-10), 401, 10));
            });
        }
Esempio n. 3
0
        public void ForCustomer_AnotherProfile()
        {
            var customer = CreateCustomer("cust", profiles[0]);

            AddTrainingDaySize(profiles[0], customer, DateTime.UtcNow.Date.AddDays(-10), new Wymiary()
            {
                Height = 100, Klatka = 55
            });
            AddTrainingDaySize(profiles[0], null, DateTime.UtcNow.Date.AddDays(-10), new Wymiary()
            {
                Height = 401, Klatka = 10
            });
            AddTrainingDaySize(profiles[1], null, DateTime.UtcNow.Date.AddDays(-10), new Wymiary()
            {
                Height = 402, Klatka = 11
            });

            var         profile = (ProfileDTO)profiles[1].Tag;
            SessionData data    = CreateNewSession(profile, ClientInformation);

            RunServiceMethod(delegate(InternalBodyArchitectService service)
            {
                var param        = new ReportMeasurementsTimeParams();
                param.CustomerId = customer.GlobalId;
                var list         = service.ReportMeasurementsTime(data.Token, param);
                assert(list, new Tuple <DateTime, float, float>(DateTime.UtcNow.Date.AddDays(-10), 100, 55));
            });
        }
Esempio n. 4
0
        public void AnotherProfile_Friends_ForMyFriend()
        {
            setPrivacy(Privacy.FriendsOnly);
            profiles[0].Friends.Add(profiles[1]);
            profiles[1].Friends.Add(profiles[0]);
            insertToDatabase(profiles[0]);
            insertToDatabase(profiles[1]);

            AddTrainingDaySize(profiles[0], null, DateTime.UtcNow.Date.AddDays(-10), new Wymiary()
            {
                Height = 100, Klatka = 55
            });
            AddTrainingDaySize(profiles[0], null, DateTime.UtcNow.Date.AddDays(-10), new Wymiary()
            {
                Height = 401, Klatka = 10
            });
            AddTrainingDaySize(profiles[0], null, DateTime.UtcNow.Date.AddDays(-11), new Wymiary()
            {
                Height = 402, Klatka = 11
            });

            var         profile = (ProfileDTO)profiles[1].Tag;
            SessionData data    = CreateNewSession(profile, ClientInformation);

            RunServiceMethod(delegate(InternalBodyArchitectService service)
            {
                var param    = new ReportMeasurementsTimeParams();
                param.UserId = profiles[0].GlobalId;
                var list     = service.ReportMeasurementsTime(data.Token, param);
                Assert.AreEqual(2, list.Count);
            });
        }
        void generateReport()
        {
            if (result != null)
            {
                fillReportData(result);

                return;
            }
            progressBar.Visibility = Visibility.Visible;
            chart.Visibility       = Visibility.Collapsed;
            txtMessage.Text        = ApplicationStrings.MeasurementsReportPage_MsgGeneratingReport;
            var m = new ServiceManager <ReportMeasurementsTimeCompletedEventArgs>(delegate(BodyArchitectAccessServiceClient client1, EventHandler <ReportMeasurementsTimeCompletedEventArgs> operationCompleted)
            {
                ReportMeasurementsTimeParams data = new ReportMeasurementsTimeParams();
                data.UserId     = ApplicationState.Current.TrainingDay.TrainingDay.ProfileId;
                data.CustomerId = ApplicationState.Current.TrainingDay.TrainingDay.CustomerId;
                data.StartDate  = DateTime.UtcNow.AddYears(-1);

                client1.ReportMeasurementsTimeCompleted -= operationCompleted;
                client1.ReportMeasurementsTimeCompleted += operationCompleted;
                client1.ReportMeasurementsTimeAsync(ApplicationState.Current.SessionData.Token, data);
            });

            m.OperationCompleted += (s, a) =>
            {
                progressBar.Visibility = Visibility.Collapsed;
                FaultException <BAServiceException> faultEx = a.Error as FaultException <BAServiceException>;
                if (a.Error != null)
                {
                    txtMessage.Text = ApplicationStrings.MeasurementsReportPage_ErrGeneratingReport;
                    BAMessageBox.ShowError(ApplicationStrings.MeasurementsReportPage_ErrGeneratingReport);
                }
                else
                {
                    chart.Visibility = Visibility.Visible;
                    txtMessage.Text  = "";
                    fillReportData(a.Result);
                }
            };

            if (!m.Run())
            {
                progressBar.Visibility = Visibility.Collapsed;
                if (ApplicationState.Current.IsOffline)
                {
                    BAMessageBox.ShowError(ApplicationStrings.ErrOfflineMode);
                }
                else
                {
                    BAMessageBox.ShowError(ApplicationStrings.ErrNoNetwork);
                }
            }
        }
Esempio n. 6
0
        public ReportMeasurementsTimeParams GetReportParameters()
        {
            var param = new ReportMeasurementsTimeParams();

            UIHelper.Invoke(() =>
            {
                param.StartDate     = this.usrDateRange1.DateFrom;
                param.EndDate       = this.usrDateRange1.DateTo;
                param.UseAllEntries = usrReportingEntryStatus1.UseAllEntries;
            }, Dispatcher);

            return(param);
        }
Esempio n. 7
0
        public IEnumerable RetrieveReportData(object arg)
        {
            ReportMeasurementsTimeParams param = settingsControl.GetReportParameters();

            if (user != null)
            {
                param.UserId = user.GlobalId;
            }
            if (customer != null)
            {
                param.CustomerId = customer.GlobalId;
            }
            var list = ServiceManager.ReportMeasurementsTime(param);

            return(list);
        }
Esempio n. 8
0
        public IList <MeasurementsTimeReportResultItem> ReportMeasurementsTime(ReportMeasurementsTimeParams param)
        {
            if (!SecurityInfo.Licence.IsPremium)
            {
                throw new LicenceException("Reports are available in Premium or Instructor account only");
            }
            SizeEntry   entry   = null;
            TrainingDay day     = null;
            Wymiary     wymiary = null;
            //var query = Session.QueryOver<TrainingDay>(() => day).
            //    JoinAlias(x => day.Objects, () => entry).
            //    JoinAlias(x => entry.Entries, () => item).
            //    JoinAlias(x => item.Series, () => set);
            var query = Session.QueryOver <SizeEntry>(() => entry).
                        JoinAlias(x => entry.TrainingDay, () => day).
                        JoinAlias(x => entry.Wymiary, () => wymiary)
                        .Where(x => entry.Status == EntryObjectStatus.Done);//reports are generated only for done entries;

            var dbMyProfile = Session.Load <Profile>(SecurityInfo.SessionData.Profile.GlobalId);
            var dbProfile   = dbMyProfile;

            if (param.UserId.HasValue)
            {
                dbProfile = Session.Get <Profile>(param.UserId.Value);
            }

            if (param.CustomerId != null && dbProfile.GlobalId != SecurityInfo.SessionData.Profile.GlobalId)
            {
                throw new CrossProfileOperationException("This customer doesn't belong to your profile");
            }
            if (ServiceHelper.IsPrivateCalendar(dbProfile, dbMyProfile))
            {
                return(new List <MeasurementsTimeReportResultItem>());
            }

            query = query.Where(x => day.Profile == dbProfile);
            if (param.CustomerId.HasValue)
            {
                Customer customer = Session.Get <Customer>(param.CustomerId.Value);
                if (customer.Profile != dbProfile)
                {
                    throw new CrossProfileOperationException("This customer doesn't belong to your profile");
                }
                query = query.Where(x => day.Customer == customer);
            }
            else
            {
                query = query.Where(x => day.Customer == null);
            }


            if (!param.UseAllEntries)
            {
                query = query.Where(x => entry.ReportStatus == ReportStatus.ShowInReport);
            }
            if (param.StartDate.HasValue)
            {
                query = query.Where(x => day.TrainingDate >= param.StartDate);
            }
            if (param.EndDate.HasValue)
            {
                query = query.Where(x => day.TrainingDate <= param.EndDate);
            }


            //var purposeOr = Restrictions.Disjunction();
            //foreach (var item in param.Items)
            //{
            //    if (item == MeasurementItem.Weight)
            //    {
            //        purposeOr.Add<SizeEntry>(x => item.Exercise.GlobalId == exerciseId);
            //    }
            //}
            //query = query.And(purposeOr);

            //query = query.Where(x=>set.Weight>0).OrderBy(x => day.TrainingDate).Asc.Select(x => new Tuple<double,DateTime,Guid>(set.Weight.Value, day.TrainingDate, x.Exercise.GlobalId ));
            //query = query.OrderBy(x => day.TrainingDate).Asc
            //    .SelectList(l =>
            //                    {
            //                        foreach (var item in param.Items)
            //                        {
            //                            l = l.Select(Projections.Max(item.ToString()));
            //                        }
            //                        return l.SelectGroup(x => day.TrainingDate);
            //                    });
            //query = query.OrderBy(x => day.TrainingDate).Asc
            //    .SelectList(l =>
            //                    {
            //                        l = l.SelectMax(x => x.Wymiary);
            //        return l.SelectGroup(x => day.TrainingDate);
            //    });
            query = query.OrderBy(x => day.TrainingDate).Asc
                    .SelectList(l =>
                                l.SelectMax(x => wymiary.Height)
                                .SelectMax(x => wymiary.Klatka)
                                .SelectMax(x => wymiary.RightBiceps)
                                .SelectMax(x => wymiary.RightForearm)
                                .SelectMax(x => wymiary.RightUdo)
                                .SelectMax(x => wymiary.LeftBiceps)
                                .SelectMax(x => wymiary.LeftForearm)
                                .SelectMax(x => wymiary.LeftUdo)
                                .SelectMax(x => wymiary.Pas)
                                .SelectMax(x => wymiary.Weight)
                                .SelectGroup(x => day.TrainingDate)
                                .Select(x => x.GlobalId));
            //Select(x => set.Weight.Value,x=> day.TrainingDate,x=> x.Exercise.GlobalId);
            var result1 = query.List <object[]>();
            //MeasurementsTimeReportResultItem
            //var result=result1.Select(x => new Tuple<DateTime, WymiaryDTO>((DateTime) x[10], new WymiaryDTO()
            //                                                                  {
            //                                                                      Height = (float) x[0],
            //                                                                      Klatka = (float) x[1],
            //                                                                      RightBiceps = (float) x[2],
            //                                                                      RightForearm = (float) x[3],
            //                                                                      RightUdo = (float) x[4],
            //                                                                      LeftBiceps = (float) x[5],
            //                                                                      LeftForearm = (float) x[6],
            //                                                                      LeftUdo = (float) x[7],
            //                                                                      Pas = (float) x[8],
            //                                                                      Weight = (float) x[9],
            //                                                                  })).ToList();
            var result = result1.Select(x => new MeasurementsTimeReportResultItem()
            {
                DateTime = (DateTime)x[10],
                Wymiary  = new WymiaryDTO()
                {
                    Height       = (decimal)x[0],
                    Klatka       = (decimal)x[1],
                    RightBiceps  = (decimal)x[2],
                    RightForearm = (decimal)x[3],
                    RightUdo     = (decimal)x[4],
                    LeftBiceps   = (decimal)x[5],
                    LeftForearm  = (decimal)x[6],
                    LeftUdo      = (decimal)x[7],
                    Pas          = (decimal)x[8],
                    Weight       = (decimal)x[9],
                }, SizeEntryId = (Guid)x[11]
            }).ToList();

            return(result);
        }
 public IList <MeasurementsTimeReportResultItem> ReportMeasurementsTime(Token token, ReportMeasurementsTimeParams param)
 {
     return(exceptionHandling(token, () => InternalService.ReportMeasurementsTime(token, param)));
 }
Esempio n. 10
0
        public IList <MeasurementsTimeReportResultItem> ReportMeasurementsTime(Token token, ReportMeasurementsTimeParams param)
        {
            var securityInfo = SecurityManager.EnsureAuthentication(token);
            var service      = new ReportService(Session, securityInfo, Configuration);

            return(service.ReportMeasurementsTime(param));
        }
Esempio n. 11
0
 public static IList <MeasurementsTimeReportResultItem> ReportMeasurementsTime(ReportMeasurementsTimeParams param)
 {
     return(exceptionHandling(() => Instance.ReportMeasurementsTime(Token, param)));
 }