Пример #1
0
        public virtual InOutStateMergePatchedDto ToInOutStateMergePatchedDto(IInOutStateMergePatched e)
        {
            var dto = new InOutStateMergePatchedDto();

            dto.InOutEventId                            = e.InOutEventId;
            dto.CreatedAt                               = e.CreatedAt;
            dto.CreatedBy                               = e.CreatedBy;
            dto.CommandId                               = e.CommandId;
            dto.DocumentStatusId                        = e.DocumentStatusId;
            dto.Posted                                  = e.Posted;
            dto.Processed                               = e.Processed;
            dto.Processing                              = e.Processing;
            dto.DocumentTypeId                          = e.DocumentTypeId;
            dto.Description                             = e.Description;
            dto.OrderId                                 = e.OrderId;
            dto.DateOrdered                             = e.DateOrdered;
            dto.IsPrinted                               = e.IsPrinted;
            dto.MovementTypeId                          = e.MovementTypeId;
            dto.MovementDate                            = e.MovementDate;
            dto.BusinessPartnerId                       = e.BusinessPartnerId;
            dto.WarehouseId                             = e.WarehouseId;
            dto.POReference                             = e.POReference;
            dto.FreightAmount                           = e.FreightAmount;
            dto.ShipperId                               = e.ShipperId;
            dto.ChargeAmount                            = e.ChargeAmount;
            dto.DatePrinted                             = e.DatePrinted;
            dto.CreatedFrom                             = e.CreatedFrom;
            dto.SalesRepresentativeId                   = e.SalesRepresentativeId;
            dto.NumberOfPackages                        = e.NumberOfPackages;
            dto.PickDate                                = e.PickDate;
            dto.ShipDate                                = e.ShipDate;
            dto.TrackingNumber                          = e.TrackingNumber;
            dto.DateReceived                            = e.DateReceived;
            dto.IsInTransit                             = e.IsInTransit;
            dto.IsApproved                              = e.IsApproved;
            dto.IsInDispute                             = e.IsInDispute;
            dto.RmaDocumentNumber                       = e.RmaDocumentNumber;
            dto.ReversalDocumentNumber                  = e.ReversalDocumentNumber;
            dto.Active                                  = e.Active;
            dto.IsPropertyDocumentStatusIdRemoved       = e.IsPropertyDocumentStatusIdRemoved;
            dto.IsPropertyPostedRemoved                 = e.IsPropertyPostedRemoved;
            dto.IsPropertyProcessedRemoved              = e.IsPropertyProcessedRemoved;
            dto.IsPropertyProcessingRemoved             = e.IsPropertyProcessingRemoved;
            dto.IsPropertyDocumentTypeIdRemoved         = e.IsPropertyDocumentTypeIdRemoved;
            dto.IsPropertyDescriptionRemoved            = e.IsPropertyDescriptionRemoved;
            dto.IsPropertyOrderIdRemoved                = e.IsPropertyOrderIdRemoved;
            dto.IsPropertyDateOrderedRemoved            = e.IsPropertyDateOrderedRemoved;
            dto.IsPropertyIsPrintedRemoved              = e.IsPropertyIsPrintedRemoved;
            dto.IsPropertyMovementTypeIdRemoved         = e.IsPropertyMovementTypeIdRemoved;
            dto.IsPropertyMovementDateRemoved           = e.IsPropertyMovementDateRemoved;
            dto.IsPropertyBusinessPartnerIdRemoved      = e.IsPropertyBusinessPartnerIdRemoved;
            dto.IsPropertyWarehouseIdRemoved            = e.IsPropertyWarehouseIdRemoved;
            dto.IsPropertyPOReferenceRemoved            = e.IsPropertyPOReferenceRemoved;
            dto.IsPropertyFreightAmountRemoved          = e.IsPropertyFreightAmountRemoved;
            dto.IsPropertyShipperIdRemoved              = e.IsPropertyShipperIdRemoved;
            dto.IsPropertyChargeAmountRemoved           = e.IsPropertyChargeAmountRemoved;
            dto.IsPropertyDatePrintedRemoved            = e.IsPropertyDatePrintedRemoved;
            dto.IsPropertyCreatedFromRemoved            = e.IsPropertyCreatedFromRemoved;
            dto.IsPropertySalesRepresentativeIdRemoved  = e.IsPropertySalesRepresentativeIdRemoved;
            dto.IsPropertyNumberOfPackagesRemoved       = e.IsPropertyNumberOfPackagesRemoved;
            dto.IsPropertyPickDateRemoved               = e.IsPropertyPickDateRemoved;
            dto.IsPropertyShipDateRemoved               = e.IsPropertyShipDateRemoved;
            dto.IsPropertyTrackingNumberRemoved         = e.IsPropertyTrackingNumberRemoved;
            dto.IsPropertyDateReceivedRemoved           = e.IsPropertyDateReceivedRemoved;
            dto.IsPropertyIsInTransitRemoved            = e.IsPropertyIsInTransitRemoved;
            dto.IsPropertyIsApprovedRemoved             = e.IsPropertyIsApprovedRemoved;
            dto.IsPropertyIsInDisputeRemoved            = e.IsPropertyIsInDisputeRemoved;
            dto.IsPropertyRmaDocumentNumberRemoved      = e.IsPropertyRmaDocumentNumberRemoved;
            dto.IsPropertyReversalDocumentNumberRemoved = e.IsPropertyReversalDocumentNumberRemoved;
            dto.IsPropertyActiveRemoved                 = e.IsPropertyActiveRemoved;
            var inOutImageEvents = new List <InOutImageStateCreatedOrMergePatchedOrRemovedDto>();

            foreach (var ee in e.InOutImageEvents)
            {
                InOutImageStateCreatedOrMergePatchedOrRemovedDto eeDto = InOutImageStateEventDtoConverter.ToInOutImageStateEventDto(ee);
                inOutImageEvents.Add(eeDto);
            }
            dto.InOutImageEvents = inOutImageEvents.ToArray();

            var inOutLineEvents = new List <InOutLineStateCreatedOrMergePatchedOrRemovedDto>();

            foreach (var ee in e.InOutLineEvents)
            {
                InOutLineStateCreatedOrMergePatchedOrRemovedDto eeDto = InOutLineStateEventDtoConverter.ToInOutLineStateEventDto(ee);
                inOutLineEvents.Add(eeDto);
            }
            dto.InOutLineEvents = inOutLineEvents.ToArray();


            return(dto);
        }
Пример #2
0
        public virtual void When(IInOutStateMergePatched e)
        {
            ThrowOnWrongEvent(e);

            if (e.IsSOTransaction == null)
            {
                if (e.IsPropertyIsSOTransactionRemoved)
                {
                    this.IsSOTransaction = default(bool);
                }
            }
            else
            {
                this.IsSOTransaction = (e.IsSOTransaction != null && e.IsSOTransaction.HasValue) ? e.IsSOTransaction.Value : default(bool);
            }

            if (e.DocumentStatus == null)
            {
                if (e.IsPropertyDocumentStatusRemoved)
                {
                    this.DocumentStatus = default(string);
                }
            }
            else
            {
                this.DocumentStatus = e.DocumentStatus;
            }

            if (e.Posted == null)
            {
                if (e.IsPropertyPostedRemoved)
                {
                    this.Posted = default(bool);
                }
            }
            else
            {
                this.Posted = (e.Posted != null && e.Posted.HasValue) ? e.Posted.Value : default(bool);
            }

            if (e.Processing == null)
            {
                if (e.IsPropertyProcessingRemoved)
                {
                    this.Processing = default(bool);
                }
            }
            else
            {
                this.Processing = (e.Processing != null && e.Processing.HasValue) ? e.Processing.Value : default(bool);
            }

            if (e.Processed == null)
            {
                if (e.IsPropertyProcessedRemoved)
                {
                    this.Processed = default(bool);
                }
            }
            else
            {
                this.Processed = (e.Processed != null && e.Processed.HasValue) ? e.Processed.Value : default(bool);
            }

            if (e.DocumentType == null)
            {
                if (e.IsPropertyDocumentTypeRemoved)
                {
                    this.DocumentType = default(int);
                }
            }
            else
            {
                this.DocumentType = (e.DocumentType != null && e.DocumentType.HasValue) ? e.DocumentType.Value : default(int);
            }

            if (e.Description == null)
            {
                if (e.IsPropertyDescriptionRemoved)
                {
                    this.Description = default(string);
                }
            }
            else
            {
                this.Description = e.Description;
            }

            if (e.OrderNumber == null)
            {
                if (e.IsPropertyOrderNumberRemoved)
                {
                    this.OrderNumber = default(string);
                }
            }
            else
            {
                this.OrderNumber = e.OrderNumber;
            }

            if (e.DateOrdered == null)
            {
                if (e.IsPropertyDateOrderedRemoved)
                {
                    this.DateOrdered = default(DateTime?);
                }
            }
            else
            {
                this.DateOrdered = e.DateOrdered;
            }

            if (e.IsPrinted == null)
            {
                if (e.IsPropertyIsPrintedRemoved)
                {
                    this.IsPrinted = default(bool);
                }
            }
            else
            {
                this.IsPrinted = (e.IsPrinted != null && e.IsPrinted.HasValue) ? e.IsPrinted.Value : default(bool);
            }

            if (e.MovementType == null)
            {
                if (e.IsPropertyMovementTypeRemoved)
                {
                    this.MovementType = default(string);
                }
            }
            else
            {
                this.MovementType = e.MovementType;
            }

            if (e.MovementDate == null)
            {
                if (e.IsPropertyMovementDateRemoved)
                {
                    this.MovementDate = default(DateTime?);
                }
            }
            else
            {
                this.MovementDate = e.MovementDate;
            }

            if (e.BusinessPartnerId == null)
            {
                if (e.IsPropertyBusinessPartnerIdRemoved)
                {
                    this.BusinessPartnerId = default(string);
                }
            }
            else
            {
                this.BusinessPartnerId = e.BusinessPartnerId;
            }

            if (e.WarehouseId == null)
            {
                if (e.IsPropertyWarehouseIdRemoved)
                {
                    this.WarehouseId = default(string);
                }
            }
            else
            {
                this.WarehouseId = e.WarehouseId;
            }

            if (e.POReference == null)
            {
                if (e.IsPropertyPOReferenceRemoved)
                {
                    this.POReference = default(string);
                }
            }
            else
            {
                this.POReference = e.POReference;
            }

            if (e.FreightAmount == null)
            {
                if (e.IsPropertyFreightAmountRemoved)
                {
                    this.FreightAmount = default(Money);
                }
            }
            else
            {
                this.FreightAmount = (e.FreightAmount != null && e.FreightAmount.HasValue) ? e.FreightAmount.Value : default(Money);
            }

            if (e.ShipperId == null)
            {
                if (e.IsPropertyShipperIdRemoved)
                {
                    this.ShipperId = default(string);
                }
            }
            else
            {
                this.ShipperId = e.ShipperId;
            }

            if (e.ChargeAmount == null)
            {
                if (e.IsPropertyChargeAmountRemoved)
                {
                    this.ChargeAmount = default(Money);
                }
            }
            else
            {
                this.ChargeAmount = (e.ChargeAmount != null && e.ChargeAmount.HasValue) ? e.ChargeAmount.Value : default(Money);
            }

            if (e.DatePrinted == null)
            {
                if (e.IsPropertyDatePrintedRemoved)
                {
                    this.DatePrinted = default(DateTime?);
                }
            }
            else
            {
                this.DatePrinted = e.DatePrinted;
            }

            if (e.SalesRepresentative == null)
            {
                if (e.IsPropertySalesRepresentativeRemoved)
                {
                    this.SalesRepresentative = default(string);
                }
            }
            else
            {
                this.SalesRepresentative = e.SalesRepresentative;
            }

            if (e.NumberOfPackages == null)
            {
                if (e.IsPropertyNumberOfPackagesRemoved)
                {
                    this.NumberOfPackages = default(int);
                }
            }
            else
            {
                this.NumberOfPackages = (e.NumberOfPackages != null && e.NumberOfPackages.HasValue) ? e.NumberOfPackages.Value : default(int);
            }

            if (e.PickDate == null)
            {
                if (e.IsPropertyPickDateRemoved)
                {
                    this.PickDate = default(DateTime?);
                }
            }
            else
            {
                this.PickDate = e.PickDate;
            }

            if (e.ShipDate == null)
            {
                if (e.IsPropertyShipDateRemoved)
                {
                    this.ShipDate = default(DateTime?);
                }
            }
            else
            {
                this.ShipDate = e.ShipDate;
            }

            if (e.TrackingNumber == null)
            {
                if (e.IsPropertyTrackingNumberRemoved)
                {
                    this.TrackingNumber = default(string);
                }
            }
            else
            {
                this.TrackingNumber = e.TrackingNumber;
            }

            if (e.DateReceived == null)
            {
                if (e.IsPropertyDateReceivedRemoved)
                {
                    this.DateReceived = default(DateTime?);
                }
            }
            else
            {
                this.DateReceived = e.DateReceived;
            }

            if (e.IsInTransit == null)
            {
                if (e.IsPropertyIsInTransitRemoved)
                {
                    this.IsInTransit = default(bool);
                }
            }
            else
            {
                this.IsInTransit = (e.IsInTransit != null && e.IsInTransit.HasValue) ? e.IsInTransit.Value : default(bool);
            }

            if (e.IsApproved == null)
            {
                if (e.IsPropertyIsApprovedRemoved)
                {
                    this.IsApproved = default(bool);
                }
            }
            else
            {
                this.IsApproved = (e.IsApproved != null && e.IsApproved.HasValue) ? e.IsApproved.Value : default(bool);
            }

            if (e.IsInDispute == null)
            {
                if (e.IsPropertyIsInDisputeRemoved)
                {
                    this.IsInDispute = default(bool);
                }
            }
            else
            {
                this.IsInDispute = (e.IsInDispute != null && e.IsInDispute.HasValue) ? e.IsInDispute.Value : default(bool);
            }

            if (e.Volume == null)
            {
                if (e.IsPropertyVolumeRemoved)
                {
                    this.Volume = default(decimal);
                }
            }
            else
            {
                this.Volume = (e.Volume != null && e.Volume.HasValue) ? e.Volume.Value : default(decimal);
            }

            if (e.Weight == null)
            {
                if (e.IsPropertyWeightRemoved)
                {
                    this.Weight = default(decimal);
                }
            }
            else
            {
                this.Weight = (e.Weight != null && e.Weight.HasValue) ? e.Weight.Value : default(decimal);
            }

            if (e.RmaNumber == null)
            {
                if (e.IsPropertyRmaNumberRemoved)
                {
                    this.RmaNumber = default(string);
                }
            }
            else
            {
                this.RmaNumber = e.RmaNumber;
            }

            if (e.ReversalNumber == null)
            {
                if (e.IsPropertyReversalNumberRemoved)
                {
                    this.ReversalNumber = default(string);
                }
            }
            else
            {
                this.ReversalNumber = e.ReversalNumber;
            }

            if (e.IsDropShip == null)
            {
                if (e.IsPropertyIsDropShipRemoved)
                {
                    this.IsDropShip = default(bool);
                }
            }
            else
            {
                this.IsDropShip = (e.IsDropShip != null && e.IsDropShip.HasValue) ? e.IsDropShip.Value : default(bool);
            }

            if (e.DropShipBusinessPartnerId == null)
            {
                if (e.IsPropertyDropShipBusinessPartnerIdRemoved)
                {
                    this.DropShipBusinessPartnerId = default(string);
                }
            }
            else
            {
                this.DropShipBusinessPartnerId = e.DropShipBusinessPartnerId;
            }

            if (e.Active == null)
            {
                if (e.IsPropertyActiveRemoved)
                {
                    this.Active = default(bool);
                }
            }
            else
            {
                this.Active = (e.Active != null && e.Active.HasValue) ? e.Active.Value : default(bool);
            }


            this.UpdatedBy = e.CreatedBy;
            this.UpdatedAt = e.CreatedAt;


            foreach (IInOutLineStateEvent innerEvent in e.InOutLineEvents)
            {
                IInOutLineState innerState = this.InOutLines.Get(innerEvent.GlobalId.LineNumber);

                innerState.Mutate(innerEvent);
                var removed = innerEvent as IInOutLineStateRemoved;
                if (removed != null)
                {
                    this.InOutLines.Remove(innerState);
                }
            }
        }
Пример #3
0
 void IInOutState.When(IInOutStateMergePatched e)
 {
     throw new NotSupportedException();
 }
Пример #4
0
        public virtual void MergePatch(IMergePatchInOut c)
        {
            IInOutStateMergePatched e = Map(c);

            Apply(e);
        }
Пример #5
0
        }// END Map(IRemove... ////////////////////////////

        protected void NewInOutDocumentActionCommandAndExecute(IMergePatchInOut c, IInOutState s, IInOutStateMergePatched e)
        {
            var pCommandHandler = this.InOutDocumentActionCommandHandler;
            var pCmdContent     = c.DocumentAction;
            var pCmd            = new PropertyCommand <DocumentAction, string> {
                Content = pCmdContent, GetState = () => s.DocumentStatus, SetState = p => e.DocumentStatus = p, OuterCommandType = CommandType.MergePatch
            };

            pCommandHandler.Execute(pCmd);
        }
Пример #6
0
        protected virtual IInOutStateMergePatched Map(IMergePatchInOut c)
        {
            var stateEventId          = new InOutStateEventId(c.DocumentNumber, c.Version);
            IInOutStateMergePatched e = NewInOutStateMergePatched(stateEventId);

            e.IsSOTransaction = c.IsSOTransaction;
            NewInOutDocumentActionCommandAndExecute(c, _state, e);
            e.Posted                                     = c.Posted;
            e.Processing                                 = c.Processing;
            e.Processed                                  = c.Processed;
            e.DocumentType                               = c.DocumentType;
            e.Description                                = c.Description;
            e.OrderNumber                                = c.OrderNumber;
            e.DateOrdered                                = c.DateOrdered;
            e.IsPrinted                                  = c.IsPrinted;
            e.MovementType                               = c.MovementType;
            e.MovementDate                               = c.MovementDate;
            e.BusinessPartnerId                          = c.BusinessPartnerId;
            e.WarehouseId                                = c.WarehouseId;
            e.POReference                                = c.POReference;
            e.FreightAmount                              = c.FreightAmount;
            e.ShipperId                                  = c.ShipperId;
            e.ChargeAmount                               = c.ChargeAmount;
            e.DatePrinted                                = c.DatePrinted;
            e.SalesRepresentative                        = c.SalesRepresentative;
            e.NumberOfPackages                           = c.NumberOfPackages;
            e.PickDate                                   = c.PickDate;
            e.ShipDate                                   = c.ShipDate;
            e.TrackingNumber                             = c.TrackingNumber;
            e.DateReceived                               = c.DateReceived;
            e.IsInTransit                                = c.IsInTransit;
            e.IsApproved                                 = c.IsApproved;
            e.IsInDispute                                = c.IsInDispute;
            e.Volume                                     = c.Volume;
            e.Weight                                     = c.Weight;
            e.RmaNumber                                  = c.RmaNumber;
            e.ReversalNumber                             = c.ReversalNumber;
            e.IsDropShip                                 = c.IsDropShip;
            e.DropShipBusinessPartnerId                  = c.DropShipBusinessPartnerId;
            e.Active                                     = c.Active;
            e.IsPropertyIsSOTransactionRemoved           = c.IsPropertyIsSOTransactionRemoved;
            e.IsPropertyPostedRemoved                    = c.IsPropertyPostedRemoved;
            e.IsPropertyProcessingRemoved                = c.IsPropertyProcessingRemoved;
            e.IsPropertyProcessedRemoved                 = c.IsPropertyProcessedRemoved;
            e.IsPropertyDocumentTypeRemoved              = c.IsPropertyDocumentTypeRemoved;
            e.IsPropertyDescriptionRemoved               = c.IsPropertyDescriptionRemoved;
            e.IsPropertyOrderNumberRemoved               = c.IsPropertyOrderNumberRemoved;
            e.IsPropertyDateOrderedRemoved               = c.IsPropertyDateOrderedRemoved;
            e.IsPropertyIsPrintedRemoved                 = c.IsPropertyIsPrintedRemoved;
            e.IsPropertyMovementTypeRemoved              = c.IsPropertyMovementTypeRemoved;
            e.IsPropertyMovementDateRemoved              = c.IsPropertyMovementDateRemoved;
            e.IsPropertyBusinessPartnerIdRemoved         = c.IsPropertyBusinessPartnerIdRemoved;
            e.IsPropertyWarehouseIdRemoved               = c.IsPropertyWarehouseIdRemoved;
            e.IsPropertyPOReferenceRemoved               = c.IsPropertyPOReferenceRemoved;
            e.IsPropertyFreightAmountRemoved             = c.IsPropertyFreightAmountRemoved;
            e.IsPropertyShipperIdRemoved                 = c.IsPropertyShipperIdRemoved;
            e.IsPropertyChargeAmountRemoved              = c.IsPropertyChargeAmountRemoved;
            e.IsPropertyDatePrintedRemoved               = c.IsPropertyDatePrintedRemoved;
            e.IsPropertySalesRepresentativeRemoved       = c.IsPropertySalesRepresentativeRemoved;
            e.IsPropertyNumberOfPackagesRemoved          = c.IsPropertyNumberOfPackagesRemoved;
            e.IsPropertyPickDateRemoved                  = c.IsPropertyPickDateRemoved;
            e.IsPropertyShipDateRemoved                  = c.IsPropertyShipDateRemoved;
            e.IsPropertyTrackingNumberRemoved            = c.IsPropertyTrackingNumberRemoved;
            e.IsPropertyDateReceivedRemoved              = c.IsPropertyDateReceivedRemoved;
            e.IsPropertyIsInTransitRemoved               = c.IsPropertyIsInTransitRemoved;
            e.IsPropertyIsApprovedRemoved                = c.IsPropertyIsApprovedRemoved;
            e.IsPropertyIsInDisputeRemoved               = c.IsPropertyIsInDisputeRemoved;
            e.IsPropertyVolumeRemoved                    = c.IsPropertyVolumeRemoved;
            e.IsPropertyWeightRemoved                    = c.IsPropertyWeightRemoved;
            e.IsPropertyRmaNumberRemoved                 = c.IsPropertyRmaNumberRemoved;
            e.IsPropertyReversalNumberRemoved            = c.IsPropertyReversalNumberRemoved;
            e.IsPropertyIsDropShipRemoved                = c.IsPropertyIsDropShipRemoved;
            e.IsPropertyDropShipBusinessPartnerIdRemoved = c.IsPropertyDropShipBusinessPartnerIdRemoved;
            e.IsPropertyActiveRemoved                    = c.IsPropertyActiveRemoved;

            ReflectUtils.CopyPropertyValue("CommandId", c, e);


            e.CreatedBy = (string)c.RequesterId;
            e.CreatedAt = DateTime.Now;

            var version = c.Version;

            foreach (IInOutLineCommand innerCommand in c.InOutLineCommands)
            {
                ThrowOnInconsistentCommands(c, innerCommand);

                IInOutLineStateEvent innerEvent = Map(innerCommand, c, version, _state);
                e.AddInOutLineEvent(innerEvent);
            }


            return(e);
        }
Пример #7
0
        protected virtual IInOutStateMergePatched Map(IMergePatchInOut c)
        {
            var stateEventId          = new InOutEventId(c.DocumentNumber, c.Version);
            IInOutStateMergePatched e = NewInOutStateMergePatched(stateEventId);

            e.Posted                                  = c.Posted;
            e.Processed                               = c.Processed;
            e.Processing                              = c.Processing;
            e.DocumentTypeId                          = c.DocumentTypeId;
            e.Description                             = c.Description;
            e.OrderId                                 = c.OrderId;
            e.DateOrdered                             = c.DateOrdered;
            e.IsPrinted                               = c.IsPrinted;
            e.MovementTypeId                          = c.MovementTypeId;
            e.MovementDate                            = c.MovementDate;
            e.BusinessPartnerId                       = c.BusinessPartnerId;
            e.WarehouseId                             = c.WarehouseId;
            e.POReference                             = c.POReference;
            e.FreightAmount                           = c.FreightAmount;
            e.ShipperId                               = c.ShipperId;
            e.ChargeAmount                            = c.ChargeAmount;
            e.DatePrinted                             = c.DatePrinted;
            e.CreatedFrom                             = c.CreatedFrom;
            e.SalesRepresentativeId                   = c.SalesRepresentativeId;
            e.NumberOfPackages                        = c.NumberOfPackages;
            e.PickDate                                = c.PickDate;
            e.ShipDate                                = c.ShipDate;
            e.TrackingNumber                          = c.TrackingNumber;
            e.DateReceived                            = c.DateReceived;
            e.IsInTransit                             = c.IsInTransit;
            e.IsApproved                              = c.IsApproved;
            e.IsInDispute                             = c.IsInDispute;
            e.RmaDocumentNumber                       = c.RmaDocumentNumber;
            e.ReversalDocumentNumber                  = c.ReversalDocumentNumber;
            e.Active                                  = c.Active;
            e.IsPropertyPostedRemoved                 = c.IsPropertyPostedRemoved;
            e.IsPropertyProcessedRemoved              = c.IsPropertyProcessedRemoved;
            e.IsPropertyProcessingRemoved             = c.IsPropertyProcessingRemoved;
            e.IsPropertyDocumentTypeIdRemoved         = c.IsPropertyDocumentTypeIdRemoved;
            e.IsPropertyDescriptionRemoved            = c.IsPropertyDescriptionRemoved;
            e.IsPropertyOrderIdRemoved                = c.IsPropertyOrderIdRemoved;
            e.IsPropertyDateOrderedRemoved            = c.IsPropertyDateOrderedRemoved;
            e.IsPropertyIsPrintedRemoved              = c.IsPropertyIsPrintedRemoved;
            e.IsPropertyMovementTypeIdRemoved         = c.IsPropertyMovementTypeIdRemoved;
            e.IsPropertyMovementDateRemoved           = c.IsPropertyMovementDateRemoved;
            e.IsPropertyBusinessPartnerIdRemoved      = c.IsPropertyBusinessPartnerIdRemoved;
            e.IsPropertyWarehouseIdRemoved            = c.IsPropertyWarehouseIdRemoved;
            e.IsPropertyPOReferenceRemoved            = c.IsPropertyPOReferenceRemoved;
            e.IsPropertyFreightAmountRemoved          = c.IsPropertyFreightAmountRemoved;
            e.IsPropertyShipperIdRemoved              = c.IsPropertyShipperIdRemoved;
            e.IsPropertyChargeAmountRemoved           = c.IsPropertyChargeAmountRemoved;
            e.IsPropertyDatePrintedRemoved            = c.IsPropertyDatePrintedRemoved;
            e.IsPropertyCreatedFromRemoved            = c.IsPropertyCreatedFromRemoved;
            e.IsPropertySalesRepresentativeIdRemoved  = c.IsPropertySalesRepresentativeIdRemoved;
            e.IsPropertyNumberOfPackagesRemoved       = c.IsPropertyNumberOfPackagesRemoved;
            e.IsPropertyPickDateRemoved               = c.IsPropertyPickDateRemoved;
            e.IsPropertyShipDateRemoved               = c.IsPropertyShipDateRemoved;
            e.IsPropertyTrackingNumberRemoved         = c.IsPropertyTrackingNumberRemoved;
            e.IsPropertyDateReceivedRemoved           = c.IsPropertyDateReceivedRemoved;
            e.IsPropertyIsInTransitRemoved            = c.IsPropertyIsInTransitRemoved;
            e.IsPropertyIsApprovedRemoved             = c.IsPropertyIsApprovedRemoved;
            e.IsPropertyIsInDisputeRemoved            = c.IsPropertyIsInDisputeRemoved;
            e.IsPropertyRmaDocumentNumberRemoved      = c.IsPropertyRmaDocumentNumberRemoved;
            e.IsPropertyReversalDocumentNumberRemoved = c.IsPropertyReversalDocumentNumberRemoved;
            e.IsPropertyActiveRemoved                 = c.IsPropertyActiveRemoved;

            e.CommandId = c.CommandId;


            e.CreatedBy = (string)c.RequesterId;
            e.CreatedAt = ApplicationContext.Current.TimestampService.Now <DateTime>();

            var version = c.Version;

            foreach (IInOutLineCommand innerCommand in c.InOutLineCommands)
            {
                ThrowOnInconsistentCommands(c, innerCommand);

                IInOutLineEvent innerEvent = Map(innerCommand, c, version, _state);
                e.AddInOutLineEvent(innerEvent);
            }


            return(e);
        }