public void parseXml(Stream stream) { DateTime now = DateTime.Now; houses = new List <HouseName>(); plants = new List <PlantName>(); dates = new Dictionary <int, DateTemp>(); stream.Position = 0; XDocument xml = XDocument.Load(stream); foreach (XElement el in xml.Root.Element("houses").Elements("house")) { var house = new HouseName { name = el.Attribute("Name").Value }; houses.Add(house); foreach (XElement element in el.Elements()) { DateTemp dateTemp = new DateTemp { dateTime = getDate(element), temperature = getDouble(element, "Weather") }; TimeSpan span = (dateTemp.dateTime - DateTemp.zeroCountDateTime); dateTemp.daysNumber = span.Days; HouseDetail houseDetail = new HouseDetail { localDateTemp = now, userName = getUserName(), daysNumber = dateTemp.daysNumber, consumptionHouse = getDouble(element, "Consumption") }; if (!dates.ContainsKey(span.Days)) { dates.Add(span.Days, dateTemp); } house.listHouseDetails.Add(houseDetail); } } foreach (XElement el in xml.Root.Elements("plants").Elements()) { PlantName plant = new PlantName { name = el.Attribute("Name").Value }; plants.Add(plant); foreach (XElement element in el.Elements()) { TimeSpan span = getDate(element) - DateTemp.zeroCountDateTime; PlantDetail plantDetail = new PlantDetail { localDateTemp = now, userName = getUserName(), daysNumber = span.Days, price = getDouble(element, "Price"), consumptionPlant = getDouble(element, "Consumption") }; plant.listPlantDetails.Add(plantDetail); } } saveToDb(); }
public static void initial(AppDbContent content) { if (!content.houseNames.Any()) { content.houseNames.AddRange(getHouseNames.Select(h => h.Value)); } if (!content.plantNames.Any()) { content.plantNames.AddRange(getPlantNames.Select(p => p.Value)); } DateTemp dateTemp = new DateTemp { daysNumber = 16435, dateTime = DateTime.ParseExact("2014-12-31T00:00:00", "yyyy-MM-ddTHH:mm:ss", System.Globalization.CultureInfo.InvariantCulture), temperature = -9 }; if (!content.dateTemps.Any()) { content.dateTemps.AddRange(dateTemp); } if (!content.houseDetails.Any()) { content.houseDetails.AddRange( new HouseDetail { daysNumber = 16435, houseName = getHouseNames["Жилой дом 1"], //localDateTemp = dateTemp, consumptionHouse = 16144 }); } if (!content.plantDetails.Any()) { content.plantDetails.AddRange( new PlantDetail { daysNumber = 16435, plantName = getPlantNames["Кирпичный завод 1"], //localDateTemp = dateTemp, price = 1983.3, consumptionPlant = 1990545.2 }); } content.SaveChanges(); }