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);
        }