Example #1
0
        public async Task SetOptionsAsync(UserAD user, string serverUpdateURI, string pathToExternalUpdateZip = null)
        {
            _userAD                  = user;
            _serverUpdateURI         = serverUpdateURI;
            _pathToExternalUpdateZip = pathToExternalUpdateZip;

            if (!Directory.Exists(CommonConst.LocalTempFolder))
            {
                Directory.CreateDirectory(CommonConst.LocalTempFolder);
            }

            if (!Directory.Exists(CommonConst.LocalUpdateFolder))
            {
                Directory.CreateDirectory(CommonConst.LocalUpdateFolder);
            }

            if (!string.IsNullOrWhiteSpace(_serverUpdateURI))
            {
                Options    = MakeUpdateOptions();
                stopUpdate = false;
            }
            else
            {
                CommonExtensions.Logger(LogTypes.Info, $"При инициализации не указан адрес сервера обновлений.");
                CommonExtensions.Logger(LogTypes.Info, $"Ищу файл '{CommonConst.PathToUrl}'");
                if (!string.IsNullOrWhiteSpace(CommonConst.PathToUrl) && File.Exists(CommonConst.PathToUrl))
                {
                    IList <string> file = await ReadFileAsync(CommonConst.PathToUrl);

                    if (file?.Count > 0)
                    {
                        foreach (var f in file)
                        {
                            CommonExtensions.Logger(LogTypes.Info, f);
                            this._serverUpdateURI = f;
                            CommonExtensions.Logger(LogTypes.Info, $"Адрес источника обновлений найден в файле как: '{f}'");
                            break;
                        }

                        Options = MakeUpdateOptions();
                        EvntStatus?.Invoke(this, new TextEventArgs($"Адрес сервера обновлений: {Options.serverUpdateURI}"));

                        stopUpdate = false;
                    }
                    else
                    {
                        stopUpdate = true;
                    }
                }
                else
                {
                    stopUpdate = true;
                    EvntStatus?.Invoke(this, new TextEventArgs($"Файл с адресом сервера обновлений '{CommonConst.PathToUrl}' не найден"));
                }
            }

            if (Options?.DoObjectPropertiesAsStringDictionary().Count > 0 && !string.IsNullOrWhiteSpace(CommonConst.PathToUrl))
            {
                CommonExtensions.Logger(LogTypes.Info, "Параметры для скачивания/загрузки обновлений:");
                CommonExtensions.Logger(LogTypes.Info, Options.DoObjectPropertiesAsStringDictionary().AsString());
            }
            else
            {
                CommonExtensions.Logger(LogTypes.Info, $"Операции загрузки/выгрузки обновлений не доступны.");
            }
        }