Ejemplo n.º 1
0
        public virtual void When(IOrderStateMergePatched e)
        {
            ThrowOnWrongEvent(e);

            if (e.OrderTypeId == null)
            {
                if (e.IsPropertyOrderTypeIdRemoved)
                {
                    this.OrderTypeId = default(string);
                }
            }
            else
            {
                this.OrderTypeId = e.OrderTypeId;
            }

            if (e.OrderName == null)
            {
                if (e.IsPropertyOrderNameRemoved)
                {
                    this.OrderName = default(string);
                }
            }
            else
            {
                this.OrderName = e.OrderName;
            }

            if (e.ExternalId == null)
            {
                if (e.IsPropertyExternalIdRemoved)
                {
                    this.ExternalId = default(string);
                }
            }
            else
            {
                this.ExternalId = e.ExternalId;
            }

            if (e.SalesChannelEnumId == null)
            {
                if (e.IsPropertySalesChannelEnumIdRemoved)
                {
                    this.SalesChannelEnumId = default(string);
                }
            }
            else
            {
                this.SalesChannelEnumId = e.SalesChannelEnumId;
            }

            if (e.OrderDate == null)
            {
                if (e.IsPropertyOrderDateRemoved)
                {
                    this.OrderDate = default(DateTime?);
                }
            }
            else
            {
                this.OrderDate = e.OrderDate;
            }

            if (e.Priority == null)
            {
                if (e.IsPropertyPriorityRemoved)
                {
                    this.Priority = default(string);
                }
            }
            else
            {
                this.Priority = e.Priority;
            }

            if (e.EntryDate == null)
            {
                if (e.IsPropertyEntryDateRemoved)
                {
                    this.EntryDate = default(DateTime?);
                }
            }
            else
            {
                this.EntryDate = e.EntryDate;
            }

            if (e.PickSheetPrintedDate == null)
            {
                if (e.IsPropertyPickSheetPrintedDateRemoved)
                {
                    this.PickSheetPrintedDate = default(DateTime?);
                }
            }
            else
            {
                this.PickSheetPrintedDate = e.PickSheetPrintedDate;
            }

            if (e.StatusId == null)
            {
                if (e.IsPropertyStatusIdRemoved)
                {
                    this.StatusId = default(string);
                }
            }
            else
            {
                this.StatusId = e.StatusId;
            }

            if (e.CurrencyUomId == null)
            {
                if (e.IsPropertyCurrencyUomIdRemoved)
                {
                    this.CurrencyUomId = default(string);
                }
            }
            else
            {
                this.CurrencyUomId = e.CurrencyUomId;
            }

            if (e.SyncStatusId == null)
            {
                if (e.IsPropertySyncStatusIdRemoved)
                {
                    this.SyncStatusId = default(string);
                }
            }
            else
            {
                this.SyncStatusId = e.SyncStatusId;
            }

            if (e.BillingAccountId == null)
            {
                if (e.IsPropertyBillingAccountIdRemoved)
                {
                    this.BillingAccountId = default(string);
                }
            }
            else
            {
                this.BillingAccountId = e.BillingAccountId;
            }

            if (e.OriginFacilityId == null)
            {
                if (e.IsPropertyOriginFacilityIdRemoved)
                {
                    this.OriginFacilityId = default(string);
                }
            }
            else
            {
                this.OriginFacilityId = e.OriginFacilityId;
            }

            if (e.WebSiteId == null)
            {
                if (e.IsPropertyWebSiteIdRemoved)
                {
                    this.WebSiteId = default(string);
                }
            }
            else
            {
                this.WebSiteId = e.WebSiteId;
            }

            if (e.ProductStoreId == null)
            {
                if (e.IsPropertyProductStoreIdRemoved)
                {
                    this.ProductStoreId = default(string);
                }
            }
            else
            {
                this.ProductStoreId = e.ProductStoreId;
            }

            if (e.TerminalId == null)
            {
                if (e.IsPropertyTerminalIdRemoved)
                {
                    this.TerminalId = default(string);
                }
            }
            else
            {
                this.TerminalId = e.TerminalId;
            }

            if (e.TransactionId == null)
            {
                if (e.IsPropertyTransactionIdRemoved)
                {
                    this.TransactionId = default(string);
                }
            }
            else
            {
                this.TransactionId = e.TransactionId;
            }

            if (e.AutoOrderShoppingListId == null)
            {
                if (e.IsPropertyAutoOrderShoppingListIdRemoved)
                {
                    this.AutoOrderShoppingListId = default(string);
                }
            }
            else
            {
                this.AutoOrderShoppingListId = e.AutoOrderShoppingListId;
            }

            if (e.NeedsInventoryIssuance == null)
            {
                if (e.IsPropertyNeedsInventoryIssuanceRemoved)
                {
                    this.NeedsInventoryIssuance = default(string);
                }
            }
            else
            {
                this.NeedsInventoryIssuance = e.NeedsInventoryIssuance;
            }

            if (e.IsRushOrder == null)
            {
                if (e.IsPropertyIsRushOrderRemoved)
                {
                    this.IsRushOrder = default(string);
                }
            }
            else
            {
                this.IsRushOrder = e.IsRushOrder;
            }

            if (e.InternalCode == null)
            {
                if (e.IsPropertyInternalCodeRemoved)
                {
                    this.InternalCode = default(string);
                }
            }
            else
            {
                this.InternalCode = e.InternalCode;
            }

            if (e.RemainingSubTotal == null)
            {
                if (e.IsPropertyRemainingSubTotalRemoved)
                {
                    this.RemainingSubTotal = default(decimal?);
                }
            }
            else
            {
                this.RemainingSubTotal = e.RemainingSubTotal;
            }

            if (e.GrandTotal == null)
            {
                if (e.IsPropertyGrandTotalRemoved)
                {
                    this.GrandTotal = default(decimal?);
                }
            }
            else
            {
                this.GrandTotal = e.GrandTotal;
            }

            if (e.InvoicePerShipment == null)
            {
                if (e.IsPropertyInvoicePerShipmentRemoved)
                {
                    this.InvoicePerShipment = default(string);
                }
            }
            else
            {
                this.InvoicePerShipment = e.InvoicePerShipment;
            }

            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 (IOrderRoleEvent innerEvent in e.OrderRoleEvents)
            {
                IOrderRoleState innerState = this.OrderRoles.Get(innerEvent.GlobalId.PartyRoleId);

                innerState.Mutate(innerEvent);
                var removed = innerEvent as IOrderRoleStateRemoved;
                if (removed != null)
                {
                    this.OrderRoles.Remove(innerState);
                }
            }

            foreach (IOrderItemEvent innerEvent in e.OrderItemEvents)
            {
                IOrderItemState innerState = this.OrderItems.Get(innerEvent.GlobalId.OrderItemSeqId);

                innerState.Mutate(innerEvent);
            }

            foreach (IOrderShipGroupEvent innerEvent in e.OrderShipGroupEvents)
            {
                IOrderShipGroupState innerState = this.OrderShipGroups.Get(innerEvent.GlobalId.ShipGroupSeqId);

                innerState.Mutate(innerEvent);
                var removed = innerEvent as IOrderShipGroupStateRemoved;
                if (removed != null)
                {
                    this.OrderShipGroups.Remove(innerState);
                }
            }
        }
Ejemplo n.º 2
0
        public virtual void MergePatch(IMergePatchOrder c)
        {
            IOrderStateMergePatched e = Map(c);

            Apply(e);
        }
Ejemplo n.º 3
0
 void IOrderState.When(IOrderStateMergePatched e)
 {
     throw new NotSupportedException();
 }
Ejemplo n.º 4
0
        protected virtual IOrderStateMergePatched Map(IMergePatchOrder c)
        {
            var stateEventId          = new OrderEventId(c.OrderId, c.Version);
            IOrderStateMergePatched e = NewOrderStateMergePatched(stateEventId);

            e.OrderTypeId             = c.OrderTypeId;
            e.OrderName               = c.OrderName;
            e.ExternalId              = c.ExternalId;
            e.SalesChannelEnumId      = c.SalesChannelEnumId;
            e.OrderDate               = c.OrderDate;
            e.Priority                = c.Priority;
            e.EntryDate               = c.EntryDate;
            e.PickSheetPrintedDate    = c.PickSheetPrintedDate;
            e.StatusId                = c.StatusId;
            e.CurrencyUomId           = c.CurrencyUomId;
            e.SyncStatusId            = c.SyncStatusId;
            e.BillingAccountId        = c.BillingAccountId;
            e.OriginFacilityId        = c.OriginFacilityId;
            e.WebSiteId               = c.WebSiteId;
            e.ProductStoreId          = c.ProductStoreId;
            e.TerminalId              = c.TerminalId;
            e.TransactionId           = c.TransactionId;
            e.AutoOrderShoppingListId = c.AutoOrderShoppingListId;
            e.NeedsInventoryIssuance  = c.NeedsInventoryIssuance;
            e.IsRushOrder             = c.IsRushOrder;
            e.InternalCode            = c.InternalCode;
            e.RemainingSubTotal       = c.RemainingSubTotal;
            e.GrandTotal              = c.GrandTotal;
            e.InvoicePerShipment      = c.InvoicePerShipment;
            e.Active = c.Active;
            e.IsPropertyOrderTypeIdRemoved             = c.IsPropertyOrderTypeIdRemoved;
            e.IsPropertyOrderNameRemoved               = c.IsPropertyOrderNameRemoved;
            e.IsPropertyExternalIdRemoved              = c.IsPropertyExternalIdRemoved;
            e.IsPropertySalesChannelEnumIdRemoved      = c.IsPropertySalesChannelEnumIdRemoved;
            e.IsPropertyOrderDateRemoved               = c.IsPropertyOrderDateRemoved;
            e.IsPropertyPriorityRemoved                = c.IsPropertyPriorityRemoved;
            e.IsPropertyEntryDateRemoved               = c.IsPropertyEntryDateRemoved;
            e.IsPropertyPickSheetPrintedDateRemoved    = c.IsPropertyPickSheetPrintedDateRemoved;
            e.IsPropertyStatusIdRemoved                = c.IsPropertyStatusIdRemoved;
            e.IsPropertyCurrencyUomIdRemoved           = c.IsPropertyCurrencyUomIdRemoved;
            e.IsPropertySyncStatusIdRemoved            = c.IsPropertySyncStatusIdRemoved;
            e.IsPropertyBillingAccountIdRemoved        = c.IsPropertyBillingAccountIdRemoved;
            e.IsPropertyOriginFacilityIdRemoved        = c.IsPropertyOriginFacilityIdRemoved;
            e.IsPropertyWebSiteIdRemoved               = c.IsPropertyWebSiteIdRemoved;
            e.IsPropertyProductStoreIdRemoved          = c.IsPropertyProductStoreIdRemoved;
            e.IsPropertyTerminalIdRemoved              = c.IsPropertyTerminalIdRemoved;
            e.IsPropertyTransactionIdRemoved           = c.IsPropertyTransactionIdRemoved;
            e.IsPropertyAutoOrderShoppingListIdRemoved = c.IsPropertyAutoOrderShoppingListIdRemoved;
            e.IsPropertyNeedsInventoryIssuanceRemoved  = c.IsPropertyNeedsInventoryIssuanceRemoved;
            e.IsPropertyIsRushOrderRemoved             = c.IsPropertyIsRushOrderRemoved;
            e.IsPropertyInternalCodeRemoved            = c.IsPropertyInternalCodeRemoved;
            e.IsPropertyRemainingSubTotalRemoved       = c.IsPropertyRemainingSubTotalRemoved;
            e.IsPropertyGrandTotalRemoved              = c.IsPropertyGrandTotalRemoved;
            e.IsPropertyInvoicePerShipmentRemoved      = c.IsPropertyInvoicePerShipmentRemoved;
            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 (IOrderRoleCommand innerCommand in c.OrderRoleCommands)
            {
                ThrowOnInconsistentCommands(c, innerCommand);

                IOrderRoleEvent innerEvent = Map(innerCommand, c, version, _state);
                e.AddOrderRoleEvent(innerEvent);
            }

            foreach (IOrderItemCommand innerCommand in c.OrderItemCommands)
            {
                ThrowOnInconsistentCommands(c, innerCommand);

                IOrderItemEvent innerEvent = Map(innerCommand, c, version, _state);
                e.AddOrderItemEvent(innerEvent);
            }

            foreach (IOrderShipGroupCommand innerCommand in c.OrderShipGroupCommands)
            {
                ThrowOnInconsistentCommands(c, innerCommand);

                IOrderShipGroupEvent innerEvent = Map(innerCommand, c, version, _state);
                e.AddOrderShipGroupEvent(innerEvent);
            }


            return(e);
        }
Ejemplo n.º 5
0
        public virtual OrderStateMergePatchedDto ToOrderStateMergePatchedDto(IOrderStateMergePatched e)
        {
            var dto = new OrderStateMergePatchedDto();

            dto.OrderEventId            = e.OrderEventId;
            dto.CreatedAt               = e.CreatedAt;
            dto.CreatedBy               = e.CreatedBy;
            dto.CommandId               = e.CommandId;
            dto.OrderTypeId             = e.OrderTypeId;
            dto.OrderName               = e.OrderName;
            dto.ExternalId              = e.ExternalId;
            dto.SalesChannelEnumId      = e.SalesChannelEnumId;
            dto.OrderDate               = e.OrderDate;
            dto.Priority                = e.Priority;
            dto.EntryDate               = e.EntryDate;
            dto.PickSheetPrintedDate    = e.PickSheetPrintedDate;
            dto.StatusId                = e.StatusId;
            dto.CurrencyUomId           = e.CurrencyUomId;
            dto.SyncStatusId            = e.SyncStatusId;
            dto.BillingAccountId        = e.BillingAccountId;
            dto.OriginFacilityId        = e.OriginFacilityId;
            dto.WebSiteId               = e.WebSiteId;
            dto.ProductStoreId          = e.ProductStoreId;
            dto.TerminalId              = e.TerminalId;
            dto.TransactionId           = e.TransactionId;
            dto.AutoOrderShoppingListId = e.AutoOrderShoppingListId;
            dto.NeedsInventoryIssuance  = e.NeedsInventoryIssuance;
            dto.IsRushOrder             = e.IsRushOrder;
            dto.InternalCode            = e.InternalCode;
            dto.RemainingSubTotal       = e.RemainingSubTotal;
            dto.GrandTotal              = e.GrandTotal;
            dto.InvoicePerShipment      = e.InvoicePerShipment;
            dto.Active = e.Active;
            dto.IsPropertyOrderTypeIdRemoved             = e.IsPropertyOrderTypeIdRemoved;
            dto.IsPropertyOrderNameRemoved               = e.IsPropertyOrderNameRemoved;
            dto.IsPropertyExternalIdRemoved              = e.IsPropertyExternalIdRemoved;
            dto.IsPropertySalesChannelEnumIdRemoved      = e.IsPropertySalesChannelEnumIdRemoved;
            dto.IsPropertyOrderDateRemoved               = e.IsPropertyOrderDateRemoved;
            dto.IsPropertyPriorityRemoved                = e.IsPropertyPriorityRemoved;
            dto.IsPropertyEntryDateRemoved               = e.IsPropertyEntryDateRemoved;
            dto.IsPropertyPickSheetPrintedDateRemoved    = e.IsPropertyPickSheetPrintedDateRemoved;
            dto.IsPropertyStatusIdRemoved                = e.IsPropertyStatusIdRemoved;
            dto.IsPropertyCurrencyUomIdRemoved           = e.IsPropertyCurrencyUomIdRemoved;
            dto.IsPropertySyncStatusIdRemoved            = e.IsPropertySyncStatusIdRemoved;
            dto.IsPropertyBillingAccountIdRemoved        = e.IsPropertyBillingAccountIdRemoved;
            dto.IsPropertyOriginFacilityIdRemoved        = e.IsPropertyOriginFacilityIdRemoved;
            dto.IsPropertyWebSiteIdRemoved               = e.IsPropertyWebSiteIdRemoved;
            dto.IsPropertyProductStoreIdRemoved          = e.IsPropertyProductStoreIdRemoved;
            dto.IsPropertyTerminalIdRemoved              = e.IsPropertyTerminalIdRemoved;
            dto.IsPropertyTransactionIdRemoved           = e.IsPropertyTransactionIdRemoved;
            dto.IsPropertyAutoOrderShoppingListIdRemoved = e.IsPropertyAutoOrderShoppingListIdRemoved;
            dto.IsPropertyNeedsInventoryIssuanceRemoved  = e.IsPropertyNeedsInventoryIssuanceRemoved;
            dto.IsPropertyIsRushOrderRemoved             = e.IsPropertyIsRushOrderRemoved;
            dto.IsPropertyInternalCodeRemoved            = e.IsPropertyInternalCodeRemoved;
            dto.IsPropertyRemainingSubTotalRemoved       = e.IsPropertyRemainingSubTotalRemoved;
            dto.IsPropertyGrandTotalRemoved              = e.IsPropertyGrandTotalRemoved;
            dto.IsPropertyInvoicePerShipmentRemoved      = e.IsPropertyInvoicePerShipmentRemoved;
            dto.IsPropertyActiveRemoved = e.IsPropertyActiveRemoved;
            var orderRoleEvents = new List <OrderRoleStateCreatedOrMergePatchedOrRemovedDto>();

            foreach (var ee in e.OrderRoleEvents)
            {
                OrderRoleStateCreatedOrMergePatchedOrRemovedDto eeDto = OrderRoleStateEventDtoConverter.ToOrderRoleStateEventDto(ee);
                orderRoleEvents.Add(eeDto);
            }
            dto.OrderRoleEvents = orderRoleEvents.ToArray();

            var orderItemEvents = new List <OrderItemStateCreatedOrMergePatchedOrRemovedDto>();

            foreach (var ee in e.OrderItemEvents)
            {
                OrderItemStateCreatedOrMergePatchedOrRemovedDto eeDto = OrderItemStateEventDtoConverter.ToOrderItemStateEventDto(ee);
                orderItemEvents.Add(eeDto);
            }
            dto.OrderItemEvents = orderItemEvents.ToArray();

            var orderShipGroupEvents = new List <OrderShipGroupStateCreatedOrMergePatchedOrRemovedDto>();

            foreach (var ee in e.OrderShipGroupEvents)
            {
                OrderShipGroupStateCreatedOrMergePatchedOrRemovedDto eeDto = OrderShipGroupStateEventDtoConverter.ToOrderShipGroupStateEventDto(ee);
                orderShipGroupEvents.Add(eeDto);
            }
            dto.OrderShipGroupEvents = orderShipGroupEvents.ToArray();


            return(dto);
        }