public StateChangeCommand FromTransitionType(GoodsItem item, GoodsItemStatus status, string reasoning = "", int areaId = 0)
        {
            var log = new TransitionLog(_repository, item);

            switch (status)
            {
            case GoodsItemStatus.Arrived:
                return(new ArriveCommand(item, log));

            case GoodsItemStatus.Accepted:
                return(new AcceptCommand(item, log));

            case GoodsItemStatus.Storing:
                return(new StoreCommand(item, log, areaId));

            case GoodsItemStatus.WaitingForUnloading:
                return(new WaitingForUnloadCommand(item, log));

            case GoodsItemStatus.Unloaded:
                return(new UnloadCommand(item, log));

            case GoodsItemStatus.Removed:
                return(new RemoveCommand(item, log));

            case GoodsItemStatus.Rejected:
                return(new RejectCommand(item, log, reasoning));

            default:
                throw new ArgumentException("Incorrect target state");
            }
        }
Пример #2
0
 public RemoveCommand(GoodsItem item, TransitionLog log) : base(item, log)
 {
 }
Пример #3
0
 public StoreCommand(GoodsItem item, TransitionLog log, int areaId) : base(item, log)
 {
     _areaId = areaId;
 }
 public WaitingForUnloadCommand(GoodsItem item, TransitionLog log) : base(item, log)
 {
 }
Пример #5
0
 public AcceptCommand(GoodsItem item, TransitionLog log) : base(item, log)
 {
 }
 protected StateChangeCommand(GoodsItem item, TransitionLog log)
 {
     _item = item;
     _log  = log;
 }
Пример #7
0
 public RejectCommand(GoodsItem item, TransitionLog log, string reasoning) : base(item, log)
 {
     _reasoning = reasoning;
 }