Esempio n. 1
0
        public async Task <IActionResult> GetCompatibleFirmwareVersions([Required, FromBody] CompatibleFirmwareVersionReadModel module)
        {
            var prefix = nameof(CompatibleFirmwareVersionController);

            _logger.LogInformation($"{prefix}: Getting list of compatible firmware versions based on a firmware version.");
            var result = await _manager.GetCompatibleFirmwareVersionsAsync(module).ConfigureAwait(false);

            return(Ok(result));
        }
Esempio n. 2
0
        /// <summary>
        /// Gets the compatible firmware versions asynchronous.
        /// </summary>
        /// <param name="module">The module.</param>
        /// <returns></returns>
        public async Task <IEnumerable <string> > GetCompatibleFirmwareVersionsAsync(CompatibleFirmwareVersionReadModel module)
        {
            EnsureArg.IsNotNull(module);
            EnsureArg.IsNotEmptyOrWhiteSpace(module.FirmwareVersion);
            EnsureArg.IsNotEmptyOrWhiteSpace(module.DeviceType);
            EnsureArg.HasItems(module.Modules);

            var prefix           = nameof(CompatibleFirmwareVersionManager);
            var firmwareVersions = new List <string>();

            _logger.LogInformation($"{prefix}: methodName: {nameof(GetCompatibleFirmwareVersionsAsync)} Getting list of compatible firmware versions based on a firmware version.");
            _logger.LogInformation($"{prefix}: methodName: {nameof(GetCompatibleFirmwareVersionsAsync)} Cloning firmware version git repository.");
            var firmwareVersionUrl = await _firmwareVersionServiceManager.GetFirmwareUrlAsync(module.DeviceType).ConfigureAwait(false);

            _firmwareVersionServiceManager.SetGitRepoUrl(module.DeviceType, firmwareVersionUrl);
            await _firmwareVersionServiceManager.CloneGitRepoAsync().ConfigureAwait(false);

            var listOfTags = await _firmwareVersionServiceManager.GetAllFirmwareVersionsAsync().ConfigureAwait(false);

            listOfTags       = listOfTags.Where(x => !string.Equals(x, module.FirmwareVersion, StringComparison.OrdinalIgnoreCase)).ToList();
            firmwareVersions = await _firmwareVersionServiceManager.GetCompatibleFirmwareVersions(listOfTags, module.FirmwareVersion, module.DeviceType, module.Modules);

            return(firmwareVersions);
        }