예제 #1
0
        public Exceptional<Boolean> RenameAttributeOfType(GraphDBType myType, String oldName, String newName)
        {
            #region INPUT EXCEPTIONS

            if (myType == null)
            {
                return new Exceptional<Boolean>(new Error_ArgumentNullOrEmpty("myType"));
            }

            if (String.IsNullOrEmpty(oldName))
            {
                return new Exceptional<Boolean>(new Error_ArgumentNullOrEmpty("oldName)"));
            }
            if (String.IsNullOrEmpty(newName))
            {
                return new Exceptional<Boolean>(new Error_ArgumentNullOrEmpty("newName"));
            }

            #endregion

            #region Data

            TypeAttribute typeAttribute = null;

            #endregion

            #region rename attribute of type

            typeAttribute = myType.GetTypeAttributeByName(oldName);

            if (typeAttribute != null)
            {

                Exceptional<Boolean> Result = myType.RenameAttribute(typeAttribute.UUID, newName);

                if (Result.Failed())
                    return new Exceptional<Boolean>(Result);

                var FlushExcept = FlushType(myType);

                if (FlushExcept.Failed())
                {

                    Result = myType.RenameAttribute(typeAttribute.UUID, oldName);

                    if (Result.Failed())
                        return new Exceptional<Boolean>(Result);

                    return new Exceptional<Boolean>(FlushExcept);
                }

            }
            else
            {
                return new Exceptional<Boolean>(new Error_AttributeIsNotDefined(myType.Name, oldName));
            }

            #endregion

            return new Exceptional<Boolean>(true);
        }