[HttpGet, Route("internalCurrentReportForDow"), AllowAnonymous]//AmigoTenantClaimsAuthorize(ActionCode = ConstantsSecurity.ActionCode.WeeklyReportSearch) public HttpResponseMessage SearchInternalCurrentReportForDow([FromUri] ReportCurrentRequest search) { var response = Request.CreateResponse(); string type = "internalCurrentReport"; bool isExportForDow = true; response.Content = new PushStreamContent((outputStream, httpContent, transportContext) => _reportService.ProccessExcelToCurrent(outputStream, httpContent, transportContext, search, type, isExportForDow), new MediaTypeHeaderValue("text/csv")); response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "_ReportForDow.csv", DispositionType = "inline" }; return(response); }
public async Task <ResponseDTO <PagedList <InternalReportDTO> > > SearchInternalCurrent([FromUri] ReportCurrentRequest search) { var resp = await _reportService.SearchInternalCurrentAsync(search); return(resp); }
public async Task <ResponseDTO <PagedList <InternalReportDTO> > > SearchInternalCurrentAsync(ReportCurrentRequest search) { var queryFilter = GetQueryFilter(search); var eventLogs = await _reportDataAccess.ListPagedAsync(queryFilter, search.Page, search.PageSize); eventLogs.Items.ToList().ForEach(x => { x.Status = (x.ServiceFinishDate == null) ? Constants.ServiceStatus.Ongoing : Constants.ServiceStatus.Done; x.IsHazardousLabel = (string.IsNullOrEmpty(x.IsHazardous) || x.IsHazardous == "0") ? Constants.YesNo.No : Constants.YesNo.Yes; int?approvalStatus = null; if (x.ServiceStatus.HasValue && x.ServiceStatus.Value) { approvalStatus = 1; } if (x.ServiceStatus.HasValue && !x.ServiceStatus.Value) { approvalStatus = 0; } x.ApprovalStatus = Constants.ApprovalStatus.FirstOrDefault(y => y.Item1 == approvalStatus).Item2; x.ServiceStartDayName = x.ServiceStartDate?.DateTime.ToString("dddd") ?? ""; x.ServiceFinishDayName = x.ServiceFinishDate?.DateTime.ToString("dddd") ?? ""; x.ServiceTotalHours = GetServiceTotalHours(x.ServiceStartDate, x.ServiceFinishDate); }); var pagedResult = new PagedList <InternalReportDTO>() { Items = eventLogs.Items, PageSize = eventLogs.PageSize, Page = eventLogs.Page, Total = eventLogs.Total }; return(ResponseBuilder.Correct(pagedResult)); }
public async void ProccessExcelToCurrent(Stream outputStream, HttpContent httpContent, TransportContext transportContext, ReportCurrentRequest search, string type, bool isExportForDow) { if (type == "internalCurrentReport") { var listIC = await SearchInternalCurrentAsync(search); GetStreamToInternalReport(outputStream, listIC.Data.Items, type, isExportForDow); } else if (type == "externalCurrentReport") { var listEH = await SearchExternalCurrentAsync(search); GetStreamToExternalReport(outputStream, listEH.Data.Items, type); } }
private Expression <Func <InternalReportDTO, bool> > GetQueryFilter(ReportCurrentRequest search) { Expression <Func <InternalReportDTO, bool> > queryFilter = p => p.ServiceStartDate != null && p.ServiceFinishDate == null; if (search.AmigoTenantTUserId != null) { queryFilter = queryFilter.And(p => p.AmigoTenantTUserId == search.AmigoTenantTUserId); } if (!string.IsNullOrEmpty(search.ServiceCode)) { queryFilter = queryFilter.And(p => p.ServiceCode == search.ServiceCode); } if (!string.IsNullOrEmpty(search.EquipmentNumber)) { queryFilter = queryFilter.And(p => p.EquipmentNumber.Contains(search.EquipmentNumber)); } if (!string.IsNullOrEmpty(search.EquipmentSizeCode)) { queryFilter = queryFilter.And(p => p.EquipmentSizeCode == search.EquipmentSizeCode); } if (!string.IsNullOrEmpty(search.EquipmentTypeCode)) { queryFilter = queryFilter.And(p => p.EquipmentTypeCode == search.EquipmentTypeCode); } if (!string.IsNullOrEmpty(search.Approver)) { queryFilter = queryFilter.And(p => p.Approver.Contains(search.Approver)); } if (!string.IsNullOrEmpty(search.ChargeNumber)) { queryFilter = queryFilter.And(p => p.ChargeNo.Contains(search.ChargeNumber.Trim())); } if (!string.IsNullOrEmpty(search.OriginBlockCode)) { queryFilter = queryFilter.And(p => p.OriginBlockCode == search.OriginBlockCode); } if (!string.IsNullOrEmpty(search.DestinationBlockCode)) { queryFilter = queryFilter.And(p => p.DestinationBlockCode == search.DestinationBlockCode); } if (search.EquipmentStatusId.HasValue && search.EquipmentStatusId.Value > 0) { queryFilter = queryFilter.And(p => p.EquipmentStatusId == search.EquipmentStatusId); } if (search.ServiceStatus != -1) { if (search.ServiceStatus == 0) { queryFilter = queryFilter.And(p => p.ServiceStatus == false); } else if (search.ServiceStatus == 1) { queryFilter = queryFilter.And(p => p.ServiceStatus == true); } else if (search.ServiceStatus == 2) { queryFilter = queryFilter.And(p => p.ServiceStatus == null); } } if (search.ProductId != null) { queryFilter = queryFilter.And(p => p.ProductId == search.ProductId); } return(queryFilter); }
public async Task <ResponseDTO <PagedList <ExternalReportDTO> > > SearchExternalCurrentAsync(ReportCurrentRequest search) { var services = await SearchInternalCurrentAsync(search); var pagedResult = new PagedList <ExternalReportDTO>() { Items = services.Data.Items.Select(x => new ExternalReportDTO { AmigoTenantTUserId = x.AmigoTenantTUserId, Username = x.Username, Drivername = x.Drivername, Status = x.Status, EquipmentNumber = x.EquipmentNumber, EquipmentSizeCode = x.EquipmentSizeCode, EquipmentSize = x.EquipmentSize, EquipmentTypeCode = x.EquipmentTypeCode, EquipmentType = x.EquipmentType, ServiceCode = x.ServiceCode, Service = x.Service, Product = x.Product, IsHazardousLabel = x.IsHazardousLabel, ChargeNo = x.ChargeNo, OriginBlockCode = x.OriginBlockCode, OriginBlock = x.OriginBlock, DestinationBlockCode = x.DestinationBlockCode, DestinationBlock = x.DestinationBlock, Approver = x.Approver, ServiceStatus = x.ServiceStatus, ApprovalStatus = x.ApprovalStatus, DispatchingParty = x.DispatchingParty, ServiceStartDate = x.ServiceStartDate, ServiceStartDayName = x.ServiceStartDayName, ServiceFinishDate = x.ServiceFinishDate, ServiceFinishDayName = x.ServiceFinishDayName, ServiceTotalHours = x.ServiceTotalHours, CustomerBill = x.CustomerBill, EquipmentStatusName = x.EquipmentStatusName, DriverComments = x.DriverComments, ChassisNo = x.ChassisNo }).ToList(), PageSize = services.Data.PageSize, Page = services.Data.Page, Total = services.Data.Total }; return(ResponseBuilder.Correct(pagedResult)); }