/// <summary> /// Executes the removal of certain myAttributes. /// <seealso cref=" AAlterTypeCommand"/> /// </summary> public override Exceptional Execute(DBContext myDBContext, GraphDBType myGraphDBType) { Exceptional result = new Exceptional(); foreach (String aAttributeName in _ListOfAttributes) { var attr = myGraphDBType.GetTypeAttributeByName(aAttributeName); if (attr != null) { var idxs = new List<Indices.AAttributeIndex>(myGraphDBType.GetAttributeIndices(myDBContext, attr.UUID)); foreach (var item in idxs) { var remIdxResult = myGraphDBType.RemoveIndex(item.IndexName, item.IndexEdition, myDBContext); if (remIdxResult.Failed()) { result.PushIExceptional(remIdxResult); } } } else { result.PushIError(new Error_AttributeIsNotDefined(aAttributeName)); return result; } //Hack: remove myAttributes in DBObjects var aTempResult = myDBContext.DBTypeManager.RemoveAttributeFromType(myGraphDBType.Name, aAttributeName, myDBContext.DBTypeManager); if (aTempResult.Failed()) { result.PushIExceptional(aTempResult); return result; } } return result; }