public async Task <CustomerDashboardRp> GetCustomersDashboardProductJourneys(DateTime?start, DateTime?end)
        {
            var result = new CustomerDashboardRp();

            result = await this.InternalGetDashboardCustomersProductJourneys(start, end);

            var(bs, be, ps, pe) = DateTimeUtils.CalculateBeforePreviousDates(start, end);

            var before = await this.InternalGetDashboardCustomersProductJourneys(bs, be);

            var previous = await this.InternalGetDashboardCustomersProductJourneys(ps, pe);

            foreach (var product in result.Products)
            {
                var target_product = previous.Products.Where(c => c.ProductId == product.ProductId).SingleOrDefault();
                if (target_product != null)
                {
                    product.Previous = target_product.Effectiveness;
                }
                var target_before = before.Products.Where(c => c.ProductId == product.ProductId).SingleOrDefault();
                if (target_before != null)
                {
                    product.Before = target_before.Effectiveness;
                }
            }
            return(result);
        }
Exemplo n.º 2
0
        public void CalculateBeforePreviousDatesTest()
        {
            var start = OwlveyCalendar.January201903;
            var end   = OwlveyCalendar.January201910;

            var diff = DateTimeUtils.DaysDiff(end, start);

            var(bs, be, ps, pe) = DateTimeUtils.CalculateBeforePreviousDates(start, end);

            Assert.Equal(new DateTime(2018, 12, 26), ps);
            Assert.Equal(new DateTime(2019, 1, 2, 23, 59, 59), pe);

            Assert.Equal(diff, DateTimeUtils.DaysDiff(pe, ps));

            Assert.Equal(new DateTime(2018, 12, 18), bs);
            Assert.Equal(new DateTime(2018, 12, 25, 23, 59, 59), be);
            Assert.Equal(diff, DateTimeUtils.DaysDiff(be, bs));
        }
Exemplo n.º 3
0
 public (DatePeriodValue before, DatePeriodValue previous) CalculateBeforePreviousDates()
 {
     var(bs, be, ps, pe) = DateTimeUtils.CalculateBeforePreviousDates(this.Start, this.End);
     return(new DatePeriodValue(bs, be), new DatePeriodValue(ps, pe));
 }