public ActionResult Index(IndexStoreDetailsViewModel requestedViewModel) { List<int> openingHours = new List<int>(); ValidateOpeningHours(requestedViewModel.OpeningHour, "OpeningHour", ref openingHours); List<int> closingHours = new List<int>(); ValidateOpeningHours(requestedViewModel.CloseingHour, "CloseingHour", ref closingHours); if (ModelState.IsValid) { StoreDetails storeDetails = new StoreDetails(); storeDetails.Name = requestedViewModel.Name; storeDetails.Address = new StoreDetails.AddressInformation { Number = requestedViewModel.Address.Number, Postal = requestedViewModel.Address.Postal, Road = requestedViewModel.Address.Road, Town = requestedViewModel.Address.Town }; storeDetails.Contact = new StoreDetails.ContactInformation { Email = requestedViewModel.Contact.Email, Fax = requestedViewModel.Contact.Fax, Telephone = requestedViewModel.Contact.Telephone }; for (int i = 0; i < 7; i++) { storeDetails.OpeningHours.Add(new StoreDetails.OpeningHour { Day = i, Closeing = closingHours.ElementAt(i), Opening = openingHours.ElementAt(i) }); } StoreDetailService.Update(storeDetails); Messages.Add("Gemt", "Informationerne er blevet gemt! Bemærk at der kan gå op til 1 time før du kan se dem på siden pga. caching.", MessageType.Success); } else { Messages.Add("Ikke korrekt udfyldt", "Alle informationer er ikke udfyldt korrekt, så data'erne blev ikke gemt.. ", MessageType.Error); requestedViewModel.StoreDetails = StoreDetailService.GetStoreDetails(); return View(requestedViewModel); } return RedirectToAction("Index"); }
public StoreDetails GetStoreDetails() { StoreDetails storeDetails = new StoreDetails(); XmlNode rootNode = Document.DocumentElement; storeDetails.Name = rootNode.SelectSingleNode("name").InnerText; MapAddressInformation(rootNode.SelectSingleNode("address"), ref storeDetails); MapContactInformation(rootNode.SelectSingleNode("contact"), ref storeDetails); MapOpeningHours(rootNode.SelectSingleNode("openinghours"), ref storeDetails); return storeDetails; }
public void Update(StoreDetails storeDetails) { //Condition.Requires(storeDetails).IsNotNull(); //Condition.Requires(storeDetails.Name).IsNotNullOrWhiteSpace(); //Condition.Requires(storeDetails.OpeningHours).IsNotNull().HasLength(7); //Condition.Requires(storeDetails.Contact).IsNotNull(); //Condition.Requires(storeDetails.Contact.Email).IsNotNullOrWhiteSpace(); //Condition.Requires(storeDetails.Contact.Telephone).IsNotNullOrWhiteSpace(); //Condition.Requires(storeDetails.Address).IsNotNull(); //Condition.Requires(storeDetails.Address.Town).IsNotNullOrWhiteSpace(); //Condition.Requires(storeDetails.Address.Postal).IsInRange(0, 9999); //Condition.Requires(storeDetails.Address.Number).IsGreaterThan(0); StoreDetailsRepository.Update(storeDetails); }
public void Update(StoreDetails storeDetails) { StringBuilder builder = new StringBuilder(); XmlWriter writer = XmlWriter.Create(builder); writer.WriteStartElement("root"); { writer.WriteStartElement("name"); writer.WriteString(storeDetails.Name); writer.WriteEndElement(); writer.WriteStartElement("address"); { writer.WriteStartElement("road"); writer.WriteString(storeDetails.Address.Road); writer.WriteEndElement(); writer.WriteStartElement("town"); writer.WriteString(storeDetails.Address.Town); writer.WriteEndElement(); writer.WriteStartElement("postal"); writer.WriteString(storeDetails.Address.Postal.ToString()); writer.WriteEndElement(); writer.WriteStartElement("number"); writer.WriteString(storeDetails.Address.Number.ToString()); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteStartElement("contact"); { writer.WriteStartElement("telephone"); writer.WriteString(storeDetails.Contact.Telephone); writer.WriteEndElement(); writer.WriteStartElement("fax"); writer.WriteString(storeDetails.Contact.Fax); writer.WriteEndElement(); writer.WriteStartElement("email"); writer.WriteString(storeDetails.Contact.Email); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteStartElement("openinghours"); { foreach (var item in storeDetails.OpeningHours) { writer.WriteStartElement("openinghour"); writer.WriteAttributeString("day", item.Day.ToString()); writer.WriteAttributeString("opening", item.Opening.ToString()); writer.WriteAttributeString("closeing", item.Closeing.ToString()); writer.WriteEndElement(); } } writer.WriteEndElement(); } writer.WriteEndElement(); writer.Flush(); writer.Close(); string xml = builder.ToString(); Document.LoadXml(xml); Document.Save(XmlLocation); }
private void MapOpeningHours(XmlNode node, ref StoreDetails storeDetails) { storeDetails.OpeningHours = new List<StoreDetails.OpeningHour>(); foreach (XmlNode n in node.ChildNodes) { if (!n.Name.Equals("openinghour")) continue; storeDetails.OpeningHours.Add(new StoreDetails.OpeningHour { Day = int.Parse(n.Attributes["day"].InnerText), Closeing = int.Parse(n.Attributes["closeing"].InnerText), Opening = int.Parse(n.Attributes["opening"].InnerText) }); } }
private void MapContactInformation(XmlNode node, ref StoreDetails storeDetails) { storeDetails.Contact = new StoreDetails.ContactInformation { Email = node.SelectSingleNode("email").InnerText, Fax = node.SelectSingleNode("fax").InnerText, Telephone = node.SelectSingleNode("telephone").InnerText }; }
private void MapAddressInformation(XmlNode node, ref StoreDetails storeDetails) { storeDetails.Address = new StoreDetails.AddressInformation { Number = int.Parse(node.SelectSingleNode("number").InnerText), Postal = int.Parse(node.SelectSingleNode("postal").InnerText), Road = node.SelectSingleNode("road").InnerText, Town = node.SelectSingleNode("town").InnerText }; }