public ActionResult Save(EditSupplierViewModel model, string command)
 {
     if (command.ToLower() == "save")
     {
         // Validate everything before saving - we don't want to save a supplier and
         // then find we can't save their address!
         var modelError = SupplierService.ValidateSupplierModel(model.Supplier);
         if (modelError.IsError)
         {
             prepareEditModel(model, model.Supplier.Id);
             model.SetErrorOnField(ErrorIcon.Error,
                                   modelError.Message,
                                   "Supplier_" + modelError.FieldName);
             return(View("Edit", model));
         }
         else
         {
             modelError = SupplierService.ValidateAddressModel(model.SupplierAddress);
             if (modelError.IsError)
             {
                 prepareEditModel(model, model.Supplier.Id);
                 model.SetErrorOnField(ErrorIcon.Error,
                                       modelError.Message,
                                       "SupplierAddress_" + modelError.FieldName);
                 return(View("Edit", model));
             }
             else
             {
                 modelError = SupplierService.InsertOrUpdateSupplier(model.Supplier, CurrentUser, model.LGS);
                 if (modelError.IsError)
                 {
                     prepareEditModel(model, model.Supplier.Id);
                     model.SetErrorOnField(ErrorIcon.Error,
                                           modelError.Message,
                                           "Supplier_" + modelError.FieldName);
                     return(View("Edit", model));
                 }
                 else
                 {
                     model.SupplierAddress.SupplierId = model.Supplier.Id;
                     modelError = SupplierService.InsertOrUpdateSupplierAddress(model.SupplierAddress, CurrentUser);
                     if (modelError.IsError)
                     {
                         prepareEditModel(model, model.Supplier.Id);
                         model.SetErrorOnField(ErrorIcon.Error,
                                               modelError.Message,
                                               "SupplierAddress_" + modelError.FieldName);
                         return(View("Edit", model));
                     }
                     else
                     {
                         return(RedirectToAction("Suppliers"));
                     }
                 }
             }
         }
     }
     else
     {
         return(RedirectToAction("Suppliers"));
     }
 }