public async Task <IActionResult> Export( DateTime?startDateTime = null, DateTime?endDateTime = null, int?manufacturingAreaId = null, int?classificationId = null, string engineerName = null, string shortDescription = null, char?activityTypeId = null, string incidentDescription = null, string actionSummary = null, TernaryOption resolved = TernaryOption.All, TernaryOption hasWerumTicket = TernaryOption.All, string werumTicket = null, string bTServiceRequestNumber = null, TernaryOption interventionPerformed = TernaryOption.All, string batchNumber = null, int limit = 0) { Logger.LogTrace("Incidents/Export called"); var data = new IncidentSearchViewModel { StartDateTime = startDateTime, EndDateTime = endDateTime, ManufacturingAreaId = manufacturingAreaId, ClassificationId = classificationId, EngineerName = engineerName, ShortDescription = shortDescription, IncidentDescription = incidentDescription, ActionSummary = actionSummary, Resolved = resolved, HasWerumTicket = hasWerumTicket, WerumTicket = werumTicket, BTServiceRequestNumber = bTServiceRequestNumber, InterventionPerformed = interventionPerformed, BatchNumber = batchNumber, Limit = limit }; var list = GetFilteredSearchResults(data); var results = list.OrderByDescending(i => i.CreatedDateTime); var ms = new MemoryStream(500); var writer = new StreamWriter(ms); await writer.WriteLineAsync(ExportHeader); await list.ForEachAsync(i => writer.WriteLineAsync(IncidentToCsv(i)) ); await writer.FlushAsync(); ms.Seek(0, SeekOrigin.Begin); return(File(ms, "text/csv", "Incidents.csv")); }
public static DataTable Shrink(DataTable dt, TernaryOption includeOrExlude, string[] fieldArry) { if (includeOrExlude == TernaryOption.None) { return(dt); } if (dt.Rows.Count == 0) { return(dt); } if (fieldArry.Length == 0) { return(dt); } try { var validFieldNameArry = new string[fieldArry.Length]; var i = 0; foreach (DataColumn col in dt.Columns) { if (includeOrExlude == TernaryOption.Forward) { if (col.ColumnName.IsBeContainedInStringArray(fieldArry)) { validFieldNameArry[i] = col.ColumnName; } } else { if (!col.ColumnName.IsBeContainedInStringArray(fieldArry)) { validFieldNameArry[i] = col.ColumnName; } } i++; } var result = new DataTable(); DataView dv = new DataView(dt); result = dv.ToTable(true, validFieldNameArry); return(result); } catch (Exception ex) { throw new ArgumentException("\n>> " + TypeName + ".Shrink Error: " + ex.Message); } }
public static string ConvertToJson(string excelPath, TernaryOption includeOrExlude, string[] fieldArry) { try { var dt = ConvertToDataTable(excelPath); var isEntityFormat = false; if (dt.TableName.ToLower().Contains("entity")) { isEntityFormat = true; } var dt1 = DataTableHelper.Shrink(dt, includeOrExlude, fieldArry); return(DataTableHelper.ConvertToJson(dt1, isEntityFormat)); } catch (Exception ex) { throw new ArgumentException("\n>> " + TypeName + ".ConvertToJson Error: " + ex.Message); } }
// GET: Incidents/Search public async Task <IActionResult> Search( DateTime?startDateTime = null, DateTime?endDateTime = null, int?manufacturingAreaId = null, int?classificationId = null, string engineerName = null, string shortDescription = null, string incidentDescription = null, string actionSummary = null, TernaryOption resolved = TernaryOption.All, TernaryOption hasWerumTicket = TernaryOption.All, string werumTicket = null, string bTServiceRequestNumber = null, TernaryOption interventionPerformed = TernaryOption.All, string batchNumber = null, int limit = 20) { Logger.LogTrace("Incidents/Search called"); var data = new IncidentSearchViewModel { StartDateTime = startDateTime, EndDateTime = endDateTime, ManufacturingAreaId = manufacturingAreaId, ClassificationId = classificationId, EngineerName = engineerName, ShortDescription = shortDescription, IncidentDescription = incidentDescription, ActionSummary = actionSummary, Resolved = resolved, HasWerumTicket = hasWerumTicket, WerumTicket = werumTicket, BTServiceRequestNumber = bTServiceRequestNumber, InterventionPerformed = interventionPerformed, BatchNumber = batchNumber, Limit = limit }; var list = GetFilteredSearchResults(data); if (list != null) { data.Results = await list .Select(i => new IncidentSearchResultViewModel { IncidentId = i.IncidentId, ActivityPerformedDateTime = i.LocalActivityPerformedDateTime, FormattedLocalActivityPerformedDateTime = i.LocalActivityPerformedDateTime.ToString(DateFormat), ManufacturingAreaName = i.ManufacturingArea.Name, ClassificationName = i.Classification.Name, EngineerName = i.EngineerName, ShortDescription = i.ShortDescription, InterventionPerformed = i.RequireES13 ?? false, Resolved = i.Resolved ?? false, WerumTicket = i.WerumTicket, BTServiceRequestNumber = i.BTServiceRequestNumber, BatchNumber = i.BatchNumber, UserId = i.UserId }) .OrderByDescending(i => i.ActivityPerformedDateTime) .Take(data.Limit) .ToListAsync(); } else { data.Results = new List <IncidentSearchResultViewModel>(); } //load select (drop down) lists ViewData["ClassificationId"] = await GetClassificationsSelectListAsync(); ViewData["ManufacturingAreaId"] = await GetManufacturingAreasSelectListAsync(); return(View("Search", data)); }