public async Task <List <RefundSupportTicket> > GetServiceSummaryForPPT(ServiceSummaryReguest serviceSummaryReguest) { var services = serviceSummaryReguest.Services.Select(a => a.Service); var dateMin = new DateTime(serviceSummaryReguest.SearchMonthYear.Year, serviceSummaryReguest.SearchMonthYear.Month, 1); var dateMax = dateMin.AddMonths(1); var res = await _context.RefundSupportTickets.Where(a => a.IsDeleted != true && (services.Contains(a.ServiceIssue.ImpactedServices) && (a.ServiceIssue.ImpactStartTime > dateMin) && (a.ServiceIssue.ImpactStartTime < dateMax))) .Include(a => a.ServiceIssue).OrderByDescending(a => a.CreatedAt).ToListAsync(); return(res); }
public Task <List <ServiceSummaryModel> > GetServiceSummaryForPPT(ServiceSummaryReguest serviceSummaryReguest, CancellationToken cancelToken = default) { return(base.RestSend <List <ServiceSummaryModel>, List <ServiceSummaryResponse>, ServiceSummaryReguest>(HttpMethod.Get, serviceSummaryReguest, $"GetServiceSummaryForPPT", cancelToken)); }
public async Task <List <ServiceSummaryResponse> > GetServiceSummaryForPPT(ServiceSummaryReguest serviceSummaryReguest) { List <ServiceSummaryResponse> list = new(); try { HashSet <string> ids = new(); var refTickets = await _refundSupportTicketRepository.GetServiceSummaryForPPT(serviceSummaryReguest); if (refTickets.IsNullOrEmptyCollection()) { return(null); } foreach (var refTick in refTickets) { if (refTick.SubmitedSubscription.HasValueExt() && refTick.ServiceIssue.ImpactedSubscriptions.Contains(refTick.SubmitedSubscription)) { ids.Add(refTick.SubmitedSubscription); } else { refTick.ServiceIssue.ImpactedSubscriptions.GetCollectionOfGuidsFromTextExt().ToList().ForEach(a => ids.Add(a)); } } List <ServiceIssue> health = null; bool useTuple = true; if (useTuple) { List <(string TrackingId, List <string> subIds)> trackingIdSubIdsList = new(); foreach (var item in refTickets) { //var onlySubIds = item.SubmitedSubscription.GetCollectionOfGuidsFromTextExt().ToList(); var onlySubIds = item.ServiceIssue.ImpactedSubscriptions.GetCollectionOfGuidsFromTextExt().ToList(); trackingIdSubIdsList.Add((item.TrackingId, onlySubIds)); } if (trackingIdSubIdsList.HasAnyInCollection()) { health = await _azureHealthSPNService.GetResourceHealthByTrackingId(trackingIdSubIdsList, serviceSummaryReguest.SearchMonthYear.ToShortDateString()); } } else { health = await _azureHealthSPNService.GetResourceHealthPartitioned(ids.ToList(), serviceSummaryReguest.SearchMonthYear.ToShortDateString()); } if (health.IsNullOrEmptyCollection()) { return(list); } var dicHealt = health.ToDictionary(x => x.TrackingId, x => x); var dicSerImp = serviceSummaryReguest.Services.ToDictionary(x => x.Service, x => x.Impact); foreach (var item in refTickets) { if (item.TrackingId.HasValueExt()) { if (dicHealt.TryGetValue(item.TrackingId, out ServiceIssue serviceIssue)) { var allSer = serviceIssue.ImpactedServices.Split(","); if (allSer.HasAnyInCollection()) { foreach (var ser in allSer) { if (dicSerImp.TryGetValue(ser, out string impact)) { var add = new ServiceSummaryResponse { Summary = serviceIssue.Summary, TrackingId = serviceIssue.TrackingId, Description = serviceIssue.Description, Title = serviceIssue.Title, }; add.ImpactedService = ser; add.Impact = impact; list.Add(add); } } } } } } return(list); } catch (Exception) { throw; } }
public async Task <ActionResult <List <ServiceSummaryResponse> > > GetServiceSummaryForPPT([FromBody] ServiceSummaryReguest serviceSummaryReguest) { if (serviceSummaryReguest is null || serviceSummaryReguest.Services.IsNullOrEmptyCollection()) { return(BadRequest()); } _logger.LogInformation(ApiLogEvents.InsertItemsList, $"{nameof(GetServiceSummaryForPPT)} Started {serviceSummaryReguest}"); var repoObj = await _service.GetServiceSummaryForPPT(serviceSummaryReguest); if (repoObj.IsNullOrEmptyCollection()) { return(null); } var result = _mapper.Map <List <ServiceSummaryResponse> >(repoObj); return(Ok(result)); }