public async Task <CompanyExportSettingsDto> UpdateExportSettings(long id, CompanyExportSettingsDto dto) { var entity = await _companyExportSettingsManager.FindInclude(id); if (entity == null) { return(null); } var newEntity = _mapper.Map(dto, entity); entity = await _companyExportSettingsManager.Update(newEntity); #region UPDATE FiELDS LIST foreach (var fieldDto in dto.Fields) { var field = await _companyExportSettingsFieldManager.Find(fieldDto.Id); if (field != null) { var fieldEntity = _mapper.Map(fieldDto, field); fieldEntity = await _companyExportSettingsFieldManager.Update(fieldEntity); } } #endregion return(_mapper.Map <CompanyExportSettingsDto>(entity)); }
public async Task <CompanyExportSettingsDto> CreateExportSettings(CompanyExportSettingsDto dto) { var company = await _companyManager.Find(dto.CompanyId); if (company == null) { return(null); } var newEntity = _mapper.Map <CompanyExportSettingsEntity>(dto); var entity = await _companyExportSettingsManager.Create(newEntity); return(_mapper.Map <CompanyExportSettingsDto>(entity)); }
public async Task <IActionResult> CreateExportSettings(long id) { var item = await _companyBusinessManager.GetCompany(id); if (item == null) { return(NotFound()); } var dto = new CompanyExportSettingsDto() { CompanyId = id, Name = "Default Name", Title = string.Format("Report-{0}.csv", item.Name), Sort = 0, IncludeAllCustomers = false }; dto = await _companyBusinessManager.CreateExportSettings(dto); return(RedirectToAction(nameof(EditExportSettings), new { Id = dto.Id })); }
private async Task <byte[]> GetExportData(long companyId, DateTime date, int numberOfPeriods, CompanyExportSettingsDto settings) { var result = await _reportBusinessManager.GetAgingReport(companyId, date, 30, numberOfPeriods, settings.IncludeAllCustomers); var mem = new MemoryStream(); var writer = new StreamWriter(mem); var csvWriter = new CsvWriter(writer, CultureInfo.InvariantCulture); var fields = settings.Fields.OrderBy(x => x.Sort);//.Concat(columns); foreach (var field in fields) { if (field.IsActive) { csvWriter.WriteField <string>(field.Value); } } csvWriter.NextRecord(); #region SORT BY ACCOUNT NUMBER/CUSTOMER BUSINESS NAME var sortedInvoices = result.Rows; if (settings.Sort == 0) { sortedInvoices = sortedInvoices.OrderBy(x => x.AccountNo).ToList(); } else { sortedInvoices = sortedInvoices.OrderBy(x => x.Customer.Name).ToList(); } #endregion foreach (var summary in sortedInvoices) { foreach (var field in fields) { if (field.IsActive) { var value = ObjectExtension.GetPropValue(summary, field.Name); var data = summary.Data.ContainsKey(field.Name) ? summary.Data[field.Name].ToString() : value; csvWriter.WriteField(data == null || data.Equals("0") ? "" : data); } } csvWriter.NextRecord(); } writer.Flush(); mem.Position = 0; return(mem.ToArray()); }