public bool IsCompatibleWith(FluentModelMemberVariables other)
 {
     if (other.FluentMethod == null || this.FluentMethod == null)
     {
         return(true);
     }
     else
     {
         var thisArmUri  = new ARMUri(this.FluentMethod.InnerMethod);
         var otherArmUri = new ARMUri(other.FluentMethod.InnerMethod);
         return(thisArmUri.IsSame(otherArmUri));
     }
 }
        public bool IsCompatibleWith(FluentModelMemberVariables other)
        {
            if (other.FluentMethod == null ||
                this.FluentMethod == null)
            {
                return(true);
            }

            string url1 = other.FluentMethod.InnerMethod.Url;
            string url2 = this.FluentMethod.InnerMethod.Url;

            var itr1 = url1.Split(new char[] { '/' })
                       .Select(p => p)
                       .Where(p => !string.IsNullOrEmpty(p))
                       .GetEnumerator();

            var itr2 = url2.Split(new char[] { '/' })
                       .Select(p => p)
                       .Where(p => !string.IsNullOrEmpty(p))
                       .GetEnumerator();

            while (itr1.MoveNext() && itr2.MoveNext())
            {
                if (itr1.Current.StartsWith("{"))
                {
                    if (itr2.Current.StartsWith("{"))
                    {
                        continue;
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    if (itr1.Current.EqualsIgnoreCase(itr2.Current))
                    {
                        continue;
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            return(itr1.MoveNext() == false &&
                   itr2.MoveNext() == false);
        }