/// <summary> /// GetApplicationListAsync /// </summary> /// <returns>ApplicationInfoApiModel</returns> public async Task <PagedResult <ApplicationInfoApiModel> > GetApplicationListAsync() { var pageResult = new PagedResult <ApplicationInfoApiModel>(); try { var applicationModel = new ApplicationRegistrationQueryApiModel(); var applications = await _registryService.QueryAllApplicationsAsync(applicationModel); if (applications != null) { foreach (var application in applications) { pageResult.Results.Add(application); } } } catch (Exception e) { _logger.Warning("Can not get applications list"); var errorMessage = string.Concat(e.Message, e.InnerException?.Message ?? "--", e?.StackTrace ?? "--"); _logger.Warning(errorMessage); pageResult.Error = e.Message; } pageResult.PageSize = 10; pageResult.RowCount = pageResult.Results.Count; pageResult.PageCount = (int)Math.Ceiling((decimal)pageResult.RowCount / 10); return(pageResult); }
/// <summary> /// GetApplicationListAsync /// </summary> /// <param name="previousPage"></param> /// <returns>ApplicationInfoApiModel</returns> public async Task <PagedResult <ApplicationInfoApiModel> > GetApplicationListAsync(PagedResult <ApplicationInfoApiModel> previousPage = null) { var pageResult = new PagedResult <ApplicationInfoApiModel>(); try { var query = new ApplicationRegistrationQueryApiModel { IncludeNotSeenSince = true }; var applications = new ApplicationInfoListApiModel(); if (string.IsNullOrEmpty(previousPage?.ContinuationToken)) { applications = await _registryService.QueryApplicationsAsync(query, _commonHelper.PageLength); if (!string.IsNullOrEmpty(applications.ContinuationToken)) { pageResult.PageCount = 2; } } else { applications = await _registryService.ListApplicationsAsync(previousPage.ContinuationToken, _commonHelper.PageLength); if (string.IsNullOrEmpty(applications.ContinuationToken)) { pageResult.PageCount = previousPage.PageCount; } else { pageResult.PageCount = previousPage.PageCount + 1; } } if (applications != null) { foreach (var app in applications.Items) { var application = (await _registryService.GetApplicationAsync(app.ApplicationId)).Application; pageResult.Results.Add(application); } } if (previousPage != null) { previousPage.Results.AddRange(pageResult.Results); pageResult.Results = previousPage.Results; } pageResult.ContinuationToken = applications.ContinuationToken; pageResult.PageSize = _commonHelper.PageLength; pageResult.RowCount = pageResult.Results.Count; } catch (UnauthorizedAccessException) { pageResult.Error = "Unauthorized access: Bad User Access Denied."; } catch (Exception e) { _logger.Warning(e, "Can not get applications list"); pageResult.Error = e.Message; } return(pageResult); }
/// <summary> /// GetDiscovererListAsync /// </summary> /// <returns>DiscovererInfo</returns> public async Task <PagedResult <DiscovererInfo> > GetDiscovererListAsync() { var pageResult = new PagedResult <DiscovererInfo>(); try { var discovererModel = new DiscovererQueryApiModel(); var applicationModel = new ApplicationRegistrationQueryApiModel(); var discoverers = await _registryService.QueryAllDiscoverersAsync(discovererModel); if (discoverers != null) { if (discoverers.Count() > 0) { foreach (var discoverer in discoverers) { var info = new DiscovererInfo { DiscovererModel = discoverer, HasApplication = false, ScanStatus = (discoverer.Discovery == DiscoveryMode.Off) || (discoverer.Discovery == null) ? false : true }; applicationModel.DiscovererId = discoverer.Id; var applications = await _registryService.QueryAllApplicationsAsync(applicationModel); if (applications != null) { info.HasApplication = true; } pageResult.Results.Add(info); } } else { pageResult.Results.Add(new DiscovererInfo { DiscovererModel = new DiscovererApiModel { Id = "No Discoveres Found" } }); } } } catch (Exception e) { Trace.TraceWarning("Can not get discoverers as list"); var errorMessage = string.Concat(e.Message, e.InnerException?.Message ?? "--", e?.StackTrace ?? "--"); Trace.TraceWarning(errorMessage); pageResult.Results.Add(new DiscovererInfo { DiscovererModel = new DiscovererApiModel { Id = e.Message } }); } pageResult.PageSize = 10; pageResult.RowCount = pageResult.Results.Count; pageResult.PageCount = (int)Math.Ceiling((decimal)pageResult.RowCount / 10); return(pageResult); }
/// <summary> /// Find applications /// </summary> /// <param name="service"></param> /// <param name="query"></param> /// <returns></returns> public static async Task <IEnumerable <ApplicationInfoApiModel> > QueryAllApplicationsAsync( this IRegistryServiceApi service, ApplicationRegistrationQueryApiModel query) { var registrations = new List <ApplicationInfoApiModel>(); var result = await service.QueryApplicationsAsync(query, null); registrations.AddRange(result.Items); while (result.ContinuationToken != null) { result = await service.ListApplicationsAsync(result.ContinuationToken, null); registrations.AddRange(result.Items); } return(registrations); }
/// <inheritdoc/> public async Task <ApplicationInfoListApiModel> QueryApplicationsAsync( ApplicationRegistrationQueryApiModel query, int?pageSize, CancellationToken ct) { var request = _httpClient.NewRequest($"{_serviceUri}/v2/applications/query", _resourceId); if (pageSize != null) { request.AddHeader(HttpHeader.MaxItemCount, pageSize.ToString()); } request.SetContent(query); var response = await _httpClient.PostAsync(request, ct).ConfigureAwait(false); response.Validate(); return(response.GetContent <ApplicationInfoListApiModel>()); }
public async Task <ApplicationInfoListApiModel> GetFilteredListOfApplicationsAsync( [FromBody][Required] ApplicationRegistrationQueryApiModel query, [FromQuery] int?pageSize) { if (query == null) { throw new ArgumentNullException(nameof(query)); } if (Request.Headers.ContainsKey(HttpHeader.MaxItemCount)) { pageSize = int.Parse(Request.Headers[HttpHeader.MaxItemCount] .FirstOrDefault()); } var result = await _applications.QueryApplicationsAsync( query.ToServiceModel(), pageSize); return(result.ToApiModel()); }
/// <summary> /// Convert to service model /// </summary> /// <param name="model"></param> /// <returns></returns> public static ApplicationRegistrationQueryModel ToServiceModel( this ApplicationRegistrationQueryApiModel model) { if (model == null) { return(null); } return(new ApplicationRegistrationQueryModel { ApplicationType = (IIoT.OpcUa.Core.Models.ApplicationType?)model.ApplicationType, ApplicationUri = model.ApplicationUri, ProductUri = model.ProductUri, ApplicationName = model.ApplicationName, Locale = model.Locale, Capability = model.Capability, SiteOrGatewayId = model.SiteOrGatewayId, IncludeNotSeenSince = model.IncludeNotSeenSince, GatewayServerUri = model.GatewayServerUri, DiscovererId = model.DiscovererId, DiscoveryProfileUri = model.DiscoveryProfileUri }); }
/// <summary> /// Notify page change /// </summary> /// <param name="page"></param> /// <returns></returns> public async Task PagerPageChangedAsync(int page) { CommonHelper.Spinner = "loader-big"; StateHasChanged(); DiscovererList = CommonHelper.UpdatePage(RegistryHelper.GetDiscovererListAsync, page, DiscovererList, ref _pagedDiscovererList, CommonHelper.PageLengthSmall); NavigationManager.NavigateTo(NavigationManager.BaseUri + "discoverers/" + page); foreach (var discoverer in _pagedDiscovererList.Results) { discoverer.DiscovererModel = await RegistryService.GetDiscovererAsync(discoverer.DiscovererModel.Id); discoverer.ScanStatus = discoverer.DiscovererModel.Discovery != DiscoveryMode.Off && discoverer.DiscovererModel.Discovery != null; var applicationModel = new ApplicationRegistrationQueryApiModel { DiscovererId = discoverer.DiscovererModel.Id }; var applications = await RegistryService.QueryApplicationsAsync(applicationModel, 1); if (applications != null) { discoverer.HasApplication = true; } } CommonHelper.Spinner = string.Empty; StateHasChanged(); }
/// <summary> /// GetDiscovererListAsync /// </summary> /// <param name="previousPage"></param> /// <returns>DiscovererInfo</returns> public async Task <PagedResult <DiscovererInfo> > GetDiscovererListAsync(PagedResult <DiscovererInfo> previousPage = null) { var pageResult = new PagedResult <DiscovererInfo>(); try { var discovererModel = new DiscovererQueryApiModel(); var applicationModel = new ApplicationRegistrationQueryApiModel(); var discoverers = new DiscovererListApiModel(); if (string.IsNullOrEmpty(previousPage?.ContinuationToken)) { discoverers = await _registryService.QueryDiscoverersAsync(discovererModel, _commonHelper.PageLengthSmall); if (!string.IsNullOrEmpty(discoverers.ContinuationToken)) { pageResult.PageCount = 2; } } else { discoverers = await _registryService.ListDiscoverersAsync(previousPage.ContinuationToken, _commonHelper.PageLengthSmall); if (string.IsNullOrEmpty(discoverers.ContinuationToken)) { pageResult.PageCount = previousPage.PageCount; } else { pageResult.PageCount = previousPage.PageCount + 1; } } if (discoverers != null && discoverers.Items.Any()) { foreach (var disc in discoverers.Items) { var discoverer = await _registryService.GetDiscovererAsync(disc.Id); var info = new DiscovererInfo { DiscovererModel = discoverer, HasApplication = false, ScanStatus = (discoverer.Discovery == DiscoveryMode.Off) || (discoverer.Discovery == null) ? false : true }; applicationModel.DiscovererId = discoverer.Id; var applications = await _registryService.QueryApplicationsAsync(applicationModel, 1); if (applications != null) { info.HasApplication = true; } pageResult.Results.Add(info); } if (previousPage != null) { previousPage.Results.AddRange(pageResult.Results); pageResult.Results = previousPage.Results; } pageResult.ContinuationToken = discoverers.ContinuationToken; pageResult.PageSize = _commonHelper.PageLengthSmall; pageResult.RowCount = pageResult.Results.Count; } else { pageResult.Error = "No Discoveres Found"; } } catch (UnauthorizedAccessException) { pageResult.Error = "Unauthorized access: Bad User Access Denied."; } catch (Exception e) { _logger.Warning(e, "Can not get discoverers as list"); pageResult.Error = e.Message; } return(pageResult); }
/// <summary> /// GetDiscovererListAsync /// </summary> /// <param name="previousPage"></param> /// <returns>DiscovererInfo</returns> public async Task <PagedResult <DiscovererInfo> > GetDiscovererListAsync(PagedResult <DiscovererInfo> previousPage = null, bool getNextPage = false) { var pageResult = new PagedResult <DiscovererInfo>(); try { var discovererModel = new DiscovererQueryApiModel(); var applicationModel = new ApplicationRegistrationQueryApiModel(); var discoverers = new DiscovererListApiModel(); if (!getNextPage || string.IsNullOrEmpty(previousPage?.ContinuationToken)) { discoverers = await _registryService.QueryDiscoverersAsync(discovererModel, _commonHelper.PageLengthSmall); } else { discoverers = await _registryService.ListDiscoverersAsync(previousPage.ContinuationToken, _commonHelper.PageLengthSmall); } if (discoverers != null) { if (discoverers.Items != null && discoverers.Items.Any()) { foreach (var disc in discoverers.Items) { var discoverer = await _registryService.GetDiscovererAsync(disc.Id); var info = new DiscovererInfo { DiscovererModel = discoverer, HasApplication = false, ScanStatus = (discoverer.Discovery == DiscoveryMode.Off) || (discoverer.Discovery == null) ? false : true }; applicationModel.DiscovererId = discoverer.Id; var applications = await _registryService.QueryApplicationsAsync(applicationModel, 1); if (applications != null) { info.HasApplication = true; } pageResult.Results.Add(info); } } } if (previousPage != null && getNextPage) { previousPage.Results.AddRange(pageResult.Results); pageResult.Results = previousPage.Results; } pageResult.ContinuationToken = discoverers.ContinuationToken; } catch (UnauthorizedAccessException) { pageResult.Error = "Unauthorized access: Bad User Access Denied."; } catch (ResourceInvalidStateException) { pageResult.Error = "IotHubQuotaExceeded. Send and Receive operations are blocked for this hub until the next UTC day."; } catch (Exception e) { var message = "Cannot get discoverers as list"; _logger.Warning(e, message); pageResult.Error = message; } return(pageResult); }