private static DataTable LoadSummary(DirectoryInfo targetFolder, List <String> actions, QueryResultAction[] actionArray) { DataTable table = new DataTable("Summary"); Type columnNamesResult = typeof(PreingestResult); Type columnNamesSummary = typeof(PreingestStatisticsSummary); Type columnNamesProps = typeof(PreingestProperties); table.Columns.AddRange(columnNamesResult.GetProperties().Select(item => new DataColumn(item.Name, typeof(String))).ToArray()); table.Columns.AddRange(columnNamesProps.GetProperties().Select(item => new DataColumn(item.Name, typeof(String))).ToArray()); table.Columns.AddRange(columnNamesSummary.GetProperties().Select(item => new DataColumn(item.Name, typeof(String))).ToArray()); foreach (string actionName in actions) { var action = actionArray.Where(action => action.Name == actionName).LastOrDefault(); bool hasJson = (action.ResultFiles.LastOrDefault(item => item.EndsWith(".json")) == null); ValidationActionType switchResult = (ValidationActionType)Enum.Parse(typeof(ValidationActionType), action.Name); if (switchResult == (ValidationActionType.ProfilesHandler | ValidationActionType.ReportingDroidXmlHandler | ValidationActionType.ReportingPdfHandler | ValidationActionType.ReportingPlanetsXmlHandler)) { continue; } if (hasJson) { continue; } string jsonFilename = Path.Combine(targetFolder.FullName, action.ResultFiles.LastOrDefault(item => item.EndsWith(".json"))); string jsonContent = File.ReadAllText(jsonFilename); PreingestActionModel jsonDataFile = JsonConvert.DeserializeObject <PreingestActionModel>(jsonContent); var summary = jsonDataFile.Summary; var result = jsonDataFile.ActionResult; var props = jsonDataFile.Properties; DataRow row = table.NewRow(); var resultDataResult = result.GetType().GetProperties().Select(item => new { Name = item.Name, PropValue = item.GetValue(result) == null ? String.Empty : item.GetValue(result).ToString() }).ToList(); resultDataResult.ForEach(item => row[item.Name] = item.PropValue); var resultDataProps = props.GetType().GetProperties().Select(item => new { Name = item.Name, PropValue = item.Name.Equals("Messages", StringComparison.InvariantCultureIgnoreCase) ? item.GetValue(props) == null ? String.Empty : String.Join(Environment.NewLine, (item.GetValue(props) as string[])) : item.GetValue(props) == null ? String.Empty : item.GetValue(props).ToString() }).ToList(); resultDataProps.ForEach(item => row[item.Name] = item.PropValue); var resultDataSummary = summary.GetType().GetProperties().Select(item => new { Name = item.Name, PropValue = item.GetValue(summary).ToString() }).ToList(); resultDataSummary.ForEach(item => row[item.Name] = item.PropValue); table.Rows.Add(row); } return(table); }
public DefaultKey(ValidationActionType name) { this.Name = name; }
public static FileInfo BuildExcel(DirectoryInfo targetFolder, QueryResultAction[] actionArray) { Dictionary <String, DataTable> content = new Dictionary <string, DataTable>(); var distinctActionNames = actionArray.Select(item => item.Name).Distinct().ToList(); bool alreadyAnExcel = (distinctActionNames.Contains(ValidationActionType.IndexMetadataHandler.ToString())); //create new excel or use existing and make a copy FileInfo indexingMetadataExcelFile = null; string indexingMetadataExcelFilename = Path.Combine(targetFolder.FullName, String.Concat(ValidationActionType.IndexMetadataHandler.ToString(), ".xlsx")); bool exists = File.Exists(indexingMetadataExcelFilename) && distinctActionNames.Contains(ValidationActionType.IndexMetadataHandler.ToString()); if (exists) { indexingMetadataExcelFile = new FileInfo(indexingMetadataExcelFilename); } int i = 1; DataTable summaryTable = LoadSummary(targetFolder, distinctActionNames, actionArray); content.Add(String.Format("P{0} - Overzicht", i.ToString("D2")), summaryTable); distinctActionNames.ForEach(item => { var action = actionArray.Where(action => action.Name == item).LastOrDefault(); bool hasJson = (action.ResultFiles.LastOrDefault(item => item.EndsWith(".json")) == null); ValidationActionType switchResult = (ValidationActionType)Enum.Parse(typeof(ValidationActionType), action.Name); if (switchResult == (ValidationActionType.ProfilesHandler | ValidationActionType.ReportingDroidXmlHandler | ValidationActionType.ReportingPdfHandler | ValidationActionType.ReportingPlanetsXmlHandler)) { return; } if (hasJson) { return; } string jsonFilename = Path.Combine(targetFolder.FullName, action.ResultFiles.LastOrDefault(item => item.EndsWith(".json"))); string jsonContent = File.ReadAllText(jsonFilename); PreingestActionModel jsonDataFile = JsonConvert.DeserializeObject <PreingestActionModel>(jsonContent); switch (switchResult) { case ValidationActionType.ContainerChecksumHandler: case ValidationActionType.SettingsHandler: case ValidationActionType.IndexMetadataHandler: { if (ValidationActionType.SettingsHandler == switchResult) { } if (ValidationActionType.ContainerChecksumHandler == switchResult) { } if (ValidationActionType.IndexMetadataHandler == switchResult) { } } break; case ValidationActionType.UnpackTarHandler: { DataTable table = LoadJson(action.Name, jsonDataFile); content.Add(String.Format("P{0} - Uitpakken", i.ToString("D2")), table); } break; case ValidationActionType.ScanVirusValidationHandler: { DataTable table = LoadJson <VirusScanItem>(action.Name, jsonDataFile); content.Add(String.Format("P{0} - Virus scan", i.ToString("D2")), table); } break; case ValidationActionType.PrewashHandler: { DataTable table = LoadJson <WashedItem>(action.Name, jsonDataFile); content.Add(String.Format("P{0} - Voorbewerkingen", i.ToString("D2")), table); } break; case ValidationActionType.NamingValidationHandler: { DataTable table = LoadJson <NamingItem>(action.Name, jsonDataFile); content.Add(String.Format("P{0} - Tekens & karakters", i.ToString("D2")), table); } break; case ValidationActionType.SidecarValidationHandler: { DataTable table = LoadJson(action.Name, jsonDataFile); content.Add(String.Format("P{0} - Structuur", i.ToString("D2")), table); } break; case ValidationActionType.GreenListHandler: { DataTable table = LoadJson <DataItem>(action.Name, jsonDataFile); content.Add(String.Format("P{0} - Voorkeursbestanden", i.ToString("D2")), table); } break; case ValidationActionType.EncodingHandler: { DataTable table = LoadJson <EncodingItem>(action.Name, jsonDataFile); content.Add(String.Format("P{0} - Coderingen", i.ToString("D2")), table); } break; case ValidationActionType.MetadataValidationHandler: { DataTable table = LoadJson <MetadataValidationItem>(action.Name, jsonDataFile); content.Add(String.Format("P{0} - Validaties", i.ToString("D2")), table); } break; case ValidationActionType.FilesChecksumHandler: { DataTable table = LoadJson(action.Name, jsonDataFile, true, false); content.Add(String.Format("P{0} - Controle getallen", i.ToString("D2")), table); } break; case ValidationActionType.BuildOpexHandler: { DataTable table = LoadJson(action.Name, jsonDataFile); content.Add(String.Format("P{0} - OPEX construeren", i.ToString("D2")), table); } break; case ValidationActionType.PolishHandler: { DataTable table = LoadJson(action.Name, jsonDataFile); content.Add(String.Format("P{0} - OPEX bijwerken", i.ToString("D2")), table); } break; case ValidationActionType.ClearBucketHandler: { DataTable table = LoadJson(action.Name, jsonDataFile); content.Add(String.Format("P{0} - Opschonen (bucket)", i.ToString("D2")), table); } break; case ValidationActionType.ShowBucketHandler: { DataTable table = LoadJson(action.Name, jsonDataFile); content.Add(String.Format("P{0} - Raadplegen (bucket)", i.ToString("D2")), table); } break; case ValidationActionType.UploadBucketHandler: { DataTable table = LoadJson(action.Name, jsonDataFile, false, true); content.Add(String.Format("P{0} - Upload (bucket)", i.ToString("D2")), table); } break; default: { } break; } i++; }); FileInfo tmpResultFile = ExportToExcel(content, indexingMetadataExcelFile); string outputFilename = Path.Combine(targetFolder.FullName, String.Concat(ValidationActionType.ExcelCreatorHandler.ToString(), ".xlsx")); tmpResultFile.MoveTo(outputFilename, true); return(new FileInfo(outputFilename)); }
public FailCommand(ValidationActionType currentAction, ILogger <PreingestEventHubHandler> logger, Uri webApiUrl) : base(logger, webApiUrl) { ActionTypeName = currentAction; }