Example #1
0
        public IResult <ILotStatInfoReturn> SetLotQualityStatus(ISetLotStatusParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            var parsedParameters = parameters.ToParsedParameters();

            if (!parsedParameters.Success)
            {
                return(parsedParameters.ConvertTo <ILotStatInfoReturn>());
            }

            var result = new SetLotStatusConductor(_lotUnitOfWork).Execute(_timeStamper.CurrentTimeStamp, parsedParameters.ResultingObject);

            if (!result.Success)
            {
                return(result.ConvertTo <ILotStatInfoReturn>());
            }

            _lotUnitOfWork.Commit();

            var synchronizeLotParameters = new SynchronizeLotParameters
            {
                LotKey = parsedParameters.ResultingObject.LotKey,
                OverrideOldContextLotAsCompleted = false
            };

            return(SyncParameters.Using(new SuccessResult <ILotStatInfoReturn>(new LotStatInfoReturn(synchronizeLotParameters)), synchronizeLotParameters));
        }
Example #2
0
        public IResult <ILotStatInfoReturn> SetLotAttributes(ISetLotAttributeParameters parameters)
        {
            var parsedParameters = parameters.ToParsedParameters();

            if (!parsedParameters.Success)
            {
                return(parsedParameters.ConvertTo <ILotStatInfoReturn>());
            }

            var currentTimeStamp    = _timeStamper.CurrentTimeStamp;
            var setAttributesResult = new SetLotAttributesConductor(_lotUnitOfWork).Execute(currentTimeStamp, parsedParameters.ResultingObject);

            if (!setAttributesResult.Success)
            {
                return(setAttributesResult.ConvertTo <ILotStatInfoReturn>());
            }

            #region SetLotStatus to 'Accepted'

#warning Remove if/when 'OverrideOldContextLotAsCompleted' is removed. -RI 6/16/2014

            if (parameters.OverrideOldContextLotAsCompleted)
            {
                var setStatusResult = new SetLotStatusConductor(_lotUnitOfWork).Execute(currentTimeStamp, new SetLotStatusParameters
                {
                    LotKey     = parsedParameters.ResultingObject.LotKey,
                    Parameters = parsedParameters.ResultingObject
                }, true);
                if (!setStatusResult.Success)
                {
                    return(setStatusResult.ConvertTo <ILotStatInfoReturn>());
                }
            }

            #endregion

            _lotUnitOfWork.Commit();

            var syncParameters = new SynchronizeLotParameters
            {
                LotKey = parsedParameters.ResultingObject.LotKey,
                OverrideOldContextLotAsCompleted = parameters.OverrideOldContextLotAsCompleted
            };
            return(SyncParameters.Using(new SuccessResult <ILotStatInfoReturn>(new LotStatInfoReturn(syncParameters)), syncParameters));
        }