internal Parameters(SetLotAttributesParameters parameters)
 {
     if (parameters == null)
     {
         throw new ArgumentNullException("parameters");
     }
     _parameters = parameters;
 }
Beispiel #2
0
 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);
     }
 }
Beispiel #3
0
        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());
        }