コード例 #1
0
ファイル: VersionCompare.cs プロジェクト: run00/Versioning
        private static bool IsMatchedWith(IContractItem original, IContractItem compareTo)
        {
            if (original == null || compareTo == null)
                return false;

            return original.IsMatchedWith(compareTo);
        }
コード例 #2
0
		bool IContractItem.IsMatchedWith(IContractItem item)
		{
			var privateNode = item as RoslynSyntaxNode;
			if (privateNode != null && _node.IsEquivalentTo(privateNode._node, true))
				return true;

			return ((IContractItem)this).Name.Equals(item.Name);
		}
コード例 #3
0
ファイル: ContractChanges.cs プロジェクト: run00/Versioning
        public ContractChanges(IContractItem original, IContractItem comparedTo, IEnumerable<ContractChanges> changes, ContractChangeType changeType)
        {
            Contract.Requires(original != null || comparedTo != null);
            Contract.Requires(changes != null);

            Original = original;
            ComparedTo = comparedTo;
            Changes = changes;
            ChangeType = changeType;
        }
コード例 #4
0
ファイル: ContractChanges.cs プロジェクト: run00/Versioning
        public ContractChanges(IContractItem original, IContractItem comparedTo, ContractChangeType changeType)
        {
            Contract.Requires(original != null || comparedTo != null);
            Contract.Ensures(Changes != null);
            Contract.Ensures(Enumerable.Count(Changes) == 0);

            Original = original;
            ComparedTo = comparedTo;
            Changes = Enumerable.Empty<ContractChanges>();
            ChangeType = changeType;
        }
コード例 #5
0
        internal static IResult <SetContractItemParameters> ToParsedParameters(this IContractItem item)
        {
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }

            if (item.Quantity <= 0)
            {
                return(new InvalidResult <SetContractItemParameters>(null, UserMessages.QuantityNotGreaterThanZero));
            }

            var chileProductKeyResult = KeyParserHelper.ParseResult <IChileProductKey>(item.ChileProductKey);

            if (!chileProductKeyResult.Success)
            {
                return(chileProductKeyResult.ConvertTo((SetContractItemParameters)null));
            }

            var packagingProductKeyResult = KeyParserHelper.ParseResult <IPackagingProductKey>(item.PackagingProductKey);

            if (!packagingProductKeyResult.Success)
            {
                return(packagingProductKeyResult.ConvertTo((SetContractItemParameters)null));
            }

            var treatmentKeyResult = KeyParserHelper.ParseResult <IInventoryTreatmentKey>(item.TreatmentKey);

            if (!treatmentKeyResult.Success)
            {
                return(treatmentKeyResult.ConvertTo((SetContractItemParameters)null));
            }

            return(new SuccessResult <SetContractItemParameters>(new SetContractItemParameters
            {
                ContractItemParameters = item,
                ChileProductKey = new ChileProductKey(chileProductKeyResult.ResultingObject),
                PackagingProductKey = new PackagingProductKey(packagingProductKeyResult.ResultingObject),
                TreatmentKey = new InventoryTreatmentKey(treatmentKeyResult.ResultingObject)
            }));
        }
コード例 #6
0
ファイル: VersionCompare.cs プロジェクト: run00/Versioning
        private static ContractChanges GetContractChanges(IContractItem original, IContractItem compareTo)
        {
            Contract.Ensures(Contract.Result<ContractChanges>() != null);

            if (original == null && compareTo == null)
                throw new InvalidOperationException("Original and Compare to can not both be null.");

            if (original == null)
            {
                if (compareTo != null && compareTo.IsPrivate)
                    return new ContractChanges(original, compareTo, ContractChangeType.Refactor);
                else
                    return new ContractChanges(original, compareTo, ContractChangeType.Enhancement);
            }

            if (compareTo == null)
            {
                if (original != null && original.IsPrivate)
                    return new ContractChanges(original, compareTo, ContractChangeType.Refactor);
                else
                    return new ContractChanges(original, compareTo, ContractChangeType.Breaking);
            }

            if (original.IsCodeBlock)
            {
                if (original.IsEquivalentTo(compareTo))
                    return new ContractChanges(original, compareTo, ContractChangeType.Cosmetic);
                else
                    return new ContractChanges(original, compareTo, ContractChangeType.Refactor);
            }

            if (original.Children.Count() == 0 && compareTo.Children.Count() == 0)
                return new ContractChanges(original, compareTo, ContractChangeType.None);

            var nodeChanges = original.Children.FullOuterJoin(compareTo.Children, (a, b) => IsMatchedWith(a, b), (o, c) => GetContractChanges(o, c));
            var maxChange = nodeChanges.Max(n => n.ChangeType);
            return new ContractChanges(original, compareTo, nodeChanges, maxChange);
        }
コード例 #7
0
ファイル: RoslynType.cs プロジェクト: run00/Versioning.Roslyn
		bool IContractItem.IsEquivalentTo(IContractItem node)
		{
			return false;
		}
コード例 #8
0
ファイル: RoslynType.cs プロジェクト: run00/Versioning.Roslyn
		bool IContractItem.IsMatchedWith(IContractItem item)
		{
			return ((IContractItem)this).Name.Equals(item.Name);
		}
コード例 #9
0
		bool IContractItem.IsEquivalentTo(IContractItem node)
		{
			var privateNode = node as RoslynSyntaxNode;
			if (privateNode == null)
				return false;

			return _node.IsEquivalentTo(privateNode._node, false);
		}