Ejemplo n.º 1
0
        public ActionResult <AddReaderResponse> Post(AddReader request)
        {
            GXSelectArgs arg = GXSelectArgs.SelectAll <GXReaderInfo>();

            arg.Where.And <GXReaderInfo>(q => q.Guid == request.Reader.Guid);
            GXReaderInfo i = host.Connection.SingleOrDefault <GXReaderInfo>(arg);

            if (i == null)
            {
                request.Reader.Detected = request.Reader.Generation = DateTime.Now;
                host.Connection.Insert(GXInsertArgs.Insert(request.Reader));
            }
            else if (i.Name != request.Reader.Name && !string.IsNullOrEmpty(request.Reader.Name))
            {
                //Update reader name.
                i.Detected = DateTime.Now;
                host.Connection.Update(GXUpdateArgs.Update(i, u => new { u.Detected, u.Name }));
            }
            else
            {
                i.Detected = DateTime.Now;
                host.Connection.Update(GXUpdateArgs.Update(i, u => u.Detected));
            }
            host.SetChange(TargetType.Readers, DateTime.Now);
            return(new AddReaderResponse());
        }
Ejemplo n.º 2
0
        public System.Threading.Tasks.Task StartAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Reader Service is starting.");
            GXReaderInfo r = new GXReaderInfo();

            r.Guid = _guid;
            r.Name = _name;
            FileVersionInfo info = FileVersionInfo.GetVersionInfo(typeof(ReaderService).Assembly.Location);

            r.Version = info.FileVersion;
            for (int pos = 0; pos != _threads; ++pos)
            {
                Thread t3 = new Thread(() => DoWork(pos == 0 ? r : null));
                t3.Start();
            }
            return(System.Threading.Tasks.Task.CompletedTask);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Send notify that reader is alive.
 /// </summary>
 /// <param name="value"></param>
 private async void ListenerAlive(GXReaderInfo value)
 {
     //Give some time DB server to start up.
     Thread.Sleep(1000);
     System.Net.Http.HttpResponseMessage response;
     while (!_cancellationToken.IsCancellationRequested)
     {
         using (response = await client.PostAsJsonAsync(Startup.ServerAddress + "/api/reader/AddReader", new AddReader()
         {
             Reader = value
         }))
         {
             Helpers.CheckStatus(response);
         }
         if (_aliveTime == 0)
         {
             break;
         }
         Thread.Sleep(_aliveTime * 60000);
     }
 }
Ejemplo n.º 4
0
        public System.Threading.Tasks.Task StartAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Reader Service is starting.");
            GXReaderInfo r = new GXReaderInfo();

            r.Guid = _guid;
            r.Name = _name;
            FileVersionInfo info = FileVersionInfo.GetVersionInfo(typeof(ReaderService).Assembly.Location);

            r.Version = info.FileVersion;
            //Don't wait reply. It might that DB server is not up yet.
            client.PostAsJsonAsync(Startup.ServerAddress + "/api/reader/AddReader", new AddReader()
            {
                Reader = r
            });
            for (int pos = 0; pos != _threads; ++pos)
            {
                Thread t3 = new Thread(() => DoWork());
                t3.Start();
            }
            return(System.Threading.Tasks.Task.CompletedTask);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Show meters that are mapped to this reader.
 /// </summary>
 private void ReadersView_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         DevicesView.Items.Clear();
         if (ReadersView.SelectedItems.Count == 1)
         {
             GXReaderInfo[] info    = new GXReaderInfo[] { (GXReaderInfo)ReadersView.SelectedItems[0].Tag };
             GXDevice[]     devices = ami.GetDevices(info);
             foreach (GXDevice it in devices)
             {
                 ListViewItem li = DevicesView.Items.Add(it.Id.ToString());
                 li.SubItems.Add(it.Name);
                 li.SubItems.Add(it.Generation.ToString());
                 li.Tag = it;
             }
         }
     }
     catch (Exception Ex)
     {
         MessageBox.Show(ReadersView.Parent, Ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }