public IActionResult DownloadCSV([FromQuery] DateTime start, [FromQuery] DateTime end)
        {
            StringBuilder result = new StringBuilder();

            result.AppendLine("OrderId,CreateDate,PaymentMethod,Status,Price,Quantity,Total,ProductType,Contractor");
            try
            {
                foreach (OrderProductReportItem reportItem in HydrateOrderProducts(reportService.GetOrderProducts(start, end)))
                {
                    result.AppendFormat("{0},{1},{2},{3},\"{4}\",{5},\"{6}\",{7},{8}\r\n", reportItem.OrderId, reportItem.CreateDate,
                                        reportItem.PaymentMethod, reportItem.Status, reportItem.Price, reportItem.Quantity,
                                        reportItem.Total, reportItem.ProductType, reportItem.Contractor);
                }
                var binaryResult = new BinaryResult
                {
                    ContentType = "text/csv",
                    Data        = System.Text.Encoding.ASCII.GetBytes(result.ToString()),
                    FileName    = "ReportData.csv"
                };
                return(binaryResult);
            }
            catch (Exception x)
            {
                return(Json(new ErrorReport {
                    Error = x.Message
                }));
            }
        }
Beispiel #2
0
 /// <inheritdoc />
 public Binary(IRequest request, BinaryResult binaryResult) : base(request, binaryResult.ContentType)
 {
     BinaryResult = binaryResult;
 }