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);
 }
Example #3
0
        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);
                }
            }
        }
Example #8
0
        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());
        }
Example #9
0
        /// <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();
        }
Example #10
0
        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");
            }
        }
Example #11
0
        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");
        }
Example #12
0
        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);
        }
Example #13
0
        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();
        }
Example #14
0
        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;
 }
Example #17
0
        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);
        }
Example #18
0
        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);
        }
Example #19
0
        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);
        }
Example #20
0
 public static MasterDetails[] ReadTest(MasterDetailEngine engine, string fileName)
 {
     return(engine.ReadFile(TestPath(fileName)));
 }
Example #21
0
 public static MasterDetails[] ReadTest(MasterDetailEngine engine, string fileName)
 {
     return(engine.ReadFile(@"..\data\" + fileName));
 }
Example #22
0
		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);
 }