private async Task <SupportSearchResponse> Handle(SupportSearchRequest request) { return(request switch { PendingPaymentSupportSearchRequest r => await HandleInternal(r), _ => throw new NotImplementedException($"{nameof(SupportSearchRequest)} of type {request.GetType().Name} is not implemented") });
public HttpResponseMessage Search(SupportSearchRequest requestInfo) { int org_id = int.Parse(Request.Headers.GetValues("orgId").FirstOrDefault()); requestInfo.OrgIds = new List <int>(); if (requestInfo.OrgId == null) { var org = _IOrgService.GetOrg(org_id); if (org.OrgTyp.TypCd == "RESE") { requestInfo.OrgIds.Add(org_id); var custOrgs = _IOrgorgService.GetOrgorgs().Where(p => p.OrgId == org_id).Select(s => s.AssociatedOrgId).ToList(); requestInfo.OrgIds.AddRange(custOrgs); requestInfo.OrgId = 0; } else if (org.OrgTyp.TypCd == "CUST") { requestInfo.OrgIds.Add(org_id); requestInfo.OrgId = 0; } else if (org.OrgTyp.TypCd == "TENA") { } else { requestInfo.OrgId = 0; } } else { requestInfo.OrgIds.Add((int)requestInfo.OrgId); } var work = _IWkflowinstanceService.GetSupportActivityByFilter(requestInfo); var result = PlatformMappingHelper.Map <IList <WkflowInstance>, IList <SupportActivityDTO> >(work.ToList()).ToList(); if (result == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return(Request.CreateResponse <IEnumerable <SupportActivityDTO> >(HttpStatusCode.OK, result)); }
public HttpResponseMessage SupportActivityByDay(SupportSearchRequest requestInfo) { int?org_id = int.Parse(Request.Headers.GetValues("orgId").FirstOrDefault()); if (requestInfo.OrgId == null) { requestInfo.OrgId = org_id; } if (requestInfo.StartDate == null) { requestInfo.StartDate = DateTime.UtcNow.AddDays(-30); requestInfo.EndDate = DateTime.UtcNow; } List <string> statusCodes = null; statusCodes = new List <string> { "Created", "EXCP", "Assigned to CustomerCare", "Assigned to Customer" }; var data = _IWkflowinstanceService.GetWkflowinstances().Where(p => (p.WkflowStepHists.Count > 0 ? statusCodes.Contains(p.WkflowStepHists.OrderByDescending(s => s.Id).FirstOrDefault().WkflowStat.Code) : false) && (requestInfo.OrgId == null || requestInfo.OrgId == p.OrgId) && (requestInfo.StartDate == null || p.CreateDate >= requestInfo.StartDate) && (requestInfo.EndDate == null || p.CreateDate <= requestInfo.EndDate)); var allwork = data.OrderBy(o => o.CreateDate).GroupBy(g => ((DateTime)g.CreateDate).ToString("dd-MMM-yyyy")).Select(i => new { Date = i.Key.Substring(0, 6), Count = i.Count() }); var closedwork = data.Where(q => q.WkflowStepHists.OrderByDescending(o => o.Id).FirstOrDefault().WkflowStat.Code == "Closed").GroupBy(g => ((DateTime)g.WkflowStepHists.OrderByDescending(o => o.Id).FirstOrDefault().CreateDate).ToString("dd-MMM")).Select(i => new { Date = i.Key.Substring(0, 6), Count = i.Count() }); List <object> finalwork = new List <object>(); for (int day = -30; day <= 0; day++) { int opencount = 0; int closedcount = 0; var datecal = DateTime.UtcNow.AddDays(day).ToString("dd-MMM"); var find = allwork.Where(p => p.Date == datecal); if (find.Count() > 0) { opencount = find.FirstOrDefault().Count; } var findclosed = closedwork.Where(p => p.Date == datecal); if (findclosed.Count() > 0) { closedcount = findclosed.FirstOrDefault().Count; } finalwork.Add(new { Date = datecal, Open = opencount, Closed = closedcount }); } if (finalwork == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return(Request.CreateResponse <IEnumerable <object> >(HttpStatusCode.OK, finalwork)); }