コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
        /// <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;
            }
        }