예제 #1
0
 private static void AddLanguages(KmehrDbContext context)
 {
     if (!context.Languages.Any())
     {
         context.Languages.AddRange(new[]
         {
             new Language
             {
                 Id = "en"
             },
             new Language
             {
                 Id = "fr"
             },
             new Language
             {
                 Id = "nl"
             },
             new Language
             {
                 Id = "de"
             }
         });
     }
 }
예제 #2
0
        public static void EnsureSeedData(this KmehrDbContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            AddLanguages(context);
            AddHealthCareTypes(context);
            context.SaveChanges();
        }
예제 #3
0
        private static void AddHealthCareTypes(KmehrDbContext context)
        {
            if (!context.HealthCarePartyTypes.Any())
            {
                var       assembly = Assembly.GetExecutingAssembly();
                var       names    = assembly.GetManifestResourceNames();
                CdHcParty result   = null;
                using (var stream = assembly.GetManifestResourceStream("Kmehr.EF.Resources.cd-hcparty.xml"))
                {
                    var serializer = new XmlSerializer(typeof(CdHcParty));
                    using (var reader = new StreamReader(stream))
                    {
                        var xml = reader.ReadToEnd();
                        using (var memStream = new MemoryStream(Encoding.UTF8.GetBytes(xml)))
                        {
                            result = (CdHcParty)serializer.Deserialize(memStream);
                        }
                    }
                }

                foreach (var value in result.Values)
                {
                    var record = new HealthCarePartyType
                    {
                        Code = value.Code
                    };
                    var descriptions = new List <Translation>();
                    foreach (var v in value.Descriptions)
                    {
                        descriptions.Add(new Translation
                        {
                            LanguageId            = v.Language,
                            HealthCarePartyTypeId = value.Code,
                            Value = v.Value
                        });
                    }

                    record.Translations = descriptions;
                    context.HealthCarePartyTypes.Add(record);
                }
            }
        }