/** * This method builds the url for the request to Oceanic Airlines * with the parameters since they do not have a body for the request */ private static string BuildUrl(CompanyEnum companyCode, CityEnum cityFrom, CityEnum cityTo, string parcelTyoe, int weight, int height, int width, int length) { string url = Config.OCEANIC_AIRLINES_URL; url += "companyCode=" + companyCode.ToString() + "&"; url += "cityFrom=" + cityFrom.ToString() + "&"; url += "&cityTo=" + cityTo.ToString() + "&"; url += "parceltype=" + parcelTyoe + "&"; url += "weight=" + weight + "&"; url += "height=" + height + "&"; url += "width=" + width + "&"; url += "lenght=" + length; return(url); }
private void ExportExcel() { if (expressContextDict == null || expressContextDict.Count == 0) { return; } try { XSSFWorkbook workbook = new XSSFWorkbook(); ISheet sheet = workbook.CreateSheet(companyEnum.ToString()); int rowNo = 0; foreach (var express in expressContextDict) { IRow row = sheet.CreateRow(rowNo); ICell cell = row.CreateCell(0); cell.SetCellValue(express.Key); int cellNo = 1; foreach (var info in express.Value) { cell = row.CreateCell(cellNo); cell.SetCellValue(string.Format("{0}:{1}", info.Key, info.Value)); } rowNo++; } //转为字节数组 MemoryStream stream = new MemoryStream(); workbook.Write(stream); var buf = stream.ToArray(); if (!Directory.Exists(this.tbFilePath.Text)) { Directory.CreateDirectory(this.tbFilePath.Text); } string fileName = Path.Combine(this.tbFilePath.Text, "快递查询结果_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx"); using (FileStream fs = File.Create(fileName)) { fs.Write(buf, 0, buf.Length); fs.Flush(); } ShowInfo("导出完成"); } catch (Exception ex) { ShowInfo("导出异常:" + ex.Message + ex.StackTrace); } }
public static string GetReportEmailMessage(CompanyEnum company, string areaName, int areaId, AppDbContext _db) { var today = System.DateTime.UtcNow.ToCentralTime(); var yesterday = today.AddDays(-1); var thisWeekStart = today.AddDays(-(int)today.DayOfWeek).Date; var thisWeekEnd = thisWeekStart.AddDays(7).AddSeconds(-1); var lastWeekStart = thisWeekStart.AddDays(-7); var lastWeekEnd = thisWeekStart.AddSeconds(-1); var openedWorkOrderModels = new List <WorkOrdersGridViewModel>(); var closedWorkOrderModels = new List <WorkOrdersGridViewModel>(); //Add Awaiting Approval workorders var openedWorkOrders = _db.Workorders.Where(x => x.Reported >= lastWeekStart && x.Reported <= lastWeekEnd && x.Department.AreaID == areaId).ToList(); foreach (var workorder in openedWorkOrders) { var model = new WorkOrdersGridViewModel(); model.DepartmentName = workorder.Department != null ? workorder.Department.Name : null; model.DepartmentAreaName = workorder.Department != null ? workorder.Department.AreaName : null; model.Reported = workorder.Reported; model.Priority = workorder.Priority; model.Details = workorder.Details; model.Closed = workorder.Closed; model.Id = workorder.Id; openedWorkOrderModels.Add(model); } var message = @"<h2>" + company.ToString() + @" Weekly Maintenance Workorders Report</h2> <h2>" + areaName + @"</h2> <h5>Report created " + @DateTime.UtcNow.ToCentralTime() + @"</h5><br /> <h4 ><i>Workorders Opened over the past week</i> </h4> "; if (openedWorkOrderModels.Any() == false) { message += "No Workorders were opened for the specified reporting period."; } else { message += @" <table style=""border:1px""> <tr style=""text-align:left""> <th style=""border-bottom:1px; border-right: 1px;"">Department</th> <th style=""border-bottom:1px; border-right: 1px;"">Reported </th> <th style=""border-bottom:1px; border-right: 1px;"">Details</th> <th style=""border-bottom:1px; border-right: 1px;"">Priorty</th> <th style=""border-bottom:1px; border-right: 1px;"">Due</th> <th style=""border-bottom:1px; border-right: 1px;"">Days Overdue</th> <th style=""border-bottom:1px"">Days Open </th> </tr>"; foreach (var workorder in openedWorkOrderModels) { message += GetWorkorderEmailRow(workorder); } message += @"</table>"; } message += @"<h4><i>Workorders closed over the past week</i> </h4>"; var closedWorkOrders = _db.Workorders.Where(x => x.Closed != null && x.Closed >= lastWeekStart && x.Closed <= lastWeekEnd && x.Department.AreaID == areaId).ToList(); foreach (var workorder in closedWorkOrders) { var model = new WorkOrdersGridViewModel(); model.DepartmentName = workorder.Department != null ? workorder.Department.Name : null; model.DepartmentAreaName = workorder.Department != null ? workorder.Department.AreaName : null; model.Reported = workorder.Reported; model.Priority = workorder.Priority; model.Details = workorder.Details; model.Closed = workorder.Closed; model.Id = workorder.Id; closedWorkOrderModels.Add(model); } if (closedWorkOrderModels.Any() == false) { message += "No Workorders were closed during the specified reporting period."; } else { message += @" <table style=""border:1px""> <tr style=""text-align:left""> <th style=""border-bottom:1px; border-right: 1px;"">Department</th> <th style=""border-bottom:1px; border-right: 1px;"">Reported </th> <th style=""border-bottom:1px; border-right: 1px;"">Details</th> <th style=""border-bottom:1px; border-right: 1px;"">Priorty</th> <th style=""border-bottom:1px; border-right: 1px;"">Due</th> <th style=""border-bottom:1px; border-right: 1px;"">Days Overdue</th> <th style=""border-bottom:1px"">Days Open </th> </tr>"; foreach (var workorder in closedWorkOrderModels) { message += GetWorkorderEmailRow(workorder); } message += @"</table>"; } return(message); }