private HotelsModels.Hotel ControlsToModel() { var hotel = new HotelsModels.Hotel(); hotel.id = InpHotelID.Text; hotel.name = InpHotelName.Text; hotel.category = InpCategory.Text; hotel.website = InpWebsite.Text; hotel.description = InpDescription.Text; // bookstore.Notes = String.IsNullOrWhiteSpace(InpNote.Text) ? null : InpNote.Text; hotel.facilities = InpFacilities.Text; foreach (var enteredPremise in premises) { var premise = new HotelsModels.Premise() { premise_id = enteredPremise.premise_id, type = enteredPremise.type, price = enteredPremise.price, currency = enteredPremise.currency, furniture = enteredPremise.furniture }; hotel.Premises.Add(premise); } foreach (var enteredOffer in offers) { // bookID от запазените books не трябва да се използва, затова полетата се копират едно по едно var offer = new HotelsModels.Offer() { offer_id = enteredOffer.offer_id, type_offer = enteredOffer.type_offer, descr_offer = enteredOffer.descr_offer, regular_price = enteredOffer.regular_price, currency_regular = enteredOffer.currency_regular, promotional_price = enteredOffer.promotional_price, currency_promotional = enteredOffer.currency_promotional }; hotel.Offers.Add(offer); } foreach (var enteredEmployee in employees) { // bookID от запазените books не трябва да се използва, затова полетата се копират едно по едно var employee = new HotelsModels.Employee() { employee_id = enteredEmployee.employee_id, first_name = enteredEmployee.first_name, last_name = enteredEmployee.last_name, position = enteredEmployee.position, salary = enteredEmployee.salary, salary_currency = enteredEmployee.salary_currency, gender = enteredEmployee.gender, birth_date = enteredEmployee.birth_date }; hotel.Employees.Add(employee); } foreach (var enteredReviews in reviews) { // bookID от запазените books не трябва да се използва, затова полетата се копират едно по едно var review = new HotelsModels.Review() { review_id = enteredReviews.review_id, reviewer = enteredReviews.reviewer, rating = enteredReviews.rating, comment = enteredReviews.comment }; hotel.Reviews.Add(review); } return(hotel); }
private void XmlToDb(XmlNode xmlDocument) { using (var isolatedContext = new HotelsModels.HotelDbContext()) { var hotelXml = xmlDocument.SelectSingleNode("Hotel"); var hotel = new HotelsModels.Hotel(); hotel.id = hotelXml.Attributes["id"].InnerText; hotel.name = hotelXml.Attributes["name"].InnerText; hotel.category = hotelXml.Attributes["category"].InnerText; /* * if (isolatedContext.Hotels.Count(bs => bs.id == hotel.id) != 0) * { * throw new Exception("тoзи хотел (ID " + hotel.id + ") вече е в БД"); * } */ hotel.website = hotelXml.SelectSingleNode("website").InnerText; hotel.description = hotelXml.SelectSingleNode("description").InnerText; hotel.facilities = hotelXml.SelectSingleNode("facilities").InnerText; foreach (XmlNode premiseXml in hotelXml.SelectNodes("premises/premise")) { var premise = new HotelsModels.Premise(); premise.premise_id = premiseXml.Attributes["premise_id"].InnerText; premise.type = premiseXml.SelectSingleNode("type").InnerText; var priceXml = premiseXml.SelectSingleNode("price"); premise.price = Decimal.Parse(priceXml.InnerText, CultureInfo.InvariantCulture); premise.currency = priceXml.Attributes["currency"].InnerText; premise.furniture = premiseXml.SelectSingleNode("furniture").InnerText; hotel.Premises.Add(premise); } foreach (XmlNode offerXml in hotelXml.SelectNodes("offers/offer")) { var offer = new HotelsModels.Offer(); offer.offer_id = offerXml.Attributes["offer_id"].InnerText; offer.type_offer = offerXml.SelectSingleNode("type_offer").InnerText; if (offerXml.SelectSingleNode("descr_offer") != null) { offer.descr_offer = offerXml.SelectSingleNode("descr_offer").InnerText; } var regPriceXml = offerXml.SelectSingleNode("regular_price"); offer.regular_price = Decimal.Parse(regPriceXml.InnerText, CultureInfo.InvariantCulture); offer.currency_regular = regPriceXml.Attributes["currency_regular"].InnerText; var promoPriceXml = offerXml.SelectSingleNode("promotional_price"); offer.promotional_price = Decimal.Parse(promoPriceXml.InnerText, CultureInfo.InvariantCulture); offer.currency_promotional = promoPriceXml.Attributes["currency_promotional"].InnerText; hotel.Offers.Add(offer); } foreach (XmlNode employeeXml in hotelXml.SelectNodes("employees/employee")) { var employee = new HotelsModels.Employee(); employee.employee_id = employeeXml.Attributes["employee_id"].InnerText; employee.first_name = employeeXml.SelectSingleNode("first_name").InnerText; employee.last_name = employeeXml.SelectSingleNode("last_name").InnerText; employee.position = employeeXml.SelectSingleNode("position").InnerText; var salaryXml = employeeXml.SelectSingleNode("salary"); employee.salary = Decimal.Parse(salaryXml.InnerText, CultureInfo.InvariantCulture); employee.salary_currency = salaryXml.Attributes["salary_currency"].InnerText; employee.gender = employeeXml.Attributes["gender"].InnerText; if (employeeXml.SelectSingleNode("birth_date") != null) { employee.birth_date = employeeXml.SelectSingleNode("birth_date").InnerText; } hotel.Employees.Add(employee); } foreach (XmlNode reviewXml in hotelXml.SelectNodes("reviews/review")) { var review = new HotelsModels.Review(); review.review_id = reviewXml.Attributes["review_id"].InnerText; review.reviewer = reviewXml.SelectSingleNode("reviewer").InnerText; review.rating = reviewXml.Attributes["rating"].InnerText; if (reviewXml.SelectSingleNode("comment") != null) { review.comment = reviewXml.SelectSingleNode("comment").InnerText; } hotel.Reviews.Add(review); } isolatedContext.Hotels.Add(hotel); // Записване на всички промени isolatedContext.SaveChanges(); } }