public ActionResult RemoveMetadataAttributeUsage(object value, int id, int parentid, int number, int parentModelNumber, int parentStepId)
{
TaskManager = (CreateTaskmanager)Session["CreateDatasetTaskmanager"];
List<StepModelHelper> list = (List<StepModelHelper>)TaskManager.Bus[CreateTaskmanager.METADATA_STEP_MODEL_HELPER];
StepModelHelper stepModelHelperParent = list.Where(s => s.StepId.Equals(parentStepId)).FirstOrDefault();
//find the right element in the list
MetadataAttributeModel removeAttributeModel = stepModelHelperParent.Model.MetadataAttributeModels.Where(m => m.Source.Id.Equals(id) && m.Number.Equals(number)).First();
//remove attribute
stepModelHelperParent.Model.MetadataAttributeModels.Remove(removeAttributeModel);
//update childrenList
UpdateChildrens(stepModelHelperParent, id);
AbstractMetadataStepModel model = stepModelHelperParent.Model;
BaseUsage parentUsage = stepModelHelperParent.Usage;
BaseUsage attrUsage = UsageHelper.GetChildren(parentUsage).Where(u => u.Id.Equals(id)).FirstOrDefault();
//remove from xml
RemoveAttributeToXml(stepModelHelperParent.Usage, stepModelHelperParent.Number, attrUsage, number, UsageHelper.GetNameOfType(attrUsage), stepModelHelperParent.XPath);
if (model != null)
{
if (model is MetadataPackageModel)
{
return PartialView("_metadataPackageUsageView", stepModelHelperParent);
}
if (model is MetadataCompoundAttributeModel)
{
return PartialView("_metadataCompoundAttributeUsageView", stepModelHelperParent);
}
}
return null;
}