public AsyncProcessorThread() { try { ID = GetNextIDToProcess(); ProcDetails.SingleOrDefault(z => z.ID == ID).Begin(); AsyncProcessorDetail fd = ProcDetails.SingleOrDefault(z => z.ID == ID); // Add a case statement for each of the processor classes you create switch (fd.ProcessorType) { case "ProcessorImportCsv": ProcessorImportCsv ImportDataCSV = new ProcessorImportCsv(fd); break; case "ProcessorImportXls": ProcessorImportXls ImportDataXLS = new ProcessorImportXls(fd); break; case "ProcessorImportJson": ProcessorImportJson ImportDataJSON = new ProcessorImportJson(fd); break; case "ProcessorImportXML": ProcessorImportXml ImportDataXML = new ProcessorImportXml(fd); break; case "ProcessorImportTable": ProcessorImportTable ImportDataTable = new ProcessorImportTable(fd); break; default: ProcDetails.SingleOrDefault(z => z.ID == ID).StatusText = "No ProcessorType found. Exiting.."; ProcDetails.SingleOrDefault(z => z.ID == ID).End(); break; } } catch (Exception ex) { } }
public void ICanSerializeAndDeserializeProcDetailData() { Sections procData = new Sections(); string[] args = new string[] { "a", "b", "c" }; IDictionary <string, string> vars = new Dictionary <string, string>() { { "a", "1" }, { "b", "2" }, { "c", "3" } }; ProcDetails procDetails = new ProcDetails(args); procData.Add(ProcDetails.CommandLineArguments, Entries.MakeEntries(args)); procData.Add(ProcDetails.EnvironmentVariables, new Entries(vars)); procData.Add(ProcDetails.CoreSiteSettings, new Entries(vars)); procData.Add(ProcDetails.HiveSiteSettings, new Entries(vars)); procData.Add(ProcDetails.MapRedSiteSettings, new Entries(vars)); SectionsSerializer ser = new SectionsSerializer(); var content = ser.Serialize(procData); Sections deserialized = ser.Deserialize(content); Help.DoNothing(deserialized); Help.DoNothing(procDetails); }