BExIS.Web.Shell.Areas.RPM.Controllers.UnitController.editUnit C# (CSharp) Method

editUnit() public method

public editUnit ( EditUnitModel Model, string measurementSystem, long checkedRecords ) : System.Web.Mvc.ActionResult
Model EditUnitModel
measurementSystem string
checkedRecords long
return System.Web.Mvc.ActionResult
        public ActionResult editUnit(EditUnitModel Model, string measurementSystem, long[] checkedRecords)
        {
            ViewBag.Title = PresentationModel.GetViewTitleForTenant( "Manage Units", this.Session.GetTenant());

            UnitManager unitManager = new UnitManager();

            Model.Unit.Name = cutSpaces(Model.Unit.Name);
            Model.Unit.Abbreviation = cutSpaces(Model.Unit.Abbreviation);
            Model.Unit.Description = cutSpaces(Model.Unit.Description);
            Model.Unit.Dimension.Name = cutSpaces(Model.Unit.Dimension.Name);
            Model.Unit.Dimension.Specification = cutSpaces(Model.Unit.Dimension.Specification);

            if (Model.Unit.Id == 0)
            {
                if (unitValidation(Model.Unit, checkedRecords))
                {
                    foreach (MeasurementSystem msCheck in Enum.GetValues(typeof(MeasurementSystem)))
                    {
                        if (msCheck.ToString().Equals(measurementSystem))
                        {
                            Model.Unit.MeasurementSystem = msCheck;
                        }
                    }
                    if (Model.Unit.Dimension.Id != 0)
                        Model.Unit.Dimension = unitManager.DimensionRepo.Get(Model.Unit.Dimension.Id);
                    else
                    {
                        if (!String.IsNullOrEmpty(Model.Unit.Dimension.Name))
                            Model.Unit.Dimension.Name = "no Name";
                        Model.Unit.Dimension = unitManager.Create(Model.Unit.Dimension.Name, Model.Unit.Dimension.Name, Model.Unit.Dimension.Specification);
                    }
                    Model.Unit = unitManager.Create(Model.Unit.Name, Model.Unit.Abbreviation, Model.Unit.Description, Model.Unit.Dimension, Model.Unit.MeasurementSystem);

                    updataAssociatedDataType(Model.Unit, checkedRecords);
                }
                else
                {
                    Session["Window"] = true;

                    return View("UnitManager", new UnitManagerModel());
                }
            }
            else
            {
                if (unitValidation(Model.Unit, checkedRecords))
                {
                    Unit unit = unitManager.Repo.Get(Model.Unit.Id);

                    if (!(unit.DataContainers.Count() > 0))
                    {
                        unit.Name = Model.Unit.Name;
                        unit.Description = Model.Unit.Description;
                        unit.Abbreviation = Model.Unit.Abbreviation;
                        foreach (MeasurementSystem msCheck in Enum.GetValues(typeof(MeasurementSystem)))
                        {
                            if (msCheck.ToString().Equals(measurementSystem))
                            {
                                unit.MeasurementSystem = msCheck;
                            }
                        }

                        if (Model.Unit.Dimension.Id != 0)
                            unit.Dimension = unitManager.DimensionRepo.Get(Model.Unit.Dimension.Id);
                        else
                        {
                            if (!String.IsNullOrEmpty(unit.Dimension.Name))
                                unit.Dimension.Name = "no Name";
                            unit.Dimension = unitManager.Create(Model.Unit.Dimension.Name, Model.Unit.Dimension.Name, Model.Unit.Dimension.Specification);
                        }
                        unit = unitManager.Update(unit);
                        List<long> DataTypelIdList = new List<long>();

                        updataAssociatedDataType(unit, checkedRecords);
                    }
                }
                else
                {
                    Session["Window"] = true;
                    return View("UnitManager", new UnitManagerModel(Model.Unit.Id));
                }
            }

            Session["Window"] = false;
            Session["checked"] = null;
            return RedirectToAction("UnitManager");
        }