コード例 #1
0
        public virtual void Initialize(IOrderStateCreated stateCreated)
        {
            var aggregateId = stateCreated.OrderEventId.OrderId;
            var state       = new OrderState();

            state.OrderId = aggregateId;
            var aggregate = (OrderAggregate)GetOrderAggregate(state);

            var eventStoreAggregateId = ToEventStoreAggregateId(aggregateId);

            aggregate.Apply(stateCreated);
            Persist(eventStoreAggregateId, aggregate, state);
        }
コード例 #2
0
ファイル: OrderState.cs プロジェクト: uwitec/wms-8
        public virtual void When(IOrderStateCreated e)
        {
            ThrowOnWrongEvent(e);
            this.OrderTypeId = e.OrderTypeId;

            this.OrderName = e.OrderName;

            this.ExternalId = e.ExternalId;

            this.SalesChannelEnumId = e.SalesChannelEnumId;

            this.OrderDate = e.OrderDate;

            this.Priority = e.Priority;

            this.EntryDate = e.EntryDate;

            this.PickSheetPrintedDate = e.PickSheetPrintedDate;

            this.StatusId = e.StatusId;

            this.CurrencyUomId = e.CurrencyUomId;

            this.SyncStatusId = e.SyncStatusId;

            this.BillingAccountId = e.BillingAccountId;

            this.OriginFacilityId = e.OriginFacilityId;

            this.WebSiteId = e.WebSiteId;

            this.ProductStoreId = e.ProductStoreId;

            this.TerminalId = e.TerminalId;

            this.TransactionId = e.TransactionId;

            this.AutoOrderShoppingListId = e.AutoOrderShoppingListId;

            this.NeedsInventoryIssuance = e.NeedsInventoryIssuance;

            this.IsRushOrder = e.IsRushOrder;

            this.InternalCode = e.InternalCode;

            this.RemainingSubTotal = e.RemainingSubTotal;

            this.GrandTotal = e.GrandTotal;

            this.InvoicePerShipment = e.InvoicePerShipment;

            this.Active = (e.Active != null && e.Active.HasValue) ? e.Active.Value : default(bool);

            this.CreatedBy = e.CreatedBy;
            this.CreatedAt = e.CreatedAt;

            foreach (IOrderRoleStateCreated innerEvent in e.OrderRoleEvents)
            {
                IOrderRoleState innerState = this.OrderRoles.Get(innerEvent.GlobalId.PartyRoleId, true);
                innerState.Mutate(innerEvent);
            }
            foreach (IOrderItemStateCreated innerEvent in e.OrderItemEvents)
            {
                IOrderItemState innerState = this.OrderItems.Get(innerEvent.GlobalId.OrderItemSeqId, true);
                innerState.Mutate(innerEvent);
            }
            foreach (IOrderShipGroupStateCreated innerEvent in e.OrderShipGroupEvents)
            {
                IOrderShipGroupState innerState = this.OrderShipGroups.Get(innerEvent.GlobalId.ShipGroupSeqId, true);
                innerState.Mutate(innerEvent);
            }
        }
コード例 #3
0
ファイル: OrderAggregate.cs プロジェクト: windygu/wms-2
        protected virtual IOrderStateCreated Map(ICreateOrder c)
        {
            var stateEventId     = new OrderEventId(c.OrderId, c.Version);
            IOrderStateCreated e = NewOrderStateCreated(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.CommandId = c.CommandId;


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

            foreach (ICreateOrderRole innerCommand in c.OrderRoles)
            {
                ThrowOnInconsistentCommands(c, innerCommand);

                IOrderRoleStateCreated innerEvent = MapCreate(innerCommand, c, version, _state);
                e.AddOrderRoleEvent(innerEvent);
            }

            foreach (ICreateOrderItem innerCommand in c.OrderItems)
            {
                ThrowOnInconsistentCommands(c, innerCommand);

                IOrderItemStateCreated innerEvent = MapCreate(innerCommand, c, version, _state);
                e.AddOrderItemEvent(innerEvent);
            }

            foreach (ICreateOrderShipGroup innerCommand in c.OrderShipGroups)
            {
                ThrowOnInconsistentCommands(c, innerCommand);

                IOrderShipGroupStateCreated innerEvent = MapCreate(innerCommand, c, version, _state);
                e.AddOrderShipGroupEvent(innerEvent);
            }


            return(e);
        }
コード例 #4
0
ファイル: OrderAggregate.cs プロジェクト: windygu/wms-2
        public virtual void Create(ICreateOrder c)
        {
            IOrderStateCreated e = Map(c);

            Apply(e);
        }
コード例 #5
0
 void IOrderState.When(IOrderStateCreated e)
 {
     throw new NotSupportedException();
 }
コード例 #6
0
        public virtual OrderStateCreatedDto ToOrderStateCreatedDto(IOrderStateCreated e)
        {
            var dto = new OrderStateCreatedDto();

            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;
            var orderRoleEvents = new List <OrderRoleStateCreatedDto>();

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

            var orderItemEvents = new List <OrderItemStateCreatedDto>();

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

            var orderShipGroupEvents = new List <OrderShipGroupStateCreatedDto>();

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

            return(dto);
        }