public async Task <object> FunctionHandler(SmartHomeRequest request, ILambdaContext context)
        {
            try
            {
                LambdaLogger.Log("***********************************************" + Environment.NewLine);
                LambdaLogger.Log("SmartHomeSkill - Test #11" + Environment.NewLine);
                LambdaLogger.Log(request.ToString() + Environment.NewLine);
                LambdaLogger.Log("Request Namespace: " + request.Directive.Header.Namespace);
                LambdaLogger.Log("Request Name: " + request.Directive.Header.Name);

                ITinamousRestClient restClient = new RestClient();

                IAlexaSmartHomeController smartHomeController = ControllerFactory.GetController(request.Directive.Header.Namespace, restClient);
                return(await smartHomeController.HandleAlexaRequest(request, context));
            }
            catch (Exception ex)
            {
                LambdaLogger.Log("Exception processing function: " + ex + Environment.NewLine);
                throw;
            }
        }
        public Task <List <Property> > CreateProperties(string supportedInterface, string token, DeviceDto device, string port)
        {
            IAlexaSmartHomeController controller = ControllerFactory.GetController(supportedInterface, new RestClient());

            return(controller.CreateProperties(token, device, port));
        }