/// <summary> /// Устанавливает подключение к серверу ЛЭРС УЧЁТ. /// </summary> public void Connect() { if (this.Context.Server == null) { this.Context.Server = new Lers.LersServer(); } if (!this.Context.Server.IsConnected) { var auth = new Lers.Networking.BasicAuthenticationInfo(this.Context.Login, Lers.Networking.SecureStringHelper.ConvertToSecureString(this.Context.Password)); this.Context.Server.VersionMismatch += (sender, e) => e.Ignore = true; this.Context.Server.Connect(Config.Instance.LersServerAddress, Config.Instance.LersServerPort, auth); } }
public void Run(DateTime dateBgn, DateTime dateEnd) { // Информация для аутентификации (логин и пароль учётной записи) var authInfo = new Lers.Networking.BasicAuthenticationInfo(this._Username, Lers.Networking.SecureStringHelper.ConvertToSecureString(this._Password)); // Устанавливаем подключение к серверу this.theServer.Connect(this._Hostname, this._Port, authInfo); // Ищем точку учёта. В этом примере мы получем её по номеру. var measurePoint = this.theServer.MeasurePoints.GetByNumber(727); Log(measurePoint.FullTitle); // Запрашиваем суточные данные за указанный интервал var consumptionData = measurePoint.Data.GetConsumption(dateBgn, dateEnd, Lers.Data.DeviceDataType.Day); // Выводим на экран массовый расход foreach (var consumptionRecord in consumptionData) { double?valueT = consumptionRecord.GetValue(Lers.Data.DataParameter.T_in.ToString()); string stringValueT = valueT.HasValue ? valueT.Value.ToString() : "<нет данных>"; double?valueP = consumptionRecord.GetValue(Lers.Data.DataParameter.P_in.ToString()); string stringValueP = valueP.HasValue ? valueP.Value.ToString() : "<нет данных>"; if (theListView != null) { ListViewItem Item = new ListViewItem(consumptionRecord.DateTime.ToLongDateString()); Item.SubItems.Add(stringValueT); Item.SubItems.Add(stringValueP); theListView.Items.Add(Item); } } }
/// <summary> /// Подключается к серверу с использованием логина и пароля. /// </summary> /// <param name="connectionUrl"></param> /// <param name="login"></param> /// <param name="password"></param> /// <param name="acceptSsl"></param> /// <returns></returns> public async Task Connect(string connectionUrl, string login, string password, bool acceptSsl = false) { try { var securePassword = Lers.Networking.SecureStringHelper.ConvertToSecureString(password); var loginInfo = new Lers.Networking.BasicAuthenticationInfo(login, securePassword) { GetSessionRestoreToken = true }; string schema = LersScheme.Plain; if (acceptSsl) { schema = LersScheme.Secure; } connectionUrl = schema + "://" + connectionUrl; var uri = (new UriBuilder(connectionUrl)).Uri; var token = await this.Server.ConnectAsync(uri, null, loginInfo, CancellationToken.None); AppDataStorage.Token = token.Token; AppDataStorage.Uri = uri.ToString(); AppDataStorage.Login = login; } catch (Lers.Networking.AuthorizationFailedException) { // Произошла ошибка аутентификации. Нужно очистить токен и выдать ошибку. ClearStoredToken(); throw; } }