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; } }
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)); }
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); }
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; } }
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 }); }