public ActionResult AddMetadataAttributeUsage(int id, int parentid, int number, int parentModelNumber, int parentStepId)
{
TaskManager = (CreateTaskmanager)Session["CreateDatasetTaskmanager"];
long metadataStructureId = Convert.ToInt64(TaskManager.Bus[CreateTaskmanager.METADATASTRUCTURE_ID]);
List<StepModelHelper> list = (List<StepModelHelper>)TaskManager.Bus[CreateTaskmanager.METADATA_STEP_MODEL_HELPER];
StepModelHelper stepModelHelperParent = list.Where(s => s.StepId.Equals(parentStepId)).FirstOrDefault();
BaseUsage parentUsage = LoadUsage(stepModelHelperParent.Usage);
int pNumber = stepModelHelperParent.Number;
BaseUsage metadataAttributeUsage = UsageHelper.GetChildren(parentUsage).Where(u => u.Id.Equals(id)).FirstOrDefault();
//BaseUsage metadataAttributeUsage = UsageHelper.GetSimpleUsageById(parentUsage, id);
MetadataAttributeModel modelAttribute = MetadataAttributeModel.Convert(metadataAttributeUsage, parentUsage, metadataStructureId, parentModelNumber, stepModelHelperParent.StepId);
modelAttribute.Number = ++number;
AbstractMetadataStepModel model = stepModelHelperParent.Model;
Insert(modelAttribute, stepModelHelperParent, number);
UpdateChildrens(stepModelHelperParent, modelAttribute.Source.Id);
//addtoxml
AddAttributeToXml(parentUsage, parentModelNumber, metadataAttributeUsage, number, stepModelHelperParent.XPath);
model.ConvertInstance((XDocument)TaskManager.Bus[CreateTaskmanager.METADATA_XML], stepModelHelperParent.XPath + "//" + metadataAttributeUsage.Label.Replace(" ", string.Empty));
if (model != null)
{
if (model is MetadataPackageModel)
{
return PartialView("_metadataPackageUsageView", stepModelHelperParent);
}
if (model is MetadataCompoundAttributeModel)
{
return PartialView("_metadataCompoundAttributeUsageView", stepModelHelperParent);
}
}
return null;
}