示例#1
0
        public ISellableInventoryItemEntryMvoState Get(SellableInventoryItemEntryId id)
        {
            ISellableInventoryItemEntryMvoState state = CurrentSession.Get <SellableInventoryItemEntryMvoState>(id);

            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <ISellableInventoryItemEntryMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
示例#2
0
        public ISellableInventoryItemEntryMvoState Get(SellableInventoryItemEntryId id, bool nullAllowed)
        {
            ISellableInventoryItemEntryMvoState state = CurrentSession.Get <SellableInventoryItemEntryMvoState> (id);

            if (!nullAllowed && state == null)
            {
                state = new SellableInventoryItemEntryMvoState();
                (state as SellableInventoryItemEntryMvoState).SellableInventoryItemEntryId = id;
            }
            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <ISellableInventoryItemEntryMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
        public async Task <ISellableInventoryItemEntryMvoState> GetAsync(SellableInventoryItemEntryId sellableInventoryItemEntryId)
        {
            ISellableInventoryItemEntryMvoState state = null;
            var idObj         = SellableInventoryItemEntryMvoProxyUtils.ToIdString(sellableInventoryItemEntryId);
            var uriParameters = new SellableInventoryItemEntryMvoUriParameters();

            uriParameters.Id = idObj;

            var req = new SellableInventoryItemEntryMvoGetRequest(uriParameters);

            var resp = await _ramlClient.SellableInventoryItemEntryMvo.Get(req);

            SellableInventoryItemEntryMvoProxyUtils.ThrowOnHttpResponseError(resp);
            state = (resp.Content == null) ? null : resp.Content.ToSellableInventoryItemEntryMvoState();
            return(state);
        }
示例#4
0
        public void Save(ISellableInventoryItemEntryMvoState state)
        {
            ISellableInventoryItemEntryMvoState s = state;

            if (ReadOnlyProxyGenerator != null)
            {
                s = ReadOnlyProxyGenerator.GetTarget <ISellableInventoryItemEntryMvoState>(state);
            }
            CurrentSession.SaveOrUpdate(s);

            var saveable = s as ISaveable;

            if (saveable != null)
            {
                saveable.Save();
            }
            CurrentSession.Flush();
        }
示例#5
0
 public SellableInventoryItemEntryMvoStateDtoWrapper(ISellableInventoryItemEntryMvoState state)
 {
     this._state = state;
 }
示例#6
0
 public SellableInventoryItemEntryMvoStateDtoWrapper()
 {
     this._state = new SellableInventoryItemEntryMvoState();
 }
示例#7
0
        protected bool IsRepeatedCommand(ISellableInventoryItemEntryMvoCommand command, IEventStoreAggregateId eventStoreAggregateId, ISellableInventoryItemEntryMvoState state)
        {
            bool repeated = false;

            if (((ISellableInventoryItemEntryMvoStateProperties)state).SellableInventoryItemVersion > command.AggregateVersion)
            {
                var lastEvent = EventStore.GetEvent(typeof(ISellableInventoryItemEntryMvoEvent), eventStoreAggregateId, command.AggregateVersion);
                if (lastEvent != null && lastEvent.CommandId == command.CommandId)
                {
                    repeated = true;
                }
            }
            return(repeated);
        }
示例#8
0
 private void Persist(IEventStoreAggregateId eventStoreAggregateId, ISellableInventoryItemEntryMvoAggregate aggregate, ISellableInventoryItemEntryMvoState state)
 {
     EventStore.AppendEvents(eventStoreAggregateId, ((ISellableInventoryItemEntryMvoStateProperties)state).SellableInventoryItemVersion, aggregate.Changes, () => { StateRepository.Save(state); });
     if (AggregateEventListener != null)
     {
         AggregateEventListener.EventAppended(new AggregateEvent <ISellableInventoryItemEntryMvoAggregate, ISellableInventoryItemEntryMvoState>(aggregate, state, aggregate.Changes));
     }
 }
示例#9
0
 public abstract ISellableInventoryItemEntryMvoAggregate GetSellableInventoryItemEntryMvoAggregate(ISellableInventoryItemEntryMvoState state);
示例#10
0
        public static TCreateSellableInventoryItemEntryMvo ToCreateSellableInventoryItemEntryMvo <TCreateSellableInventoryItemEntryMvo>(this ISellableInventoryItemEntryMvoState state)
            where TCreateSellableInventoryItemEntryMvo : ICreateSellableInventoryItemEntryMvo, new()
        {
            var cmd = new TCreateSellableInventoryItemEntryMvo();

            cmd.SellableInventoryItemVersion = ((ISellableInventoryItemEntryMvoStateProperties)state).SellableInventoryItemVersion;

            cmd.SellableInventoryItemEntryId = state.SellableInventoryItemEntryId;
            cmd.SellableQuantity             = state.SellableQuantity;
            cmd.SourceEventId = state.SourceEventId;
            cmd.Version       = ((ISellableInventoryItemEntryMvoStateProperties)state).Version;
            cmd.SellableInventoryItemSellableQuantity = state.SellableInventoryItemSellableQuantity;
            cmd.SellableInventoryItemCreatedBy        = state.SellableInventoryItemCreatedBy;
            cmd.SellableInventoryItemCreatedAt        = state.SellableInventoryItemCreatedAt;
            cmd.SellableInventoryItemUpdatedBy        = state.SellableInventoryItemUpdatedBy;
            cmd.SellableInventoryItemUpdatedAt        = state.SellableInventoryItemUpdatedAt;
            return(cmd);
        }
示例#11
0
        public static TMergePatchSellableInventoryItemEntryMvo ToMergePatchSellableInventoryItemEntryMvo <TMergePatchSellableInventoryItemEntryMvo>(this ISellableInventoryItemEntryMvoState state)
            where TMergePatchSellableInventoryItemEntryMvo : IMergePatchSellableInventoryItemEntryMvo, new()
        {
            var cmd = new TMergePatchSellableInventoryItemEntryMvo();

            cmd.SellableInventoryItemVersion = ((ISellableInventoryItemEntryMvoStateProperties)state).SellableInventoryItemVersion;

            cmd.SellableInventoryItemEntryId = state.SellableInventoryItemEntryId;
            cmd.SellableQuantity             = state.SellableQuantity;
            cmd.SourceEventId = state.SourceEventId;
            cmd.Version       = ((ISellableInventoryItemEntryMvoStateProperties)state).Version;
            cmd.SellableInventoryItemSellableQuantity = state.SellableInventoryItemSellableQuantity;
            cmd.SellableInventoryItemCreatedBy        = state.SellableInventoryItemCreatedBy;
            cmd.SellableInventoryItemCreatedAt        = state.SellableInventoryItemCreatedAt;
            cmd.SellableInventoryItemUpdatedBy        = state.SellableInventoryItemUpdatedBy;
            cmd.SellableInventoryItemUpdatedAt        = state.SellableInventoryItemUpdatedAt;

            if (state.SourceEventId == null)
            {
                cmd.IsPropertySourceEventIdRemoved = true;
            }
            if (state.SellableInventoryItemCreatedBy == null)
            {
                cmd.IsPropertySellableInventoryItemCreatedByRemoved = true;
            }
            if (state.SellableInventoryItemUpdatedBy == null)
            {
                cmd.IsPropertySellableInventoryItemUpdatedByRemoved = true;
            }
            return(cmd);
        }
示例#12
0
        public static TDeleteSellableInventoryItemEntryMvo ToDeleteSellableInventoryItemEntryMvo <TDeleteSellableInventoryItemEntryMvo>(this ISellableInventoryItemEntryMvoState state)
            where TDeleteSellableInventoryItemEntryMvo : IDeleteSellableInventoryItemEntryMvo, new()
        {
            var cmd = new TDeleteSellableInventoryItemEntryMvo();

            cmd.SellableInventoryItemEntryId = state.SellableInventoryItemEntryId;
            cmd.SellableInventoryItemVersion = ((ISellableInventoryItemEntryMvoStateProperties)state).SellableInventoryItemVersion;

            return(cmd);
        }
示例#13
0
        public static ISellableInventoryItemEntryMvoCommand ToCreateOrMergePatchSellableInventoryItemEntryMvo <TCreateSellableInventoryItemEntryMvo, TMergePatchSellableInventoryItemEntryMvo>(this ISellableInventoryItemEntryMvoState state)
            where TCreateSellableInventoryItemEntryMvo : ICreateSellableInventoryItemEntryMvo, new()
            where TMergePatchSellableInventoryItemEntryMvo : IMergePatchSellableInventoryItemEntryMvo, new()
        {
            bool bUnsaved = ((ISellableInventoryItemEntryMvoState)state).IsUnsaved;

            if (bUnsaved)
            {
                return(state.ToCreateSellableInventoryItemEntryMvo <TCreateSellableInventoryItemEntryMvo>());
            }
            else
            {
                return(state.ToMergePatchSellableInventoryItemEntryMvo <TMergePatchSellableInventoryItemEntryMvo>());
            }
        }
示例#14
0
 public override ISellableInventoryItemEntryMvoAggregate GetSellableInventoryItemEntryMvoAggregate(ISellableInventoryItemEntryMvoState state)
 {
     return(new SellableInventoryItemEntryMvoAggregate(state));
 }
示例#15
0
 public SellableInventoryItemEntryMvoAggregate(ISellableInventoryItemEntryMvoState state)
 {
     _state = state;
 }