示例#1
0
        protected virtual IWarehouseStateMergePatched Map(IMergePatchWarehouse c)
        {
            var stateEventId = new WarehouseEventId(c.WarehouseId, c.Version);
            IWarehouseStateMergePatched e = NewWarehouseStateMergePatched(stateEventId);

            e.WarehouseName = c.WarehouseName;
            e.Description   = c.Description;
            e.IsInTransit   = c.IsInTransit;
            e.Active        = c.Active;
            e.IsPropertyWarehouseNameRemoved = c.IsPropertyWarehouseNameRemoved;
            e.IsPropertyDescriptionRemoved   = c.IsPropertyDescriptionRemoved;
            e.IsPropertyIsInTransitRemoved   = c.IsPropertyIsInTransitRemoved;
            e.IsPropertyActiveRemoved        = c.IsPropertyActiveRemoved;

            e.CommandId = c.CommandId;


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

            var version = c.Version;


            return(e);
        }
示例#2
0
        protected virtual IWarehouseStateMergePatched Map(IMergePatchWarehouse c)
        {
            var stateEventId = new WarehouseStateEventId(c.WarehouseId, c.Version);
            IWarehouseStateMergePatched e = NewWarehouseStateMergePatched(stateEventId);

            e.Name                         = c.Name;
            e.Description                  = c.Description;
            e.IsInTransit                  = c.IsInTransit;
            e.Active                       = c.Active;
            e.IsPropertyNameRemoved        = c.IsPropertyNameRemoved;
            e.IsPropertyDescriptionRemoved = c.IsPropertyDescriptionRemoved;
            e.IsPropertyIsInTransitRemoved = c.IsPropertyIsInTransitRemoved;
            e.IsPropertyActiveRemoved      = c.IsPropertyActiveRemoved;

            ReflectUtils.CopyPropertyValue("CommandId", c, e);


            e.CreatedBy = (string)c.RequesterId;
            e.CreatedAt = DateTime.Now;

            var version = c.Version;


            return(e);
        }
示例#3
0
        public virtual void When(IWarehouseStateMergePatched e)
        {
            ThrowOnWrongEvent(e);

            if (e.Name == null)
            {
                if (e.IsPropertyNameRemoved)
                {
                    this.Name = default(string);
                }
            }
            else
            {
                this.Name = e.Name;
            }

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

            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.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;
        }
示例#4
0
        public virtual WarehouseStateMergePatchedDto ToWarehouseStateMergePatchedDto(IWarehouseStateMergePatched e)
        {
            var dto = new WarehouseStateMergePatchedDto();

            dto.StateEventId                 = new WarehouseStateEventIdDtoWrapper(e.StateEventId);
            dto.CreatedAt                    = e.CreatedAt;
            dto.CreatedBy                    = e.CreatedBy;
            dto.CommandId                    = e.CommandId;
            dto.Name                         = e.Name;
            dto.Description                  = e.Description;
            dto.IsInTransit                  = e.IsInTransit;
            dto.Active                       = e.Active;
            dto.IsPropertyNameRemoved        = e.IsPropertyNameRemoved;
            dto.IsPropertyDescriptionRemoved = e.IsPropertyDescriptionRemoved;
            dto.IsPropertyIsInTransitRemoved = e.IsPropertyIsInTransitRemoved;
            dto.IsPropertyActiveRemoved      = e.IsPropertyActiveRemoved;

            return(dto);
        }
 void IWarehouseState.When(IWarehouseStateMergePatched e)
 {
     throw new NotSupportedException();
 }
示例#6
0
        public virtual void MergePatch(IMergePatchWarehouse c)
        {
            IWarehouseStateMergePatched e = Map(c);

            Apply(e);
        }