protected void NewPhysicalInventoryDocumentActionCommandAndExecute(ICreatePhysicalInventory c, IPhysicalInventoryState s, IPhysicalInventoryStateCreated e)
        {
            var pCommandHandler = this.PhysicalInventoryDocumentActionCommandHandler;
            var pCmdContent     = default(string);
            var pCmd            = new PropertyCommand <string, string> {
                Content = pCmdContent, GetState = () => s.DocumentStatusId, SetState = p => e.DocumentStatusId = p, OuterCommandType = CommandType.Create
            };

            pCmd.Context = this.State;
            pCommandHandler.Execute(pCmd);
        }
        public virtual void Create(ICreatePhysicalInventory c)
        {
            IPhysicalInventoryStateCreated e = Map(c);

            Apply(e);
        }
        public virtual PhysicalInventoryStateCreatedDto ToPhysicalInventoryStateCreatedDto(IPhysicalInventoryStateCreated e)
        {
            var dto = new PhysicalInventoryStateCreatedDto();

            dto.PhysicalInventoryEventId = e.PhysicalInventoryEventId;
            dto.CreatedAt              = e.CreatedAt;
            dto.CreatedBy              = e.CreatedBy;
            dto.CommandId              = e.CommandId;
            dto.DocumentStatusId       = e.DocumentStatusId;
            dto.WarehouseId            = e.WarehouseId;
            dto.LocatorIdPattern       = e.LocatorIdPattern;
            dto.ProductIdPattern       = e.ProductIdPattern;
            dto.Posted                 = e.Posted;
            dto.Processed              = e.Processed;
            dto.Processing             = e.Processing;
            dto.DocumentTypeId         = e.DocumentTypeId;
            dto.MovementDate           = e.MovementDate;
            dto.Description            = e.Description;
            dto.IsApproved             = e.IsApproved;
            dto.ApprovalAmount         = e.ApprovalAmount;
            dto.IsQuantityUpdated      = e.IsQuantityUpdated;
            dto.ReversalDocumentNumber = e.ReversalDocumentNumber;
            dto.Active                 = e.Active;
            var physicalInventoryLineEvents = new List <PhysicalInventoryLineStateCreatedDto>();

            foreach (var ee in e.PhysicalInventoryLineEvents)
            {
                PhysicalInventoryLineStateCreatedDto eeDto = PhysicalInventoryLineStateEventDtoConverter.ToPhysicalInventoryLineStateCreatedDto(ee);
                physicalInventoryLineEvents.Add(eeDto);
            }
            dto.PhysicalInventoryLineEvents = physicalInventoryLineEvents.ToArray();

            return(dto);
        }