public HttpResponseMessage GetFileExport(GroupByEnum groupBy, string fileType)
        {
            if (string.IsNullOrEmpty(fileType))
            {
                return new HttpResponseMessage(HttpStatusCode.BadRequest)
                       {
                           Content = new StringContent($"Requisição inválida.")
                       }
            }
            ;

            byte[] ByteArray        = null;
            var    downloadFileType = new DownloadFileInfo(fileType);

            if (downloadFileType.FileType == DownloadFileTypesEnum.Xls)
            {
                ByteArray = _operationBusiness.ExportXls(_operationBusiness.GetByGroup(groupBy).ToList(), groupBy);
            }

            if (downloadFileType.FileType == DownloadFileTypesEnum.Csv)
            {
                ByteArray = _operationBusiness.ExportCSV(_operationBusiness.GetByGroup(groupBy).ToList(), groupBy);
            }

            return(ByteArray.ExcelResult("Operações", downloadFileType));
        }
    }
Example #2
0
        private void GetOperationByGroup(string groupBy)
        {
            try
            {
                switch (groupBy)
                {
                case "Ativo":
                    GroupBy = GroupByEnum.Active; break;

                case "Tipo de operação":
                    GroupBy = GroupByEnum.OperationType; break;

                case "Conta":
                    GroupBy = GroupByEnum.AccountNumber; break;
                }

                var operacoes = Helper.Get <List <GroupOperation> >($"{ WEBAPI_URL }/operations?groupBy={ GroupBy }");
                dgvOperacoes.DataSource = operacoes;
                SetFormattingGroup(GroupBy);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro " + ex.Message);
            }
        }
Example #3
0
        private void SetFormattingGroup(GroupByEnum groupName)
        {
            dgvOperacoes.Columns["AveragePrice"].DefaultCellStyle.Format = "c";
            dgvOperacoes.Columns["AveragePrice"].HeaderText = "Preço Médio";

            dgvOperacoes.Columns["Active"].Visible        = false;
            dgvOperacoes.Columns["OperationType"].Visible = false;
            dgvOperacoes.Columns["AccountNumber"].Visible = false;
            dgvOperacoes.Columns[Enum.GetName(typeof(GroupByEnum), groupName)].Visible = true;
        }
        public byte[] ExportCSV(List <GroupOperation> list, GroupByEnum groupBy)
        {
            const string DELIMITER = ";";
            var          csv       = new StringBuilder();

            csv.Append(groupBy.GetDescription()); csv.Append(DELIMITER);
            csv.Append("Quantidade"); csv.Append(DELIMITER);
            csv.Append("Preço Médio"); csv.Append(DELIMITER);
            csv.AppendLine();

            foreach (GroupOperation currentItem in list)
            {
                csv.AppendLine(this.ExportItemCSV(currentItem));
            }

            var bytes = Encoding.UTF8.GetBytes(csv.ToString());

            return(Encoding.UTF8.GetPreamble().Concat(bytes).ToArray());
        }
        public IEnumerable <GroupOperation> GetByGroup(GroupByEnum groupBy)
        {
            var groupName = Enum.GetName(typeof(GroupByEnum), groupBy);

            return(db.Database.SqlQuery <GroupOperation>("GetOperationGroup @GroupName", new SqlParameter("GroupName", groupName)));
        }
        public byte[] ExportXls(List <GroupOperation> list, GroupByEnum groupBy)
        {
            NPOI.SS.UserModel.IWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
            NPOI.SS.UserModel.ISheet    sheet    = workbook.CreateSheet("Plan 1");

            int rowNumer = 0;

            NPOI.SS.UserModel.IRow  row = sheet.CreateRow(rowNumer);
            NPOI.SS.UserModel.ICell cell;
            NPOI.SS.UserModel.IFont hFont = workbook.CreateFont();

            hFont.FontHeightInPoints = 12;
            hFont.FontName           = "Arial";

            NPOI.SS.UserModel.ICellStyle styleHeader = workbook.CreateCellStyle();
            styleHeader.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Grey25Percent.Index;
            styleHeader.FillPattern         = NPOI.SS.UserModel.FillPattern.SolidForeground;
            styleHeader.Alignment           = NPOI.SS.UserModel.HorizontalAlignment.Center;
            styleHeader.SetFont(hFont);

            NPOI.SS.UserModel.ICellStyle styleDisabled = workbook.CreateCellStyle();
            styleDisabled.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Grey25Percent.Index;
            styleDisabled.FillPattern         = NPOI.SS.UserModel.FillPattern.SolidForeground;
            styleDisabled.Alignment           = NPOI.SS.UserModel.HorizontalAlignment.Center;

            var listColumns = new List <ExportColumnInfo>();

            listColumns.Add(new ExportColumnInfo()
            {
                Name = groupBy.GetDescription()
            });
            listColumns.Add(new ExportColumnInfo()
            {
                Name = "Quantidade"
            });
            listColumns.Add(new ExportColumnInfo()
            {
                Name = "Preço Médio"
            });

            for (int i = 0; i < listColumns.Count; i++)
            {
                cell = row.CreateCell(i);
                cell.SetCellValue(listColumns[i].Name);
                cell.CellStyle = styleHeader;
            }

            //---- row
            foreach (var item in list)
            {
                rowNumer++;

                row = sheet.CreateRow(rowNumer);
                row.CreateCell(0).SetCellValue(item.AccountNumber ?? item.Active ?? item.OperationType);
                row.CreateCell(1).SetCellValue(item.Quantity);
                row.CreateCell(2).SetCellValue((double)item.AveragePrice);
            }

            for (int i = 0; i < listColumns.Count; i++)
            {
                sheet.AutoSizeColumn(i);
            }

            byte[] byteArray;
            using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
            {
                workbook.Write(stream);
                byteArray = stream.ToArray();
            }

            return(byteArray);
        }
 public IEnumerable <GroupOperation> GetByGroup(GroupByEnum groupBy)
 {
     return(operationDataAccess.GetByGroup(groupBy));
 }
 public TimeHeader(GroupByEnum groupBy, string format)
 {
     this.GroupBy = groupBy;
     this.Format  = format;
 }
 public TimeHeader(GroupByEnum groupBy)
 {
     this.GroupBy = groupBy;
 }
 // GET: api/operacoes?groupBy=1
 public IHttpActionResult GetByGroup(GroupByEnum groupBy)
 {
     return(Ok(_operationBusiness.GetByGroup(groupBy)));
 }