Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
            }
        }