public virtual MovementStateMergePatchedDto ToMovementStateMergePatchedDto(IMovementStateMergePatched e)
        {
            var dto = new MovementStateMergePatchedDto();

            dto.MovementEventId                         = e.MovementEventId;
            dto.CreatedAt                               = e.CreatedAt;
            dto.CreatedBy                               = e.CreatedBy;
            dto.CommandId                               = e.CommandId;
            dto.DocumentStatusId                        = e.DocumentStatusId;
            dto.MovementDate                            = e.MovementDate;
            dto.Posted                                  = e.Posted;
            dto.Processed                               = e.Processed;
            dto.Processing                              = e.Processing;
            dto.DateReceived                            = e.DateReceived;
            dto.DocumentTypeId                          = e.DocumentTypeId;
            dto.IsInTransit                             = e.IsInTransit;
            dto.IsApproved                              = e.IsApproved;
            dto.ApprovalAmount                          = e.ApprovalAmount;
            dto.ShipperId                               = e.ShipperId;
            dto.SalesRepresentativeId                   = e.SalesRepresentativeId;
            dto.BusinessPartnerId                       = e.BusinessPartnerId;
            dto.ChargeAmount                            = e.ChargeAmount;
            dto.CreateFrom                              = e.CreateFrom;
            dto.FreightAmount                           = e.FreightAmount;
            dto.ReversalDocumentNumber                  = e.ReversalDocumentNumber;
            dto.WarehouseIdFrom                         = e.WarehouseIdFrom;
            dto.WarehouseIdTo                           = e.WarehouseIdTo;
            dto.Description                             = e.Description;
            dto.Active                                  = e.Active;
            dto.IsPropertyDocumentStatusIdRemoved       = e.IsPropertyDocumentStatusIdRemoved;
            dto.IsPropertyMovementDateRemoved           = e.IsPropertyMovementDateRemoved;
            dto.IsPropertyPostedRemoved                 = e.IsPropertyPostedRemoved;
            dto.IsPropertyProcessedRemoved              = e.IsPropertyProcessedRemoved;
            dto.IsPropertyProcessingRemoved             = e.IsPropertyProcessingRemoved;
            dto.IsPropertyDateReceivedRemoved           = e.IsPropertyDateReceivedRemoved;
            dto.IsPropertyDocumentTypeIdRemoved         = e.IsPropertyDocumentTypeIdRemoved;
            dto.IsPropertyIsInTransitRemoved            = e.IsPropertyIsInTransitRemoved;
            dto.IsPropertyIsApprovedRemoved             = e.IsPropertyIsApprovedRemoved;
            dto.IsPropertyApprovalAmountRemoved         = e.IsPropertyApprovalAmountRemoved;
            dto.IsPropertyShipperIdRemoved              = e.IsPropertyShipperIdRemoved;
            dto.IsPropertySalesRepresentativeIdRemoved  = e.IsPropertySalesRepresentativeIdRemoved;
            dto.IsPropertyBusinessPartnerIdRemoved      = e.IsPropertyBusinessPartnerIdRemoved;
            dto.IsPropertyChargeAmountRemoved           = e.IsPropertyChargeAmountRemoved;
            dto.IsPropertyCreateFromRemoved             = e.IsPropertyCreateFromRemoved;
            dto.IsPropertyFreightAmountRemoved          = e.IsPropertyFreightAmountRemoved;
            dto.IsPropertyReversalDocumentNumberRemoved = e.IsPropertyReversalDocumentNumberRemoved;
            dto.IsPropertyWarehouseIdFromRemoved        = e.IsPropertyWarehouseIdFromRemoved;
            dto.IsPropertyWarehouseIdToRemoved          = e.IsPropertyWarehouseIdToRemoved;
            dto.IsPropertyDescriptionRemoved            = e.IsPropertyDescriptionRemoved;
            dto.IsPropertyActiveRemoved                 = e.IsPropertyActiveRemoved;
            var movementLineEvents = new List <MovementLineStateCreatedOrMergePatchedOrRemovedDto>();

            foreach (var ee in e.MovementLineEvents)
            {
                MovementLineStateCreatedOrMergePatchedOrRemovedDto eeDto = MovementLineStateEventDtoConverter.ToMovementLineStateEventDto(ee);
                movementLineEvents.Add(eeDto);
            }
            dto.MovementLineEvents = movementLineEvents.ToArray();


            return(dto);
        }
Exemple #2
0
        public virtual void MergePatch(IMergePatchMovement c)
        {
            IMovementStateMergePatched e = Map(c);

            Apply(e);
        }
Exemple #3
0
        public virtual void When(IMovementStateMergePatched e)
        {
            ThrowOnWrongEvent(e);

            if (e.DocumentStatusId == null)
            {
                if (e.IsPropertyDocumentStatusIdRemoved)
                {
                    this.DocumentStatusId = default(string);
                }
            }
            else
            {
                this.DocumentStatusId = e.DocumentStatusId;
            }

            if (e.MovementDate == null)
            {
                if (e.IsPropertyMovementDateRemoved)
                {
                    this.MovementDate = default(DateTime);
                }
            }
            else
            {
                this.MovementDate = (e.MovementDate != null && e.MovementDate.HasValue) ? e.MovementDate.Value : default(DateTime);
            }

            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.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.Processing == null)
            {
                if (e.IsPropertyProcessingRemoved)
                {
                    this.Processing = default(string);
                }
            }
            else
            {
                this.Processing = e.Processing;
            }

            if (e.DateReceived == null)
            {
                if (e.IsPropertyDateReceivedRemoved)
                {
                    this.DateReceived = default(DateTime);
                }
            }
            else
            {
                this.DateReceived = (e.DateReceived != null && e.DateReceived.HasValue) ? e.DateReceived.Value : default(DateTime);
            }

            if (e.DocumentTypeId == null)
            {
                if (e.IsPropertyDocumentTypeIdRemoved)
                {
                    this.DocumentTypeId = default(string);
                }
            }
            else
            {
                this.DocumentTypeId = e.DocumentTypeId;
            }

            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.ApprovalAmount == null)
            {
                if (e.IsPropertyApprovalAmountRemoved)
                {
                    this.ApprovalAmount = default(decimal);
                }
            }
            else
            {
                this.ApprovalAmount = (e.ApprovalAmount != null && e.ApprovalAmount.HasValue) ? e.ApprovalAmount.Value : default(decimal);
            }

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

            if (e.SalesRepresentativeId == null)
            {
                if (e.IsPropertySalesRepresentativeIdRemoved)
                {
                    this.SalesRepresentativeId = default(string);
                }
            }
            else
            {
                this.SalesRepresentativeId = e.SalesRepresentativeId;
            }

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

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

            if (e.CreateFrom == null)
            {
                if (e.IsPropertyCreateFromRemoved)
                {
                    this.CreateFrom = default(string);
                }
            }
            else
            {
                this.CreateFrom = e.CreateFrom;
            }

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

            if (e.ReversalDocumentNumber == null)
            {
                if (e.IsPropertyReversalDocumentNumberRemoved)
                {
                    this.ReversalDocumentNumber = default(string);
                }
            }
            else
            {
                this.ReversalDocumentNumber = e.ReversalDocumentNumber;
            }

            if (e.WarehouseIdFrom == null)
            {
                if (e.IsPropertyWarehouseIdFromRemoved)
                {
                    this.WarehouseIdFrom = default(string);
                }
            }
            else
            {
                this.WarehouseIdFrom = e.WarehouseIdFrom;
            }

            if (e.WarehouseIdTo == null)
            {
                if (e.IsPropertyWarehouseIdToRemoved)
                {
                    this.WarehouseIdTo = default(string);
                }
            }
            else
            {
                this.WarehouseIdTo = e.WarehouseIdTo;
            }

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

            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 (IMovementLineEvent innerEvent in e.MovementLineEvents)
            {
                IMovementLineState innerState = this.MovementLines.Get(innerEvent.GlobalId.LineNumber);

                innerState.Mutate(innerEvent);
                var removed = innerEvent as IMovementLineStateRemoved;
                if (removed != null)
                {
                    this.MovementLines.Remove(innerState);
                }
            }
        }
Exemple #4
0
        protected virtual IMovementStateMergePatched Map(IMergePatchMovement c)
        {
            var stateEventId             = new MovementEventId(c.DocumentNumber, c.Version);
            IMovementStateMergePatched e = NewMovementStateMergePatched(stateEventId);

            e.MovementDate                            = c.MovementDate;
            e.Posted                                  = c.Posted;
            e.Processed                               = c.Processed;
            e.Processing                              = c.Processing;
            e.DateReceived                            = c.DateReceived;
            e.DocumentTypeId                          = c.DocumentTypeId;
            e.IsInTransit                             = c.IsInTransit;
            e.IsApproved                              = c.IsApproved;
            e.ApprovalAmount                          = c.ApprovalAmount;
            e.ShipperId                               = c.ShipperId;
            e.SalesRepresentativeId                   = c.SalesRepresentativeId;
            e.BusinessPartnerId                       = c.BusinessPartnerId;
            e.ChargeAmount                            = c.ChargeAmount;
            e.CreateFrom                              = c.CreateFrom;
            e.FreightAmount                           = c.FreightAmount;
            e.ReversalDocumentNumber                  = c.ReversalDocumentNumber;
            e.WarehouseIdFrom                         = c.WarehouseIdFrom;
            e.WarehouseIdTo                           = c.WarehouseIdTo;
            e.Description                             = c.Description;
            e.Active                                  = c.Active;
            e.IsPropertyMovementDateRemoved           = c.IsPropertyMovementDateRemoved;
            e.IsPropertyPostedRemoved                 = c.IsPropertyPostedRemoved;
            e.IsPropertyProcessedRemoved              = c.IsPropertyProcessedRemoved;
            e.IsPropertyProcessingRemoved             = c.IsPropertyProcessingRemoved;
            e.IsPropertyDateReceivedRemoved           = c.IsPropertyDateReceivedRemoved;
            e.IsPropertyDocumentTypeIdRemoved         = c.IsPropertyDocumentTypeIdRemoved;
            e.IsPropertyIsInTransitRemoved            = c.IsPropertyIsInTransitRemoved;
            e.IsPropertyIsApprovedRemoved             = c.IsPropertyIsApprovedRemoved;
            e.IsPropertyApprovalAmountRemoved         = c.IsPropertyApprovalAmountRemoved;
            e.IsPropertyShipperIdRemoved              = c.IsPropertyShipperIdRemoved;
            e.IsPropertySalesRepresentativeIdRemoved  = c.IsPropertySalesRepresentativeIdRemoved;
            e.IsPropertyBusinessPartnerIdRemoved      = c.IsPropertyBusinessPartnerIdRemoved;
            e.IsPropertyChargeAmountRemoved           = c.IsPropertyChargeAmountRemoved;
            e.IsPropertyCreateFromRemoved             = c.IsPropertyCreateFromRemoved;
            e.IsPropertyFreightAmountRemoved          = c.IsPropertyFreightAmountRemoved;
            e.IsPropertyReversalDocumentNumberRemoved = c.IsPropertyReversalDocumentNumberRemoved;
            e.IsPropertyWarehouseIdFromRemoved        = c.IsPropertyWarehouseIdFromRemoved;
            e.IsPropertyWarehouseIdToRemoved          = c.IsPropertyWarehouseIdToRemoved;
            e.IsPropertyDescriptionRemoved            = c.IsPropertyDescriptionRemoved;
            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 (IMovementLineCommand innerCommand in c.MovementLineCommands)
            {
                ThrowOnInconsistentCommands(c, innerCommand);

                IMovementLineEvent innerEvent = Map(innerCommand, c, version, _state);
                e.AddMovementLineEvent(innerEvent);
            }


            return(e);
        }
Exemple #5
0
 void IMovementState.When(IMovementStateMergePatched e)
 {
     throw new NotSupportedException();
 }