Informedica.GenForm.Mvc2.Controllers.ProductsController.SaveProductSubstance C# (CSharp) Method

SaveProductSubstance() public method

public SaveProductSubstance ( ProductSubstance productSubstance ) : System.Web.Mvc.ActionResult
productSubstance ProductSubstance
return System.Web.Mvc.ActionResult
        public ActionResult SaveProductSubstance(ProductSubstance productSubstance)
        {
            bool success = false;
            string msg = string.Empty;
            ProductSubstance substance = null;

            if (Product.Exists(new Product.ExistCriteria(productSubstance.ProductId)))
            {
                Product product = Product.GetProduct(productSubstance.ProductId);
                if (product.HasSubstance(productSubstance.SubstanceName))
                {
                    substance = product.Substances.GetSubstanceByName(productSubstance.SubstanceName);
                }
                else
                {
                    substance = product.Substances.AddNew();

                }

                if (substance != null)
                {
                    Csla.Data.DataMapper.Map(productSubstance, substance, "ProductId");
                    if (product.IsSavable)
                    {
                        try
                        {
                            product = ImportWizard.PrepareProductSave(product);
                            product = (Product)product.Save();
                            substance = product.Substances.GetSubstanceByName(productSubstance.SubstanceName);
                            success = true;
                        }
                        catch (Exception e)
                        {
                            msg = e.Message;
                        }
                    }
                }
            }

            return this.Direct(new
                {
                    success = success,
                    data = substance,
                    msg = msg
                });
        }