private static bool IsMatchedWith(IContractItem original, IContractItem compareTo) { if (original == null || compareTo == null) return false; return original.IsMatchedWith(compareTo); }
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); }
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; }
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; }
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) })); }
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); }
bool IContractItem.IsEquivalentTo(IContractItem node) { return false; }
bool IContractItem.IsMatchedWith(IContractItem item) { return ((IContractItem)this).Name.Equals(item.Name); }
bool IContractItem.IsEquivalentTo(IContractItem node) { var privateNode = node as RoslynSyntaxNode; if (privateNode == null) return false; return _node.IsEquivalentTo(privateNode._node, false); }