public async Task <BreedingOverviewResult> GetBreedingOverviewAsync(BreedingOverviewRequestArgs requestArgs) { var ds = await DbContext.ExecuteDataSetAsync(DataConstants.PR_PLAN_GET_SLOTS_FOR_BREEDER, CommandType.StoredProcedure, args => { args.Add("@CropCode", requestArgs.CropCode); args.Add("@BrStationCode", requestArgs.BrStationCode); args.Add("@RequestUser", userContext.FullName); args.Add("@Page", requestArgs.PageNumber); args.Add("@PageSize", requestArgs.PageSize); args.Add("@Filter", requestArgs.ToFilterString()); }); var result = new BreedingOverviewResult(); if (ds.Tables.Count > 0) { var table0 = ds.Tables[0]; if (table0.Columns.Contains("TotalRows")) { if (table0.Rows.Count > 0) { result.Total = table0.Rows[0]["TotalRows"].ToInt32(); } table0.Columns.Remove("TotalRows"); } result.Data = table0; } return(result); }
public async Task <IHttpActionResult> ExportCapacityPlanningToExcel([FromBody] BreedingOverviewRequestArgs args) { args.PageSize = 5000; args.PageNumber = 1; var data = await slotService.ExportCapacityPlanningToExcel(args); var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(data) }; result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = $"CapacityPlanning.xlsx" }; result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); return(ResponseMessage(result)); }
public async Task <byte[]> ExportCapacityPlanningToExcel(BreedingOverviewRequestArgs args) { var result = await _repository.GetBreedingOverviewAsync(args); var rs = result.Data as DataTable; //remove unnecessary columns if (rs.Columns.Contains("SlotID")) { rs.Columns.Remove("SlotID"); } if (rs.Columns.Contains("RequestDate")) { rs.Columns.Remove("RequestDate"); } if (rs.Columns.Contains("PlannedDate")) { rs.Columns.Remove("PlannedDate"); } if (rs.Columns.Contains("ExpectedDate")) { rs.Columns.Remove("ExpectedDate"); } if (rs.Columns.Contains("Isolated")) { rs.Columns.Remove("Isolated"); } if (rs.Columns.Contains("StatusCode")) { rs.Columns.Remove("StatusCode"); } using (var ms = new MemoryStream()) { var book = new XSSFWorkbook(); var sheet = book.CreateSheet("Sheet1"); //add header row var header = sheet.CreateRow(0); for (var i = 0; i < rs.Columns.Count; i++) { var column = rs.Columns[i]; var cell = header.CreateCell(i); cell.SetCellValue(column.ColumnName); } //add data rows var rowNr = 1; foreach (DataRow dr in rs.Rows) { var row = sheet.CreateRow(rowNr++); for (var i = 0; i < rs.Columns.Count; i++) { var column = rs.Columns[i]; var cell = row.CreateCell(i); cell.SetCellValue(dr[column.ColumnName].ToText()); } } book.Write(ms); return(ms.ToArray()); } }
public Task <BreedingOverviewResult> GetBreedingOverviewAsync(BreedingOverviewRequestArgs requestArgs) { return(_repository.GetBreedingOverviewAsync(requestArgs)); }
public async Task <IHttpActionResult> BreedingOverview([FromBody] BreedingOverviewRequestArgs args) { var data = await slotService.GetBreedingOverviewAsync(args); return(Ok(data)); }