Ejemplo n.º 1
0
        public HomeModule()
        {
            Get["/"] = _ => {
                List <Contact> allContacts = Contact.GetAll();
                return(View["index.cshtml", allContacts]);
            };

            Get["/add_contact"] = _ => {
                return(View["new_contact_form.cshtml"]);
            };

            Post["/"] = _ => {
                Contact        newContact  = new Contact(Request.Form["contact-name"]);
                List <Contact> allContacts = Contact.GetAll();
                return(View["index.cshtml", allContacts]);
            };

            Get["/contact/{id}"] = parameters => {
                Dictionary <string, object> model = new Dictionary <string, object>();
                Contact        selectedContact    = Contact.Find(parameters.id);
                List <Address> contactAddresses   = selectedContact.GetAddress();
                List <Number>  contactNumber      = selectedContact.GetNumber();
                model.Add("contact", selectedContact);
                model.Add("address", contactAddresses);
                model.Add("number", contactNumber);
                return(View["contact.cshtml", model]);
            };

            Get["/contact/{id}/address/new"] = parameters => {
                Dictionary <string, object> model = new Dictionary <string, object>();
                Contact        selectedContact    = Contact.Find(parameters.id);
                List <Address> allAddresses       = selectedContact.GetAddress();
                model.Add("contact", selectedContact);
                model.Add("address", allAddresses);
                return(View["new_address_form.cshtml", model]);
            };
            Get["/contact/{id}/number/new"] = parameters => {
                Dictionary <string, object> model = new Dictionary <string, object>();
                Contact       selectedContact     = Contact.Find(parameters.id);
                List <Number> allNumbers          = selectedContact.GetNumber();
                model.Add("contact", selectedContact);
                model.Add("number", allNumbers);
                return(View["new_number_form.cshtml", model]);
            };

            //       Post["/contact"] = _ => {
            //         Dictionary<string, object> model = new Dictionary<string, object>();
            //         Contact selectedContact = Contact.Find(Request.Form["contact-id"]);
            //         List<Address> contactAddress = selectedContact.GetAddress();
            //         string addressEntered = Request.Form["contact-address"];
            //         Address newAddress = new Address(addressEntered);
            //         contactAddress.Add(newAddress);
            //         model.Add("contact", selectedContact);
            //         model.Add("address", contactAddress);
            //         return View["contact.cshtml", model];
            //       };

            //       Get["/contact/numbers"] = _ => {
            //         List<Number> allNumbers = Number.GetAll();
            //         return View["contact_number.cshtml", allNumbers];
            //       };
            Post["/contact/"] = _ => {
                Dictionary <string, object> model = new Dictionary <string, object>();
                Contact        selectedContact    = Contact.Find(Request.Form["contact-id"]);
                List <Address> contactAddress     = selectedContact.GetAddress();
                List <Number>  contactNumber      = selectedContact.GetNumber();
                string         addressEntered     = Request.Form["contact-address"];
                string         numberEntered      = Request.Form["contact-number"];
                if (addressEntered != null)
                {
                    Address newAddress = new Address(addressEntered);
                    contactAddress.Add(newAddress);
                }
                if (numberEntered != null)
                {
                    Number newNumber = new Number(numberEntered);
                    contactNumber.Add(newNumber);
                }
                model.Add("contact", selectedContact);
                model.Add("address", contactAddress);
                model.Add("number", contactNumber);
                return(View["contact.cshtml", model]);
            };
        }