Ejemplo n.º 1
0
 public M2mgoDeviceWebApiWrapper(ISerializer serializer, WebApiRequestExecutor webApiRequestExecutor, ILogger logger, M2mgoUserTokenWebApiWrapper userTokenWebApiWrapper)
 {
     _serializer            = serializer;
     _webApiRequestExecutor = webApiRequestExecutor;
     _logger = logger;
     _userTokenWebApiWrapper = userTokenWebApiWrapper;
 }
Ejemplo n.º 2
0
 public M2mgoGatewayProjectWebApiWrapper(ISerializer serializer, ILoggerFactory loggerFactory, WebApiRequestExecutor webApiRequestExecutor, M2mgoUserTokenWebApiWrapper userTokenWebApiWrapper)
 {
     _serializer             = serializer;
     _webApiRequestExecutor  = webApiRequestExecutor;
     _userTokenWebApiWrapper = userTokenWebApiWrapper;
     _logger = loggerFactory.GetLoggerFor(GetType());
 }
Ejemplo n.º 3
0
 internal string RetryWithTokenUpdate(M2MgoCloudAgentConfiguration config, Func <string> func)
 {
     if (_token == null)
     {
         _token = UpdateAccessToken(config);
     }
     try {
         return(func());
     }
     catch (WebException) {
         _token = UpdateAccessToken(config);
         try
         {
             return(func());
         }
         catch (WebException e)
         {
             var resp = e.Response as HttpWebResponse;
             if (resp != null)
             {
                 if (resp.StatusCode == HttpStatusCode.NotFound)
                 {
                     return(string.Empty);
                 }
                 throw new Exception(WebApiRequestExecutor.ReadDataFrom(resp), e);
             }
             throw;
         }
     }
 }
        public void Initialize(string serialId, UicProject project, List <EmbeddedDriverModule> edms)
        {
            WebApiRequestExecutor       webApiRequestExecutor  = new WebApiRequestExecutor();
            M2mgoUserTokenWebApiWrapper userTokenWebApiWrapper = new M2mgoUserTokenWebApiWrapper(_serializer, webApiRequestExecutor, _loggerFactory.GetLoggerFor(typeof(M2mgoUserTokenWebApiWrapper)));
            var m2MgoGatewayProjectWebApiWrapper     = new M2mgoGatewayProjectWebApiWrapper(_serializer, _loggerFactory, webApiRequestExecutor, userTokenWebApiWrapper);
            M2MgoProjectTranslator projectTranslator = new M2MgoProjectTranslator();
            var gatewayService = new GatewayService(m2MgoGatewayProjectWebApiWrapper, _loggerFactory.GetLoggerFor(typeof(GatewayService)), _serializer, projectTranslator);

            M2mgoGetwayProjectDto gatewayProject = gatewayService.RegisterProject(_configuration, serialId, project);

            M2mgoDeviceWebApiWrapper        apiWrapper          = new M2mgoDeviceWebApiWrapper(_serializer, webApiRequestExecutor, _loggerFactory.GetLoggerFor(typeof(M2mgoDeviceWebApiWrapper)), userTokenWebApiWrapper);
            M2mgoGatewayBlueprintTranslator blueprintTranslator = new M2mgoGatewayBlueprintTranslator(projectTranslator);

            _m2MgoProjectBlueprintTranslator = new M2MgoProjectBlueprintTranslator(project, edms);
            var blueprintService = new BlueprintService(apiWrapper, _loggerFactory.GetLoggerFor(typeof(BlueprintService)), blueprintTranslator, _m2MgoProjectBlueprintTranslator, projectTranslator, m2MgoGatewayProjectWebApiWrapper);

            _applianceBlueprints = blueprintService.SynchronizeWithCloud(_configuration, serialId, project, gatewayProject);

            _projectDataTopic      = new DataTopic(_applianceBlueprints.ProjectBlueprint.Identifier.ID, serialId);
            _projectAttributeTopic = new AttributeTopic(_applianceBlueprints.ProjectBlueprint.Identifier.ID, serialId);
            _gatewayDataTopic      = new DataTopic(_applianceBlueprints.GatewayBlueprint.Identifier.ID, serialId);
        }