public void OnGet(int?userId, int?months)
        {
            ViewData.Add("userId", userId);
            ViewData.Add("months", months);

            DateTime start = months.HasValue ? DateTime.Now.AddMonths(months.Value * -1) : DateTime.Now.AddYears(-5);
            DateTime end   = DateTime.Now;

            PtDashboardFilter filter = new PtDashboardFilter
            {
                DateStart = start,
                DateEnd   = end,
                UserId    = userId.HasValue ? userId.Value : 0
            };

            var statusCounts = rpsDashRepo.GetStatusCounts(filter);

            IssueCountOpen   = statusCounts.OpenItemsCount;
            IssueCountClosed = statusCounts.ClosedItemsCount;

            if (months.HasValue)
            {
                DateStart = filter.DateStart;
                DateEnd   = filter.DateEnd;
            }
        }
Example #2
0
        public ActionResult Index(int?userId, int?months)
        {
            ViewBag.userId = userId;
            ViewBag.months = months;

            DateTime start = months.HasValue ? DateTime.Now.AddMonths(months.Value * -1) : DateTime.Now.AddYears(-5);
            DateTime end   = DateTime.Now;

            PtDashboardFilter filter = new PtDashboardFilter
            {
                DateStart = start,
                DateEnd   = end,
                UserId    = userId.HasValue ? userId.Value : 0
            };

            var users          = rpsUserRepo.GetAll();
            var statusCounts   = rpsDashRepo.GetStatusCounts(filter);
            var filteredIssues = rpsDashRepo.GetFilteredIssues(filter);

            PtDashboardVm vm = new PtDashboardVm(statusCounts, filteredIssues, users.ToList(), userId);

            if (months.HasValue)
            {
                vm.DateStart = filter.DateStart;
                vm.DateEnd   = filter.DateEnd;
            }

            return(View(vm));
        }
Example #3
0
        public PtDashboardFilteredIssues GetFilteredIssues(PtDashboardFilter filter)
        {
            var openItemSpec   = new PtItemStatusSpecification(StatusEnum.Open);
            var closedItemSpec = new PtItemStatusSpecification(StatusEnum.Closed);

            var userIdSpec    = new PtItemUserIdSpecification(filter.UserId);
            var dateRangeSpec = new PtItemDateRangeSpecification(filter.DateStart, filter.DateEnd);

            //var items = Find(userIdSpec.And(dateRangeSpec));

            var itemsForUserAndDates = context.PtItems
                                       .Where(userIdSpec.ToExpression().Compile())
                                       .Where(dateRangeSpec.ToExpression().Compile());

            var minDate = itemsForUserAndDates.Min(i => i.DateCreated);
            var maxDate = itemsForUserAndDates.Max(i => i.DateCreated);

            var categories = GetDates(minDate, maxDate);

            var itemsByMonth = categories.Select(c => {
                return(itemsForUserAndDates.Where(i => {
                    var dc = i.DateCreated;
                    return dc.Month == c.Month && dc.Year == c.Year;
                }));
            });


            var categorizedAndDivided = itemsByMonth.Select(c => {
                var openItemsForMonth   = c.Where(openItemSpec.ToExpression().Compile()).ToList();
                var closedItemsForMonth = c.Where(closedItemSpec.ToExpression().Compile()).ToList();

                return(new ItemsForMonth
                {
                    Open = openItemsForMonth,
                    Closed = closedItemsForMonth
                });
            });

            var issues = new PtDashboardFilteredIssues
            {
                Categories = categories,
                MonthItems = categorizedAndDivided.ToList()
            };

            return(issues);
        }
Example #4
0
        public void OnGet(int?userId, int?months)
        {
            ViewData.Add("userId", userId);
            ViewData.Add("months", months);

            DateTime start = months.HasValue ? DateTime.Now.AddMonths(months.Value * -1) : DateTime.Now.AddYears(-5);
            DateTime end   = DateTime.Now;

            PtDashboardFilter filter = new PtDashboardFilter
            {
                DateStart = start,
                DateEnd   = end,
                UserId    = userId.HasValue ? userId.Value : 0
            };

            var statusCounts = rpsDashRepo.GetStatusCounts(filter);

            IssueCountOpen   = statusCounts.OpenItemsCount;
            IssueCountClosed = statusCounts.ClosedItemsCount;

            if (months.HasValue)
            {
                DateStart = filter.DateStart;
                DateEnd   = filter.DateEnd;
            }

            Assignees = rpsUserRepo.GetAll().ToList();
            if (userId.HasValue)
            {
                SelectedAssigneeId = userId.Value;
            }

            //Chart related
            ItemsOpenByMonth   = new List <int>();
            ItemsClosedByMonth = new List <int>();

            var filteredIssues = rpsDashRepo.GetFilteredIssues(filter);

            filteredIssues.MonthItems.ForEach(i => {
                ItemsOpenByMonth.Add(i.Open.Count);
                ItemsClosedByMonth.Add(i.Closed.Count);
            });

            Categories = filteredIssues.Categories.Select(i => (object)i).ToArray();
        }
        private void Refresh()
        {
            DateTime start = Months.HasValue ? DateTime.Now.AddMonths(Months.Value * -1) : DateTime.Now.AddYears(-5);
            DateTime end   = DateTime.Now;

            Filter = new PtDashboardFilter
            {
                DateStart = start,
                DateEnd   = end,
                UserId    = UserId.HasValue ? UserId.Value : 0
            };


            var statusCounts = RpsDashRepo.GetStatusCounts(Filter);

            IssueCountOpen   = statusCounts.OpenItemsCount;
            IssueCountClosed = statusCounts.ClosedItemsCount;

            if (Months.HasValue)
            {
                DateStart = Filter.DateStart;
                DateEnd   = Filter.DateEnd;
            }
        }
Example #6
0
        public PtDashboardStatusCounts GetStatusCounts(PtDashboardFilter filter)
        {
            var openItemSpec   = new PtItemStatusSpecification(StatusEnum.Open);
            var closedItemSpec = new PtItemStatusSpecification(StatusEnum.Closed);
            var userIdSpec     = new PtItemUserIdSpecification(filter.UserId);
            var dateRangeSpec  = new PtItemDateRangeSpecification(filter.DateStart, filter.DateEnd);


            var itemsForUserAndDates = context.PtItems
                                       .Where(userIdSpec.ToExpression().Compile())
                                       .Where(dateRangeSpec.ToExpression().Compile());

            //var openItems = Find(openItemSpec.And(userIdSpec).And(dateRangeSpec)).ToList();
            //var closedItems = Find(closedItemSpec.And(userIdSpec).And(dateRangeSpec)).ToList();
            var openItems = itemsForUserAndDates.Where(openItemSpec.ToExpression().Compile()).ToList();

            var closedItems = itemsForUserAndDates.Where(closedItemSpec.ToExpression().Compile()).ToList();

            return(new PtDashboardStatusCounts
            {
                OpenItemsCount = openItems.Count,
                ClosedItemsCount = closedItems.Count
            });
        }