internal Parameters(SetLotAttributesParameters parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } _parameters = parameters; }
internal Parameters(SetLotAttributesParameters parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } _parameters = parameters; if (_parameters.Lot.ChileLot != null) { ProductAttributeRanges.AddRange(_parameters.Lot.ChileLot.ChileProduct.ProductAttributeRanges); } }
internal IResult Execute(SetLotAttributesParameters parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } _parameters = new Parameters(parameters); var unaccountedAttributes = _parameters.Lot.Attributes.ToList(); foreach (var newAttribute in parameters.NewAttributes) { if (newAttribute.Value.AttributeInfo == null) { var result = RemoveLotAttributeIfExists(newAttribute.Key, newAttribute.Value, ref unaccountedAttributes); if (!result.Success) { return(result); } } else { var result = UpdateOrCreateLotAttribute(parameters.Lot, newAttribute.Key, newAttribute.Value, ref unaccountedAttributes); if (!result.Success) { return(result); } } } if (unaccountedAttributes.Any()) { return(new InvalidResult(string.Format(UserMessages.NotAllLotAttributesAccountedFor, parameters.Lot.ToLotKey()))); } return(new SuccessResult()); }