private void UpdateApiModel(ApplicationRecordApiModel application)
 {
     if (application.ApplicationNames != null)
     {
         application.ApplicationNames = application.ApplicationNames.Where(x => !string.IsNullOrEmpty(x.Text)).ToList();
     }
     else
     {
         application.ApplicationNames = new List <ApplicationNameApiModel>();
     }
     if (application.ApplicationNames.Count == 0)
     {
         application.ApplicationNames.Add(new ApplicationNameApiModel(null, application.ApplicationName));
     }
     else
     {
         application.ApplicationNames[0] = new ApplicationNameApiModel(null, application.ApplicationName);
     }
     if (application.DiscoveryUrls != null)
     {
         application.DiscoveryUrls = application.DiscoveryUrls.Where(x => !string.IsNullOrEmpty(x)).ToList();
     }
     else
     {
         application.DiscoveryUrls = new List <string>();
     }
     if (application.DiscoveryUrls.Count == 0)
     {
         application.DiscoveryUrls.Add("");
     }
 }
コード例 #2
0
        public async Task <ActionResult> UnregisterAsync(string id)
        {
            if (String.IsNullOrEmpty(id))
            {
                return(new BadRequestResult());
            }
            AuthorizeClient();
            var application = new ApplicationRecordApiModel();

            try
            {
                application = await _opcVault.GetApplicationAsync(id);

                if (application == null)
                {
                    return(new NotFoundResult());
                }
            }
            catch (Exception ex)
            {
                ViewData["ErrorMessage"] = "Load unregister details of the application failed. " +
                                           "Message:" + ex.Message;
                return(View(application));
            }
            return(View(application));
        }
コード例 #3
0
        async void OnRegister(object sender, EventArgs e)
        {
            var apiModel = new ApplicationRecordApiModel();

            apiModel.ApplicationName = ApplicationNameEntry.Text;
            apiModel.ApplicationUri  = ApplicationUriEntry.Text;
            //apiModel.ApplicationType.GetType.
            await RegisterAsync(apiModel);
        }
コード例 #4
0
        public async Task <ApplicationRecordApiModel> UpdateApplicationAsync([FromBody] ApplicationRecordApiModel application)
        {
            if (application == null)
            {
                throw new ArgumentNullException(nameof(application));
            }
            var applicationServiceModel = application.ToServiceModel();

            applicationServiceModel.AuthorityId = User.Identity.Name;
            return(new ApplicationRecordApiModel(await _applicationDatabase.UpdateApplicationAsync(application.ApplicationId, applicationServiceModel)));
        }
 public ApplicationRecordRegisterApiModel(ApplicationRecordApiModel apiModel) :
     base(ApplicationState.New, apiModel.ApplicationType, apiModel.ApplicationId, apiModel.Id)
 {
     ApplicationUri      = apiModel.ApplicationUri;
     ApplicationName     = apiModel.ApplicationName;
     ApplicationNames    = apiModel.ApplicationNames;
     ProductUri          = apiModel.ProductUri;
     DiscoveryUrls       = apiModel.DiscoveryUrls;
     ServerCapabilities  = apiModel.ServerCapabilities;
     GatewayServerUri    = apiModel.GatewayServerUri;
     DiscoveryProfileUri = apiModel.DiscoveryProfileUri;
 }
 public ApplicationRecordTrimmedApiModel(ApplicationRecordApiModel apiModel) :
     base(apiModel.State, apiModel.ApplicationType, apiModel.ApplicationId, apiModel.Id)
 {
     ApplicationUri      = apiModel.ApplicationUri;
     ApplicationName     = apiModel.ApplicationName;
     ApplicationNames    = apiModel.ApplicationNames;
     ProductUri          = apiModel.ProductUri;
     DiscoveryUrls       = apiModel.DiscoveryUrls;
     ServerCapabilities  = apiModel.ServerCapabilities;
     GatewayServerUri    = apiModel.GatewayServerUri;
     DiscoveryProfileUri = apiModel.DiscoveryProfileUri;
     TrimLength          = 40;
 }
コード例 #7
0
 public async Task RegisterAsync(ApplicationRecordApiModel apiModel)
 {
     try
     {
         if (apiModel.ApplicationType == Microsoft.Azure.IIoT.OpcUa.Api.Vault.Models.ApplicationType.Client)
         {
             apiModel.ServerCapabilities = null;
             apiModel.DiscoveryUrls      = null;
         }
         var application = await this._opcVaultServiceClient.RegisterApplicationAsync(apiModel);
     }
     catch (Exception)
     {
     }
 }
        public async Task <IActionResult> RequestAsync(string id)
        {
            AuthorizeClient();
            try
            {
                var application = await _opcVault.GetApplicationAsync(id);

                UpdateApiModel(application);
                return(View(application));
            }
            catch (Exception ex)
            {
                var application = new ApplicationRecordApiModel();
                ViewData["ErrorMessage"] =
                    "Failed to find the application with ApplicationId " + id + "\r\n" +
                    "Message:" + ex.Message;
                return(View(application));
            }
        }
コード例 #9
0
        public async Task <ActionResult> DetailsAsync(string id)
        {
            AuthorizeClient();
            var application = new ApplicationRecordApiModel();

            try
            {
                application = await _opcVault.GetApplicationAsync(id);

                if (application == null)
                {
                    return(new NotFoundResult());
                }
                return(View(application));
            }
            catch (Exception ex)
            {
                ViewData["ErrorMessage"] =
                    "An application with id " + id + " could not be found in the database.\r\n" +
                    "Message:" + ex.Message;
                return(View(application));
            }
        }
コード例 #10
0
        public async Task <IActionResult> RegisterAsync(string id)
        {
            var apiModel = new ApplicationRecordApiModel();

            AuthorizeClient();
            if (id != null)
            {
                try
                {
                    apiModel = await _opcVault.GetApplicationAsync(id);

                    ViewData["SuccessMessage"] =
                        "Application with id " + id + " successfully loaded.";
                }
                catch (Exception ex)
                {
                    ViewData["ErrorMessage"] =
                        "An application with id " + id + " could not be found in the database.\r\n" +
                        "Message:" + ex.Message;
                }
            }
            UpdateApiModel(apiModel);
            return(View(new ApplicationRecordRegisterApiModel(apiModel)));
        }
コード例 #11
0
        public override NodeId RegisterApplication(
            ApplicationRecordDataType application
            )
        {
            bool   isUpdate      = true;
            string applicationId = null;
            NodeId appNodeId     = base.RegisterApplication(application);

            if (NodeId.IsNull(appNodeId))
            {
                isUpdate = false;
            }
            else
            {
                applicationId = OpcVaultClientHelper.GetServiceIdFromNodeId(appNodeId, NamespaceIndex);
            }

            string capabilities = base.ServerCapabilities(application);

            ApplicationRecordApiModel applicationModel = new ApplicationRecordApiModel(
                ApplicationState.New,
                (Microsoft.Azure.IIoT.OpcUa.Api.Vault.Models.ApplicationType)application.ApplicationType,
                applicationId
                )
            {
                ApplicationUri  = application.ApplicationUri,
                ApplicationName = application.ApplicationNames[0].Text,
                //ApplicationType = (ApplicationType)application.ApplicationType,
                ProductUri         = application.ProductUri,
                ServerCapabilities = capabilities
            };

            if (application.DiscoveryUrls != null)
            {
                applicationModel.DiscoveryUrls = application.DiscoveryUrls.ToArray();
            }

            if (application.ApplicationNames != null && application.ApplicationNames.Count > 0)
            {
                var applicationNames = new List <ApplicationNameApiModel>();
                foreach (var applicationName in application.ApplicationNames)
                {
                    applicationNames.Add(new ApplicationNameApiModel()
                    {
                        Locale = applicationName.Locale,
                        Text   = applicationName.Text
                    });
                }
                applicationModel.ApplicationNames = applicationNames.ToArray();
            }

            if (isUpdate)
            {
                applicationModel = _opcVaultServiceClient.UpdateApplication(applicationId, applicationModel);
            }
            else
            {
                applicationModel = _opcVaultServiceClient.RegisterApplication(applicationModel);
                applicationId    = applicationModel.ApplicationId;
            }

            return(OpcVaultClientHelper.GetNodeIdFromServiceId(applicationId, NamespaceIndex));
        }