public ActionResult Edit(Contact contact)
 {
     using (var context = new DatabaseContext())
     {
         if (!ModelState.IsValid) return View(CreateTuple(context, contact));
         try
         {
             context.Entry(contact).State = EntityState.Modified;
             context.SaveChanges();
             return RedirectToAction("WithContacts", "Client", new { id = contact.ClientId });
         }
         catch { return View(CreateTuple(context, contact)); }
     }
 }
 /// <summary>GET action of the CREATE functionality</summary>
 /// <returns>View with new object</returns>
 public ActionResult Create(int clientId)
 {
     using (var context = new DatabaseContext())
     {
         var client = context.Clients
             .Include(x => x.Manager)
             .First(x => x.Id == clientId);
         var contact = new Contact
         {
             ClientId = clientId
         };
         return View(new Tuple<Manager, Client, Contact>(client.Manager, client, contact));
     }
 }
Example #3
0
        /// <summary>Creates POC object from its properties</summary>
        /// <returns>POC object</returns>
        private static Contact ParseEntity(string id, string clientId, string type, string description)
        {
            var contact = new Contact();

            int no;
            if (!int.TryParse(id, out no))
                throw new Exception("Incorrect ID during instantiating of Contact");
            contact.Id = no;

            int clientNo;
            if (!int.TryParse(clientId, out clientNo))
                throw new Exception("Incorrect Client ID during instantiating of Contact with ID = " + contact.Id);
            contact.ClientId = clientNo;

            int kind;
            if (!int.TryParse(type, out kind))
                throw new Exception("Incorrect Type during instantiating of Contact with ID = " + contact.Id);
            switch (kind)
            {
                case 2: contact.Type = ContactType.MobilePhoneLocal; break;
                case 5: contact.Type = ContactType.MobilePhoneInternational; break;
                case 7: contact.Type = ContactType.HomePhone; break;
                case 9: contact.Type = ContactType.WorkingPhone; break;
                case 11: contact.Type = ContactType.PostAddress; break;
                case 15: contact.Type = ContactType.Fax; break;
                case 19: contact.Type = ContactType.Email; break;
                case 23: contact.Type = ContactType.Phone; break;
                case 29: contact.Type = ContactType.Comment; break;
                default:
                    if (kind != 0)
                        throw new Exception("Incorrect Type during instantiating of Contact with ID = " + contact.Id);
                    break;
            }

            contact.Description = WebUtility.HtmlDecode(
                (string.IsNullOrWhiteSpace(description) ? string.Empty : description).Trim());

            return contact;
        }
 /// <summary>Creates view model</summary>
 /// <returns>View model</returns>
 private static Tuple<Manager, Client, Contact> CreateTuple(DatabaseContext context, Contact contact)
 {
     contact.Client = context.Clients
         .Include(x => x.Manager)
         .First(x => x.Id == contact.ClientId);
     return new Tuple<Manager, Client, Contact>(contact.Client.Manager, contact.Client, contact);
 }