public void CustomerOrdersRead2() { var engine = new MasterDetailEngine(typeof(CustomersVerticalBar), typeof(OrdersVerticalBar), CommonSelector.MasterIfContains, "@"); MasterDetails[] res = engine.ReadFile(FileTest.Good.MasterDetail3.Path); Assert.AreEqual(4, res.Length); Assert.AreEqual(4, engine.TotalRecords); Assert.AreEqual(4, res[0].Details.Length); Assert.AreEqual(3, res[1].Details.Length); Assert.AreEqual(2, res[2].Details.Length); Assert.AreEqual(0, res[3].Details.Length); Assert.AreEqual("ALFKI", ((CustomersVerticalBar)res[0].Master).CustomerID); Assert.AreEqual(10248, ((OrdersVerticalBar)res[0].Details[0]).OrderID); Assert.AreEqual(10249, ((OrdersVerticalBar)res[0].Details[1]).OrderID); Assert.AreEqual(10250, ((OrdersVerticalBar)res[0].Details[2]).OrderID); Assert.AreEqual(10251, ((OrdersVerticalBar)res[0].Details[3]).OrderID); Assert.AreEqual("ANATR", ((CustomersVerticalBar)res[1].Master).CustomerID); Assert.AreEqual(10252, ((OrdersVerticalBar)res[1].Details[0]).OrderID); Assert.AreEqual(10253, ((OrdersVerticalBar)res[1].Details[1]).OrderID); Assert.AreEqual(10254, ((OrdersVerticalBar)res[1].Details[2]).OrderID); Assert.AreEqual("ANTON", ((CustomersVerticalBar)res[2].Master).CustomerID); Assert.AreEqual(10257, ((OrdersVerticalBar)res[2].Details[0]).OrderID); Assert.AreEqual(10258, ((OrdersVerticalBar)res[2].Details[1]).OrderID); Assert.AreEqual("DUMON", ((CustomersVerticalBar)res[3].Master).CustomerID); }
public SkeletonTextImporter(string filename) { this.engine = new MasterDetailEngine( typeof(FrameContainer), typeof(SkeletonContainer), CommonSelector.MasterIfBegins, "Frame"); this.engine.HeaderText = SkeletonTextExporter.TextHeader; this.allFrames = this.engine.ReadFile(filename); }
private void cmdRun_Click(object sender, EventArgs e) { MasterDetailEngine engine = new MasterDetailEngine(typeof(Customers), typeof(Orders), new MasterDetailSelector(ExampleSelector)); // to Read use: MasterDetails[] res = engine.ReadString(txtData.Text); grid1.SelectedObject = res; }
//-> {Example.Name:Master Detail sample} //-> {Example.Description:Show how to implement Master detail reading where record contains characters} //-> {Example.File:RunEngine.cs} /// <summary> /// Run a record through engine using a Common selector where master contains a characrter to create a master detail input /// </summary> public override void Run() { var engine = new MasterDetailEngine<Customers, Orders> (CommonSelector.MasterIfContains, "@"); // to Read use: var res = engine.ReadFile("Input.txt"); // to Write use: engine.WriteFile("Output.txt", res); }
//-> Name: Master Detail Custom Selector //-> Description:Show how to implement Master detail reading using a selection subroutine //-> File:RunEngine.cs /// <summary> /// Run a record through engine using a selector to create a master detail input /// </summary> public override void Run() { var engine = new MasterDetailEngine<Customers, Orders>(new MasterDetailSelector(ExampleSelector)); var result = engine.ReadFile("Input.txt"); foreach (var group in result) { Console.WriteLine("Customer: {0}", group.Master.CustomerID); foreach (var detail in group.Details) Console.WriteLine(" Freight: {0}", detail.Freight); } }
//-> Name:Master Detail Common Selector //-> Description:Show how to implement Master detail reading where record contains characters //-> File:Input.txt /*@ALFKI|Alfreds Futterkiste|Maria Anders|Sales Representative|Obere Str. 57|Berlin|Germany * 10248|ALFKI|5|04071996|01081996|16071996|3|32.38 * 10249|ALFKI|6|05071996|16081996|10071996|1|11.61 * 10251|ALFKI|3|08071996|05081996|15071996|1|41.34 * @ANATR|Ana Trujillo Emparedados y helados|Ana Trujillo|Owner|Avda. de la Constitución 2222|México D.F.|Mexico * 10252|ANATR|4|09071996|06081996|11071996|2|51.3 * @ANTON|Antonio Moreno Taquería|Antonio Moreno|Owner|Mataderos 2312|México D.F.|Mexico */ //-> /File public override void Run() { //-> File:RunEngine.cs var engine = new MasterDetailEngine <Customers, Orders> (CommonSelector.MasterIfContains, "@"); // to Read use: var res = engine.ReadFile("Input.txt"); // to Write use: engine.WriteFile("Output.txt", res); //-> /File }
//-> Name: Master Detail Custom Selector //-> Description:Show how to implement Master detail reading using a selection subroutine //-> File:RunEngine.cs /// <summary> /// Run a record through engine using a selector to create a master detail input /// </summary> public override void Run() { var engine = new MasterDetailEngine <Customers, Orders>(new MasterDetailSelector(ExampleSelector)); var result = engine.ReadFile("Input.txt"); foreach (var group in result) { Console.WriteLine("Customer: {0}", group.Master.CustomerID); foreach (var detail in group.Details) { Console.WriteLine(" Freight: {0}", detail.Freight); } } }
public void CustomerOrdersWrite2() { var masterDetEng = new MasterDetailEngine <CustomersVerticalBar, OrdersVerticalBar>(); MasterDetails <CustomersVerticalBar, OrdersVerticalBar> record; var records = new List <MasterDetails <CustomersVerticalBar, OrdersVerticalBar> >(); // Create the master detail item record = new MasterDetails <CustomersVerticalBar, OrdersVerticalBar>(); records.Add(record); // Create the master object record.Master = new CustomersVerticalBar(); record.Master.CustomerID = "ALFKI"; record.Master.Country = "Argentina"; // Create the details object var orders = new List <OrdersVerticalBar>(); foreach (var det in colDetails) { orders.Add(det); } record.Details = orders.ToArray(); // We can create a second master object record = new MasterDetails <CustomersVerticalBar, OrdersVerticalBar>(); records.Add(record); record.Master = new CustomersVerticalBar(); record.Master.CustomerID = "ALFKI"; record.Master.Country = "Argentina"; orders = new List <OrdersVerticalBar>(); foreach (var det in colDetails) { orders.Add(det); } record.Details = orders.ToArray(); // And now write it to a file masterDetEng.WriteFile("myMDfile.txt", records.ToArray()); }
/// <summary> /// Provides a way to custom handle requests. /// </summary> /// <param name="objContext">The request context.</param> /// <param name="strAction">The request action.</param> void IGatewayComponent.ProcessRequest(IContext objContext, string strAction) { MasterDetailEngine engine = new MasterDetailEngine(typeof(CAPTxtIEMaster), typeof(CAPTxtIEDetails), new MasterDetailSelector(RecSelector)); LoadData(); string path = Path.Combine(Context.Config.GetDirectory("Upload"), "Member"); string fileName = "CAPExportList_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string fullName = Path.Combine(path, fileName); // Header FileStream stream = File.Open(fullName, FileMode.CreateNew, FileAccess.Write); StreamWriter writer = new StreamWriter(stream); writer.WriteLine("CAP"); writer.Flush(); writer.Close(); // Details engine.AppendToFile(fullName, md); // Footer writer = File.AppendText(fullName); writer.WriteLine("TH\t" + headerCount.ToString()); writer.WriteLine("TD\t" + detailsCount.ToString()); writer.WriteLine("EE"); writer.Flush(); writer.Close(); HttpResponse objResponse = this.Context.HttpContext.Response; objResponse.Clear(); objResponse.ClearHeaders(); objResponse.ContentType = "application/txt"; objResponse.AddHeader("content-disposition", "attachment; filename=" + fileName); objResponse.BinaryWrite(File.ReadAllBytes(fullName)); objResponse.Flush(); objResponse.End(); }
public void CustomerOrdersWrite() { var engine = new MasterDetailEngine(typeof(CustomersVerticalBar), typeof(OrdersVerticalBar), new MasterDetailSelector(Test1Selector)); MasterDetails[] resTmp = engine.ReadFile(FileTest.Good.MasterDetail1.Path); Assert.AreEqual(4, resTmp.Length); engine.WriteFile("tempmd.txt", resTmp); MasterDetails[] res = engine.ReadFile("tempmd.txt"); Assert.AreEqual(4, res.Length); Assert.AreEqual(4, engine.TotalRecords); Assert.AreEqual(4, res[0].Details.Length); Assert.AreEqual(3, res[1].Details.Length); Assert.AreEqual(2, res[2].Details.Length); Assert.AreEqual(0, res[3].Details.Length); Assert.AreEqual("ALFKI", ((CustomersVerticalBar)res[0].Master).CustomerID); Assert.AreEqual(10248, ((OrdersVerticalBar)res[0].Details[0]).OrderID); Assert.AreEqual(10249, ((OrdersVerticalBar)res[0].Details[1]).OrderID); Assert.AreEqual(10250, ((OrdersVerticalBar)res[0].Details[2]).OrderID); Assert.AreEqual(10251, ((OrdersVerticalBar)res[0].Details[3]).OrderID); Assert.AreEqual("ANATR", ((CustomersVerticalBar)res[1].Master).CustomerID); Assert.AreEqual(10252, ((OrdersVerticalBar)res[1].Details[0]).OrderID); Assert.AreEqual(10253, ((OrdersVerticalBar)res[1].Details[1]).OrderID); Assert.AreEqual(10254, ((OrdersVerticalBar)res[1].Details[2]).OrderID); Assert.AreEqual("ANTON", ((CustomersVerticalBar)res[2].Master).CustomerID); Assert.AreEqual(10257, ((OrdersVerticalBar)res[2].Details[0]).OrderID); Assert.AreEqual(10258, ((OrdersVerticalBar)res[2].Details[1]).OrderID); Assert.AreEqual("DUMON", ((CustomersVerticalBar)res[3].Master).CustomerID); if (File.Exists("tempmd.txt")) { File.Delete("tempmd.txt"); } }
public void CustomerOrdersWrite() { var engine = new MasterDetailEngine(typeof (CustomersVerticalBar), typeof (OrdersVerticalBar), new MasterDetailSelector(Test1Selector)); MasterDetails[] resTmp = engine.ReadFile(FileTest.Good.MasterDetail1.Path); Assert.AreEqual(4, resTmp.Length); engine.WriteFile("tempmd.txt", resTmp); MasterDetails[] res = engine.ReadFile("tempmd.txt"); Assert.AreEqual(4, res.Length); Assert.AreEqual(4, engine.TotalRecords); Assert.AreEqual(4, res[0].Details.Length); Assert.AreEqual(3, res[1].Details.Length); Assert.AreEqual(2, res[2].Details.Length); Assert.AreEqual(0, res[3].Details.Length); Assert.AreEqual("ALFKI", ((CustomersVerticalBar) res[0].Master).CustomerID); Assert.AreEqual(10248, ((OrdersVerticalBar) res[0].Details[0]).OrderID); Assert.AreEqual(10249, ((OrdersVerticalBar) res[0].Details[1]).OrderID); Assert.AreEqual(10250, ((OrdersVerticalBar) res[0].Details[2]).OrderID); Assert.AreEqual(10251, ((OrdersVerticalBar) res[0].Details[3]).OrderID); Assert.AreEqual("ANATR", ((CustomersVerticalBar) res[1].Master).CustomerID); Assert.AreEqual(10252, ((OrdersVerticalBar) res[1].Details[0]).OrderID); Assert.AreEqual(10253, ((OrdersVerticalBar) res[1].Details[1]).OrderID); Assert.AreEqual(10254, ((OrdersVerticalBar) res[1].Details[2]).OrderID); Assert.AreEqual("ANTON", ((CustomersVerticalBar) res[2].Master).CustomerID); Assert.AreEqual(10257, ((OrdersVerticalBar) res[2].Details[0]).OrderID); Assert.AreEqual(10258, ((OrdersVerticalBar) res[2].Details[1]).OrderID); Assert.AreEqual("DUMON", ((CustomersVerticalBar) res[3].Master).CustomerID); if (File.Exists("tempmd.txt")) File.Delete("tempmd.txt"); }
public MasterDetails[] LoadPaypalFile(string PaypalFilePath) { MasterDetails[] recordsMS; try //see if you can open the file in the new Paypal Format { MasterDetailEngine engine = new MasterDetailEngine(typeof(PaypalRecord), typeof(PaypalRecord), new MasterDetailSelector(Process.PaypalSelectorClass.PaypalSelector)); recordsMS = (MasterDetails[])engine.ReadFile(PaypalFilePath); } catch (ConvertException) //else try to open in the old Paypal Format { try { MasterDetailEngine engine = new MasterDetailEngine(typeof(PaypalRecordOldType), typeof(PaypalRecordOldType), new MasterDetailSelector(Process.PaypalSelectorClass.PaypalSelector)); recordsMS = (MasterDetails[])engine.ReadFile(PaypalFilePath); foreach (MasterDetails record in recordsMS) { //convert each record in the file to a PaypalRecord from PaypalRecordOldType! record.Master = Core.Converter.ConvertToPaypalRecord((PaypalRecordOldType)record.Master); for (int x = 0; x < record.Details.Length; x++) { record.Details[x] = Converter.ConvertToPaypalRecord((PaypalRecordOldType)record.Details[x]); } } } catch (ConvertException) { MasterDetailEngine engine = new MasterDetailEngine(typeof(PaypalRecordBusinessAccount), typeof(PaypalRecordBusinessAccount), new MasterDetailSelector(Process.PaypalSelectorClass.PaypalSelector)); recordsMS = (MasterDetails[])engine.ReadFile(PaypalFilePath); foreach (MasterDetails record in recordsMS) { //convert each record in the file to a PaypalRecord from PaypalRecordOldType! record.Master = Core.Converter.ConvertToPaypalRecord((PaypalRecordBusinessAccount)record.Master); for (int x = 0; x < record.Details.Length; x++) { record.Details[x] = Converter.ConvertToPaypalRecord((PaypalRecordBusinessAccount)record.Details[x]); } } } } return(recordsMS); }
private void txtFileName_TextChanged(object sender, EventArgs e) { MasterDetailEngine engine = new MasterDetailEngine(typeof(CAPTxtIEMaster), typeof(CAPTxtIEDetails), new MasterDetailSelector(RecSelector)); md = engine.ReadFile(Path.Combine(mstrDirectory, txtFileName.Text)); for (int i = 0; i < md.Length; i++) { CAPTxtIEMaster CAPItem = md[i].Master as CAPTxtIEMaster; ListViewItem oItem = lvImportedList.Items.Add(CAPItem.RecType); oItem.SubItems.Add(CAPItem.Location); oItem.SubItems.Add(CAPItem.Operator); oItem.SubItems.Add(DateTimeHelper.DateTimeToString(CAPItem.RecvDate, false)); oItem.SubItems.Add(CAPItem.Supplier); oItem.SubItems.Add(CAPItem.RefNumber); oItem.SubItems.Add(CAPItem.Remarks); oItem.SubItems.Add(String.Empty); // 2012.09.14 paulus: 加咗,咁個 colMessage 才有效 } lblTxCount.Text = md.Length.ToString(); }
private void txtFileName_TextChanged(object sender, EventArgs e) { MasterDetailEngine engine = new MasterDetailEngine(typeof(TxferTxtIEMaster), typeof(TxferTxtIEDetails), new MasterDetailSelector(RecSelector)); md = engine.ReadFile(Path.Combine(mstrDirectory, txtFileName.Text)); for (int i = 0; i < md.Length; i++) { TxferTxtIEMaster txferItem = md[0].Master as TxferTxtIEMaster; ListViewItem oItem = lvImportedList.Items.Add(txferItem.RecType); oItem.SubItems.Add(txferItem.FromLocation); oItem.SubItems.Add(txferItem.ToLocation); oItem.SubItems.Add(txferItem.Operator); oItem.SubItems.Add(DateTimeHelper.DateTimeToString(txferItem.TxDate, false)); oItem.SubItems.Add(DateTimeHelper.DateTimeToString(txferItem.TxferDate, false)); oItem.SubItems.Add(DateTimeHelper.DateTimeToString(txferItem.CompletionDate, false)); oItem.SubItems.Add(txferItem.RefNumber); oItem.SubItems.Add(txferItem.Remarks); } lblTxCount.Text = md.Length.ToString(); }
public SkeletonTextExporter() { engine = new MasterDetailEngine( typeof(FrameContainer), typeof(SkeletonContainer), CommonSelector.MasterIfBegins, "Frame"); writer = new StreamWriter(new MemoryStream()); writer.AutoFlush = true; writeableBlock = new List<MasterDetails>(BlockBufferSize); writer.WriteLine(TextHeader); }
public void Dispose() { this.writeableBlock.Clear(); this.writeableBlock = null; this.writer.Close(); this.writer = null; this.engine = null; }
private IList <Questionnaire> GetQuestionnairesFromFlatFileFormatV1(string path) { if (string.IsNullOrWhiteSpace(path)) { throw new ArgumentNullException(nameof(path)); } if (!File.Exists(path)) { throw new FileNotFoundException($"File not found: '{path}'", path); } IList <Questionnaire> questionnaires = new List <Questionnaire>(); var engine = new MasterDetailEngine <QuestionnaireHeader, QuestionnaireItem>(new MasterDetailSelector(RecordSelector)) { Encoding = new UTF8Encoding() }; MasterDetails <QuestionnaireHeader, QuestionnaireItem>[] masterDetails = engine.ReadFile(path); foreach (MasterDetails <QuestionnaireHeader, QuestionnaireItem> masterDetail in masterDetails) { _logger.LogDebug($"Questionnaire: {masterDetail.Master.Name} - {masterDetail.Master.Title}"); Questionnaire questionnaire = new Questionnaire(); questionnaire.Meta = new Meta { Profile = new string[] { "http://ehelse.no/fhir/StructureDefinition/sdf-Questionnaire" } }; questionnaire.Id = string.IsNullOrWhiteSpace(masterDetail.Master.Id) ? null : masterDetail.Master.Id; questionnaire.Url = string.IsNullOrWhiteSpace(masterDetail.Master.Url) ? null : masterDetail.Master.Url; questionnaire.Version = string.IsNullOrWhiteSpace(masterDetail.Master.Version) ? null : masterDetail.Master.Version; questionnaire.Name = string.IsNullOrWhiteSpace(masterDetail.Master.Name) ? null : masterDetail.Master.Name; questionnaire.Title = string.IsNullOrWhiteSpace(masterDetail.Master.Title) ? null : masterDetail.Master.Title; questionnaire.Status = string.IsNullOrWhiteSpace(masterDetail.Master.Status) ? null : EnumUtility.ParseLiteral <PublicationStatus>(masterDetail.Master.Status); questionnaire.Date = string.IsNullOrWhiteSpace(masterDetail.Master.Date) ? null : masterDetail.Master.Date; questionnaire.Publisher = string.IsNullOrWhiteSpace(masterDetail.Master.Publisher) ? null : masterDetail.Master.Publisher; questionnaire.Description = string.IsNullOrWhiteSpace(masterDetail.Master.Description) ? null : new Markdown(masterDetail.Master.Description); questionnaire.Purpose = string.IsNullOrWhiteSpace(masterDetail.Master.Purpose) ? null : new Markdown(masterDetail.Master.Purpose); questionnaire.Contact = string.IsNullOrWhiteSpace(masterDetail.Master.Contact) ? null : new List <ContactDetail> { new ContactDetail { Telecom = new List <ContactPoint> { new ContactPoint { System = ContactPoint.ContactPointSystem.Url, Value = masterDetail.Master.Contact } } } }; if (!string.IsNullOrWhiteSpace(masterDetail.Master.Language)) { questionnaire.Language = masterDetail.Master.Language; // TODO: Vi trenger definere Visningsnavn for språket, eksempelvis: Norsk (bokmål), osv. questionnaire.Meta.Tag.Add(new Coding("urn:ietf:bcp:47", questionnaire.Language)); } IList <string> linkIds = new List <string>(); Questionnaire.ItemComponent item = null; for (int i = 0; i < masterDetail.Details.Length; i++) { QuestionnaireItem questionnaireItem = masterDetail.Details[i]; if (linkIds.IndexOf(questionnaireItem.LinkId) > 0) { throw new DuplicateLinkIdException(questionnaireItem.LinkId); } _logger.LogDebug($"Questionnaire Item: {questionnaireItem.LinkId} - {questionnaireItem.Type} - {questionnaireItem.Text}"); int level = questionnaireItem.LinkId.Split('.').Length - 1; if (level > 0) { i = DiveV1(i, level, item.Item, masterDetail.Details); } else { item = CreateItemComponentV1(questionnaireItem); questionnaire.Item.Add(item); } } questionnaires.Add(questionnaire); } return(questionnaires); }
private IList <ValueSet> GetValueSetsFromFlatFileFormat(string path, bool genereateNarrative = true) { if (string.IsNullOrWhiteSpace(path)) { throw new ArgumentNullException(nameof(path)); } if (!File.Exists(path)) { throw new FileNotFoundException($"File not found: '{path}'.", path); } IList <ValueSet> valueSets = new List <ValueSet>(); var engine = new MasterDetailEngine <ValueSetHeader, ValueSetCodeReferences>(new MasterDetailSelector(RecordSelector)) { Encoding = new UTF8Encoding() }; MasterDetails <ValueSetHeader, ValueSetCodeReferences>[] masterDetails = engine.ReadFile(path); foreach (MasterDetails <ValueSetHeader, ValueSetCodeReferences> masterDetail in masterDetails) { _logger.LogDebug($"ValueSet: {masterDetail.Master.Id} - {masterDetail.Master.Title}"); ValueSet valueSet = new ValueSet { Id = masterDetail.Master.Id, Name = masterDetail.Master.Name, Title = masterDetail.Master.Title, Status = PublicationStatus.Draft, Version = masterDetail.Master.Version, Publisher = masterDetail.Master.Publisher, }; ValueSet.ConceptSetComponent conceptSet = new ValueSet.ConceptSetComponent { System = masterDetail.Master.System }; valueSet.Compose = new ValueSet.ComposeComponent { Include = new List <ValueSet.ConceptSetComponent> { conceptSet } }; foreach (ValueSetCodeReferences valueSetCodeReference in masterDetail.Details) { _logger.LogDebug($"ValueSetCodeReference: {valueSetCodeReference.Code} - {valueSetCodeReference.Display}"); conceptSet.Concept.Add(new ValueSet.ConceptReferenceComponent { Code = valueSetCodeReference.Code, Display = valueSetCodeReference.Display }); } if (genereateNarrative) { valueSet.GenerateAndSetNarrative(); } valueSets.Add(valueSet); } return(valueSets); }
private IList <Questionnaire> GetQuestionnairesFromFlatFileFormatV2(string path) { if (string.IsNullOrWhiteSpace(path)) { throw new ArgumentNullException(nameof(path)); } if (!File.Exists(path)) { throw new FileNotFoundException($"File not found: '{path}'", path); } IList <Questionnaire> questionnaires = new List <Questionnaire>(); var engine = new MasterDetailEngine <QuestionnaireHeader2, QuestionnaireItem2>(new MasterDetailSelector(RecordSelector)) { Encoding = new UTF8Encoding() }; MasterDetails <QuestionnaireHeader2, QuestionnaireItem2>[] masterDetails = engine.ReadFile(path); foreach (MasterDetails <QuestionnaireHeader2, QuestionnaireItem2> masterDetail in masterDetails) { _logger.LogDebug($"Questionnaire: {masterDetail.Master.Name} - {masterDetail.Master.Title}"); Questionnaire questionnaire = new Questionnaire { Meta = new Meta { Profile = new string[] { Constants.QuestionnaireProfileUri } }, Id = string.IsNullOrWhiteSpace(masterDetail.Master.Id) ? null : masterDetail.Master.Id, Url = string.IsNullOrWhiteSpace(masterDetail.Master.Url) ? null : masterDetail.Master.Url, Version = string.IsNullOrWhiteSpace(masterDetail.Master.Version) ? null : masterDetail.Master.Version, Name = string.IsNullOrWhiteSpace(masterDetail.Master.Name) ? null : masterDetail.Master.Name, Title = string.IsNullOrWhiteSpace(masterDetail.Master.Title) ? null : masterDetail.Master.Title, Status = string.IsNullOrWhiteSpace(masterDetail.Master.Status) ? null : EnumUtility.ParseLiteral <PublicationStatus>(masterDetail.Master.Status) }; if (!string.IsNullOrWhiteSpace(masterDetail.Master.Date)) { if (!DateUtility.IsValidFhirDateTime(masterDetail.Master.Date)) { throw new Exception($"The date {masterDetail.Master.Date} is not conforming to the expected format: 'yyyy-MM-dd'"); } questionnaire.DateElement = new FhirDateTime(masterDetail.Master.Date); } questionnaire.Publisher = string.IsNullOrWhiteSpace(masterDetail.Master.Publisher) ? null : masterDetail.Master.Publisher; questionnaire.Description = string.IsNullOrWhiteSpace(masterDetail.Master.Description) ? null : new Markdown(masterDetail.Master.Description); questionnaire.Purpose = string.IsNullOrWhiteSpace(masterDetail.Master.Purpose) ? null : new Markdown(masterDetail.Master.Purpose); if (!string.IsNullOrWhiteSpace(masterDetail.Master.ApprovalDate)) { if (!DateUtility.IsValidFhirDate(masterDetail.Master.ApprovalDate)) { throw new Exception($"The date {masterDetail.Master.ApprovalDate} is not conforming to the expected format: 'yyyy-MM-dd'"); } questionnaire.ApprovalDateElement = new Date(masterDetail.Master.ApprovalDate); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.ApprovalDate)) { if (!DateUtility.IsValidFhirDate(masterDetail.Master.LastReviewDate)) { throw new Exception($"The date {masterDetail.Master.LastReviewDate} is not conforming to the expected format: 'yyyy-MM-dd'"); } questionnaire.LastReviewDateElement = new Date(masterDetail.Master.LastReviewDate); } questionnaire.Contact = string.IsNullOrWhiteSpace(masterDetail.Master.ContactName) ? null : new List <ContactDetail> { new ContactDetail { Name = masterDetail.Master.ContactName } }; questionnaire.Copyright = string.IsNullOrWhiteSpace(masterDetail.Master.Copyright) ? null : new Markdown(masterDetail.Master.Copyright); if (!string.IsNullOrWhiteSpace(masterDetail.Master.SubjectType)) { IList <ResourceType?> resourceTypes = new List <ResourceType?>(); string[] subjectTypes = masterDetail.Master.SubjectType.Split('|'); foreach (string subjectType in subjectTypes) { ResourceType?resourceType = EnumUtility.ParseLiteral <ResourceType>(subjectType); if (resourceType.HasValue) { resourceTypes.Add(resourceType); } } questionnaire.SubjectType = resourceTypes; } if (!string.IsNullOrWhiteSpace(masterDetail.Master.Language)) { questionnaire.Language = masterDetail.Master.Language; string displayName = CultureInfo.GetCultureInfo(LanguageCodeUtility.GetLanguageCode(questionnaire.Language))?.NativeName.UpperCaseFirstCharacter(); questionnaire.Meta.Tag.Add(new Coding("urn:ietf:bcp:47", questionnaire.Language, displayName == null ? string.Empty : displayName)); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.UseContext)) { questionnaire.UseContext = ParseUsageContext(masterDetail.Master.UseContext); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.Endpoint)) { questionnaire.SetExtension(Constants.EndPointUri, new ResourceReference(masterDetail.Master.Endpoint)); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.AuthenticationRequirement)) { questionnaire.SetExtension(Constants.AuthenticationRequirementUri, new Coding(Constants.AuthenticationRequirementSystem, masterDetail.Master.AuthenticationRequirement)); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.AccessibilityToResponse)) { questionnaire.SetExtension(Constants.AccessibilityToResponseUri, new Coding(Constants.AccessibilityToResponseSystem, masterDetail.Master.AccessibilityToResponse)); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.CanBePerformedBy)) { questionnaire.SetExtension(Constants.CanBePerformedByUri, new Coding(Constants.CanBePerformedBySystem, masterDetail.Master.CanBePerformedBy)); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.Discretion)) { questionnaire.SetExtension(Constants.DiscretionUri, new Coding(Constants.DiscretionSystem, masterDetail.Master.Discretion)); } if (masterDetail.Master.GeneratePdf.HasValue) { questionnaire.SetExtension(Constants.GeneratePdfUri, new FhirBoolean(masterDetail.Master.GeneratePdf.Value)); } else { questionnaire.SetExtension(Constants.GeneratePdfUri, new FhirBoolean(true)); } if (masterDetail.Master.GenerateNarrative.HasValue) { questionnaire.SetExtension(Constants.GenerateNarrativeUri, new FhirBoolean(masterDetail.Master.GenerateNarrative.Value)); } else { questionnaire.SetExtension(Constants.GenerateNarrativeUri, new FhirBoolean(true)); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.PresentationButtons)) { questionnaire.SetExtension(Constants.PresentationButtonsUri, new Coding(Constants.PresentationButtonsSystem, masterDetail.Master.PresentationButtons)); } else { questionnaire.SetExtension(Constants.PresentationButtonsUri, new Coding(Constants.PresentationButtonsSystem, "sticky")); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.Code)) { questionnaire.Code = ParseArrayOfCoding(masterDetail.Master.Code); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.QuestionaireNavigatorState)) { questionnaire.SetExtension(Constants.QuestionaireNavigatorStateUri, new CodeableConcept { Coding = new List <Coding> { new Coding { System = Constants.NavigatorStateSystem, Code = masterDetail.Master.QuestionaireNavigatorState, } } }); } if (!string.IsNullOrWhiteSpace(masterDetail.Master.QuestionnairePrintVersionReference)) { questionnaire.SetExtension(Constants.QuestionnairePrintVersionUri, new ResourceReference(masterDetail.Master.QuestionnairePrintVersionReference)); } IList <string> linkIds = new List <string>(); Questionnaire.ItemComponent item = null; for (int i = 0; i < masterDetail.Details.Length; i++) { QuestionnaireItem2 questionnaireItem = masterDetail.Details[i]; if (linkIds.IndexOf(questionnaireItem.LinkId) > 0) { throw new DuplicateLinkIdException(questionnaireItem.LinkId); } _logger.LogDebug($"Questionnaire Item: {questionnaireItem.LinkId} - {questionnaireItem.Type} - {questionnaireItem.Text}"); int level = questionnaireItem.LinkId.Split('.').Length - 1; if (level > 0) { // item could be null if a line in the .txt-file is empty or blank if (item == null) { continue; } i = DiveV2(i, level, item.Item, masterDetail.Details); } else { item = CreateItemComponentV2(questionnaireItem); questionnaire.Item.Add(item); } } questionnaires.Add(questionnaire); } return(questionnaires); }
public static MasterDetails[] ReadTest(MasterDetailEngine engine, string fileName) { return(engine.ReadFile(TestPath(fileName))); }
public static MasterDetails[] ReadTest(MasterDetailEngine engine, string fileName) { return(engine.ReadFile(@"..\data\" + fileName)); }
public static MasterDetails[] ReadTest(MasterDetailEngine engine, string fileName) { return engine.ReadFile(@"..\data\" + fileName); }
public void CustomerOrdersWrite2() { MasterDetailEngine<CustomersVerticalBar, OrdersVerticalBar> masterDetEng = new MasterDetailEngine<CustomersVerticalBar, OrdersVerticalBar>(); MasterDetails<CustomersVerticalBar, OrdersVerticalBar> record; List<MasterDetails<CustomersVerticalBar, OrdersVerticalBar>> records = new List<MasterDetails<CustomersVerticalBar,OrdersVerticalBar>>(); // Create the master detail item record = new MasterDetails<CustomersVerticalBar, OrdersVerticalBar>(); records.Add(record); // Create the master object record.Master = new CustomersVerticalBar(); record.Master.CustomerID = "ALFKI"; record.Master.Country = "Argentina"; // Create the details object List<OrdersVerticalBar> orders = new List<OrdersVerticalBar>(); foreach (OrdersVerticalBar det in colDetails) { orders.Add(det); } record.Details = orders.ToArray(); // We can create a second master object record = new MasterDetails<CustomersVerticalBar, OrdersVerticalBar>(); records.Add(record); record.Master = new CustomersVerticalBar(); record.Master.CustomerID = "ALFKI"; record.Master.Country = "Argentina"; orders = new List<OrdersVerticalBar>(); foreach (OrdersVerticalBar det in colDetails) { orders.Add(det); } record.Details = orders.ToArray(); // And now write it to a file masterDetEng.WriteFile("myMDfile.txt", records.ToArray()); }
private SklxtWriter() { this.stopped = true; this.engine = new MasterDetailEngine( typeof(FrameContainer), typeof(SkeletonContainer), CommonSelector.MasterIfBegins, "Frame"); this.writer = new StreamWriter(new MemoryStream()); this.writer.AutoFlush = true; this.writeableBlock = new List<MasterDetails>(BlockBufferSize); this.writer.WriteLine(TextHeader); }