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"); } }
public RemoveCommand(GoodsItem item, TransitionLog log) : base(item, log) { }
public StoreCommand(GoodsItem item, TransitionLog log, int areaId) : base(item, log) { _areaId = areaId; }
public WaitingForUnloadCommand(GoodsItem item, TransitionLog log) : base(item, log) { }
public AcceptCommand(GoodsItem item, TransitionLog log) : base(item, log) { }
protected StateChangeCommand(GoodsItem item, TransitionLog log) { _item = item; _log = log; }
public RejectCommand(GoodsItem item, TransitionLog log, string reasoning) : base(item, log) { _reasoning = reasoning; }