public UpdateOrderNoService(IExpenseRepository expenseRepository)
        {
            _updateOrderNoService = new ActionStrategyService <UpdateOrderNoType, UpdateOrderNoBase>();

            _updateOrderNoService.AddStrategy(UpdateOrderNoType.Create, new SetOrderNoOnCreateStrategy(expenseRepository).Execute);
            _updateOrderNoService.AddStrategy(UpdateOrderNoType.Sort, new SetOrderNoOnSortStrategy(expenseRepository).Execute);
            _updateOrderNoService.AddStrategy(UpdateOrderNoType.SortAsLast, new SetMaxOrderNoStrategy(expenseRepository).Execute);
        }
        public UpdatePersonOrderNoService()
        {
            _updateOrderNoService = new ActionStrategyService <UpdateOrderNoType, UpdatePersonOrderContainer>();

            _updateOrderNoService.AddStrategy(UpdateOrderNoType.Create, new SetOrderNoOnCreatePersonStrategy().Execute);
            _updateOrderNoService.AddStrategy(UpdateOrderNoType.SortAsLast, new SetMaxOrderNoPersonStrategy().Execute);
            _updateOrderNoService.AddStrategy(UpdateOrderNoType.Detach, new SetMaxOrderNoPersonStrategy().Execute);
            _updateOrderNoService.AddStrategy(UpdateOrderNoType.Sort, new SetOrderNoOnSortPersonStrategy().Execute);
            _updateOrderNoService.AddStrategy(UpdateOrderNoType.Join, new SetParentOrderNoPersonStrategy().Execute);
        }
        public ProcessLayoutService(Container container,
                                    IBallroomRepository ballroomRepository,
                                    IUnitOfWork <BallroomContext> unitOfWork,
                                    IActionStrategyService <Type, UpdateContainer> processItemStrategy)
        {
            _container           = container;
            _ballroomRepository  = ballroomRepository;
            _unitOfWork          = unitOfWork;
            _processItemStrategy = processItemStrategy;

            SetupStrategy();
        }