BExIS.Web.Shell.Areas.RPM.Controllers.DataStructureSearchController.copyDataStructure C# (CSharp) Method

copyDataStructure() public method

public copyDataStructure ( long Id, bool isStructured, string Name = "", string Description = "", string cssId = "" ) : System.Web.Mvc.ActionResult
Id long
isStructured bool
Name string
Description string
cssId string
return System.Web.Mvc.ActionResult
        public ActionResult copyDataStructure(long Id, bool isStructured, string Name = "" , string Description = "", string cssId = "")
        {
            Name = Server.UrlDecode(Name);
            Description = Server.UrlDecode(Description);
            DataStructureManager dataStructureManager = new DataStructureManager();

            if (!isStructured)
            {
                UnStructuredDataStructure dataStructure = dataStructureManager.UnStructuredDataStructureRepo.Get(Id);
                if (dataStructure != null)
                {
                    if (Name == "")
                    {
                        Name = dataStructure.Name + " - Copy";
                    }

                    if (Description == "" && dataStructure.Description != null)
                    {
                        Description = dataStructure.Description;
                    }
                    LoggerFactory.LogCustom("Copy Data Structure" + Id);
                    return createDataStructure(0, Name.Trim(), isStructured, Description.Trim(), cssId);
                }
            }
            else
            {
                StructuredDataStructure dataStructure = dataStructureManager.StructuredDataStructureRepo.Get(Id);
                if (dataStructure != null)
                {
                    if (Name == "")
                    {
                        Name = dataStructure.Name + " - Copy";
                    }

                    if (Description == "" && dataStructure.Description != null)
                    {
                        Description = dataStructure.Description;
                    }

                    MessageModel messageModel = storeDataStructure(0, Name.Trim(), isStructured, Description.Trim(), cssId);
                    List<long> order = new List<long>();
                    Variable variable = new Variable();

                    if (!messageModel.hasMessage)
                    {
                        StructuredDataStructure dataStructureCopy = dataStructureManager.StructuredDataStructureRepo.Get(Convert.ToInt64(messageModel.Message));
                        foreach (Variable v in DataStructureIO.getOrderedVariables(dataStructure))
                        {
                            variable = dataStructureManager.AddVariableUsage(dataStructureCopy, v.DataAttribute, v.IsValueOptional, v.Label.Trim(), v.DefaultValue, v.MissingValue, v.Description.Trim(), v.Unit);
                            order.Add(variable.Id);
                        }
                        DataStructureIO.setVariableOrder(dataStructureCopy, order);
                    }
                    LoggerFactory.LogCustom("Copy Data Structure" + Id);
                    return PartialView("_message", messageModel);
                }
            }
            return PartialView("_message", new MessageModel());
        }