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());
}