public ActionResult EditAddress(Guid rowguid)
 {
     var address = new AddressViewModel();
     var customeraddress = repository.CustomerAddresses.SingleOrDefault(x => x.rowguid == rowguid);
     if (customeraddress == null) return RedirectToAction("Addresses");
     address.AddressType = customeraddress.AddressType;
     address.Address = customeraddress.Address;
     address.rowguid = rowguid;
     return View(address);
 }
 public ActionResult EditAddress(AddressViewModel model)
 {
     if (ModelState.IsValid)
     {
         var address = repository.Addresses.SingleOrDefault(x => x.AddressID == model.Address.AddressID) ?? model.Address;
         if (address.CustomerAddresses == null)
         {
             var customer = repository.Customers.SingleOrDefault(x => x.EmailAddress == this.HttpContext.User.Identity.Name);//x.CustomerID == 29559);  //EmailAddress == this.HttpContext.User.Identity.Name
             if (customer == null) return RedirectToAction("LogOn", "Account");
             model.Address.CustomerAddresses = new Collection<CustomerAddress>();
             model.Address.CustomerAddresses.Add(new CustomerAddress()
                                                     {
                                                         AddressID = model.Address.AddressID,
                                                         CustomerID = customer.CustomerID,
                                                         AddressType = model.AddressType
                                                     });
         }
         else
         {
             var customeraddress = address.CustomerAddresses.SingleOrDefault(x => x.rowguid == model.rowguid);
             if (customeraddress !=null) customeraddress.AddressType = model.AddressType;
             repository.Save(customeraddress);
         }
         repository.Save(model.Address);
         return RedirectToAction("Addresses");
     }
     return View(model);
 }