示例#1
0
        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);
        }
示例#2
0
        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));
        }
示例#3
0
        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());
            }
        }
示例#4
0
 public Task <BreedingOverviewResult> GetBreedingOverviewAsync(BreedingOverviewRequestArgs requestArgs)
 {
     return(_repository.GetBreedingOverviewAsync(requestArgs));
 }
示例#5
0
        public async Task <IHttpActionResult> BreedingOverview([FromBody] BreedingOverviewRequestArgs args)
        {
            var data = await slotService.GetBreedingOverviewAsync(args);

            return(Ok(data));
        }