コード例 #1
0
        public async Task GetSalesTodayAsyncNeverNegative()
        {
            LocalSalesStatsService salesStatsService = new LocalSalesStatsService();
            int res = await salesStatsService.GetSalesTodayAsync();

            Logger.Debug("Total sales today was ~".GetFormated(res));
            Assert.Greater(res, -1, "How did you achieve negative sales? I should be interested to know sir.");
        }
コード例 #2
0
        private async Task <List <Row> > LoadListData(bool forceRemote)
        {
            LocalSalesStatsService salesStatsService = new LocalSalesStatsService();

            switch (this.CurrentPeriod)
            {
            case Period.Day:
                this.Columns[0] = this._deviceResource.ColumnDay;
                break;

            case Period.Week:
                this.Columns[0] = this._deviceResource.ColumnWeek;
                break;

            case Period.Month:
                this.Columns[0] = this._deviceResource.ColumnMonth;
                break;
            }

            var stats = await salesStatsService.GetAggregatedStats(this.CurrentPeriod);

            if (stats == null || stats.Count == 0 || forceRemote)
            {
                stats = await new RemoteSalesStatsService().UpdateStats(this.CurrentPeriod);
            }

            List <Row> rows = new List <Row>();

            if (stats != null && stats.Count > 0)
            {
                foreach (var aggStat in stats)
                {
                    var row = new Row
                    {
                        IsSelected = false,
                        Items      = new List <string>
                        {
                            this.GetPeriodDateString(aggStat.From, aggStat.To),
                            aggStat.Sales.ToString(),
                            aggStat.Prospects.ToString()
                        }
                    };

                    rows.Add(row);
                }
            }

            if (this.DataFetched != null)
            {
                this.DataFetched.Invoke(this, new StatsListFetchedEvent(rows));
            }

            return(rows);
        }
コード例 #3
0
        private async Task <List <Block> > LoadSummaryData()
        {
            LocalSalesStatsService salesStatsService = new LocalSalesStatsService();
            DateTime lastUpdated = await salesStatsService.GetLastUpdatedTime();

            int salesToday = await salesStatsService.GetSalesTodayAsync();

            int salesThisWeek = await salesStatsService.GetSalesThisWeekAsync();

            int salesThisMonth = await salesStatsService.GetSalesThisMonth();

            List <Block> blocks = new List <Block>
            {
                new Block
                {
                    Level          = 0,
                    BottomValue    = string.Empty,
                    Caption        = string.Empty,
                    TopValue       = salesToday.ToString(),
                    LastUpdateTime = lastUpdated
                },
                new Block
                {
                    Level          = 1,
                    Caption        = string.Empty,
                    BottomValue    = string.Empty,
                    TopValue       = salesThisWeek.ToString(),
                    LastUpdateTime = lastUpdated
                },
                new Block
                {
                    Level          = 2,
                    Caption        = string.Empty,
                    BottomValue    = string.Empty,
                    TopValue       = salesThisMonth.ToString(),
                    LastUpdateTime = lastUpdated
                }
            };

            for (int i = 0; i < blocks.Count; i++)
            {
                string caption = this.GetBlockCaption(i);
                blocks[i].Caption = caption;
            }

            this.Summary = new ObservableCollection <Block>(blocks);
            return(blocks);
        }
コード例 #4
0
        public void TestDaysBelongsToCorrectWeek()
        {
            string dateFormat = "dd-MMM-yyyy";

            Settings.Instance.StartOfWeek = DayOfWeek.Sunday;
            DayOfWeek startofDayOfWeek = Settings.Instance.StartOfWeek;

            LocalSalesStatsService salesStatsService = new LocalSalesStatsService();
            DateTime dateToTest = new DateTime
                                  (
                2015, 08, 1
                                  );

            DateTime startOfWeek = new DateTime(2015, 07, 26);

            for (int i = 0; i < 365; i++)
            {
                Logger.Debug("Testing ~".GetFormated(dateToTest.ToLongDateString()));
                Tuple <DateTime, DateTime> range = salesStatsService.GetWeekDayBelongsTo(dateToTest);
                DateTime start = range.Item1;
                DateTime end   = range.Item2;
                Logger.Debug("Week starts on ~".GetFormated(start.ToLongDateString()));
                Logger.Debug("Week ends on ~".GetFormated(end.ToLongDateString()));
                Assert.IsTrue
                (
                    startOfWeek.ToString(dateFormat) == start.ToString(dateFormat)
                    , "Expected start of week to be ~ but instead it was ~"
                    .GetFormated(startOfWeek.ToString(dateFormat), start.ToString(dateFormat))
                );
                dateToTest = dateToTest.AddDays(1);
                if (dateToTest.DayOfWeek == startofDayOfWeek)
                {
                    Logger.Debug("Start of week has now been changed to ~".GetFormated(dateToTest.ToLongDateString()));
                    startOfWeek = dateToTest;
                }
            }
        }