public TerminalCommandResponse AddModbusDevice(GTSetConfigurationRequest request)
        {
            var config = WebApiServerConfigurationManager.Instance.Configurations;
            TerminalCommandRequest commandRequest = new TerminalCommandRequest();

            commandRequest.TerminalId = request.TerminalId;
            try
            {
                if (!(request.RequestType == GatewayRequestType.TerminalCommand &&
                      request.CommandType == GTCommandType.AddModbusDevice))
                {
                    return(new TerminalCommandResponse
                    {
                        RequestType = request.RequestType,
                        RequestId = request.RequestId,
                        Message = "Invalid Request Type",
                        ResponseStatus = ResponseStatus.Failed,
                        TerminalId = request.TerminalId
                    });
                }
                commandRequest.Data = GTCommandFactory.CreateSetCommand(request.TerminalId, request.Data, request.CommandType);
                return(TerminalRequestHandler.SendGTCommandRequest(commandRequest, request.CommandType));
            }
            catch (Exception ex)
            {
                return(new TerminalCommandResponse
                {
                    RequestId = commandRequest.RequestId,
                    Data = null,
                    RequestType = commandRequest.RequestType,
                    ResponseStatus = ResponseStatus.Failed,
                    Message = ex.Message
                });
            }
        }
        public TerminalCommandResponse SetConfiguration(GTSetConfigurationRequest request)
        {
            var config = WebApiServerConfigurationManager.Instance.Configurations;
            TerminalCommandRequest commandRequest = new TerminalCommandRequest();

            commandRequest.TerminalId = request.TerminalId;
            try
            {
                if (request.RequestType != GatewayRequestType.TerminalCommand)
                {
                    return(new TerminalCommandResponse
                    {
                        RequestType = request.RequestType,
                        RequestId = request.RequestId,
                        Message = "Invalid Request Type",
                        ResponseStatus = ResponseStatus.Failed,
                        TerminalId = request.TerminalId
                    });
                }

                if (request.CommandType == GTCommandType.GeneralSettings ||
                    request.CommandType == GTCommandType.ExtendedConfigurationSettings ||
                    request.CommandType == GTCommandType.PollingAndGprsSettings ||
                    request.CommandType == GTCommandType.Reset ||
                    request.CommandType == GTCommandType.ResetRom ||
                    request.CommandType == GTCommandType.SimAndServerSettings ||
                    request.CommandType == GTCommandType.WatchdogSettings)
                {
                    commandRequest.Data = GTCommandFactory.CreateSetCommand(request.TerminalId, request.Data, request.CommandType);
                    var response = TerminalRequestHandler.SendGTCommandRequest(commandRequest, request.CommandType);
                    response.RequestId = request.RequestId;
                    return(response);
                }
                else
                {
                    return(new TerminalCommandResponse
                    {
                        RequestType = request.RequestType,
                        RequestId = request.RequestId,
                        Message = "Invalid Request Type",
                        ResponseStatus = ResponseStatus.Failed,
                        TerminalId = request.TerminalId
                    });
                }
            }
            catch (Exception ex)
            {
                return(new TerminalCommandResponse
                {
                    RequestId = commandRequest.RequestId,
                    Data = null,
                    RequestType = commandRequest.RequestType,
                    ResponseStatus = ResponseStatus.Failed,
                    Message = ex.Message
                });
            }
        }