public RequestHandlerBase GetHandler(ServiceRequestDTO data)
        {
            RequestHandlerBase handler = null;
            var type = data.GetType();

            if (type == typeof(TransferAssetRequestDTO))
            {
                handler = new TransferAssetReqHandler();
            }
            else if (type == typeof(TerminationRequestDTO))
            {
                handler = new TerminationReqHandler();
            }
            else if (type == typeof(ReturnDeviceRequestDTO))
            {
                handler = new ReturnDeviceReqHandler();
            }
            else if (type == typeof(NewScenarioRequestDTO))
            {
                handler = new NewScenarioReqHandler();
            }
            else if (type == typeof(NewContractRequestDTO))
            {
                handler = new NewContractReqHandler();
            }
            else if (type == typeof(ErrorChargesRequestDTO))
            {
                handler = new ErrorChargesReqHandler();
            }
            else if (type == typeof(BrokenDeviceRequestDTO))
            {
                handler = new BrokenDeviceReqHandler();
            }

            if (handler != null)
            {
                handler.ServiceRequest = data;
                return(handler);
            }
            throw new NotImplementedException();
        }
        public RequestHandlerBase GetHandler(EScenario scenario)
        {
            RequestHandlerBase handler = null;

            switch (scenario)
            {
            case EScenario.BROKEN_DEVICE:
                handler = new BrokenDeviceReqHandler();
                break;

            case EScenario.NEW_SCENARIO:
                handler = new NewScenarioReqHandler();
                break;

            case EScenario.ERROR_CHARGES:
                handler = new ErrorChargesReqHandler();
                break;

            case EScenario.NEW_CONTRACT:
                handler = new NewContractReqHandler();
                break;

            case EScenario.RETURN_DEVICE:
                handler = new ReturnDeviceReqHandler();
                break;

            case EScenario.TERMINATION:
                handler = new TerminationReqHandler();
                break;

            case EScenario.TRANSFER_ASSET:
                handler = new TransferAssetReqHandler();
                break;
            }
            if (handler != null)
            {
                return(handler);
            }
            throw new NotImplementedException();
        }