/// <summary> /// Load categories /// </summary> /// <returns>All categories</returns> public ObservableCollection<Category> LoadCategories() { var results = new ObservableCollection<Category>(); using (ItemDataContext context = new ItemDataContext(ConnectionString)) { // For development use only ////context.DeleteDatabase(); if (!context.DatabaseExists()) { // Create database if it doesn't exist context.CreateDatabase(); } if (context.Categories.Count() == 0) { // Initialization XDocument data = XDocument.Load(XMLSource); var dataCategories = from query in data.Descendants("Category") select new Category((string)query.Element("Name")); foreach (var item in dataCategories) { // Add the new category to the context Category cat = new Category(); cat.Name = item.Name; context.Categories.InsertOnSubmit(cat); } // Save changes to the database context.SubmitChanges(); } var contextCategories = from i in context.Categories select i; foreach (Category cat in contextCategories) { results.Add(cat); } } return results; }
/// <summary> /// Load data method. /// </summary> /// <returns>The items</returns> public ObservableCollection<Item> LoadData() { var results = new ObservableCollection<Item>(); using (ItemDataContext context = new ItemDataContext(ConnectionString)) { // For development use only ////context.DeleteDatabase(); // Create database if it doesn't exist if (!context.DatabaseExists()) { context.CreateDatabase(); } // Initialization if (context.Items.Count() == 0 || context.Categories.Count() == 0) { XDocument data = new XDocument(); // For the different languages CultureInfo currentCulture = CultureInfo.CurrentCulture; // XML uri string dataUri = string.Empty; // Language selection switch (currentCulture.TwoLetterISOLanguageName) { // Disable French for the first release ////case "fr": //// dataUri = "Data/dataExample.fr-FR.xml"; //// break; case "en": // Configuration: XML source. dataUri = "Data/dataExample.xml"; break; } // By default it is in English if (string.IsNullOrEmpty(dataUri)) { // Configuration: XML source. dataUri = "Data/dataExample.xml"; } data = XDocument.Load(dataUri); var dataCategories = from query in data.Descendants("Category") select new Category((string)query.Element("Name")); var dataItems = from query in data.Descendants("Item") select new Item((string)query.Element("Name"), (int?)query.Element("CategoryId"), false, Visibility.Visible); foreach (var item in dataCategories) { // Add the new category to the context Category cat = new Category(); cat.Name = item.Name; context.Categories.InsertOnSubmit(cat); } foreach (var item in dataItems) { // Add the new item to the context Item it = new Item(); it.Id = item.Id; it.Name = item.Name; it.CategoryId = item.CategoryId; it.IsSelected = item.IsSelected; context.Items.InsertOnSubmit(it); } // Save changes to the database context.SubmitChanges(); } var contextItems = from i in context.Items select i; foreach (Item it in contextItems) { results.Add(it); } } return results; }