private void RemoveDevice(int deviceId)
 {
     using (var dbContext = new CalculationSystemDbContext())
     {
         MeteringDevice device = dbContext.MeteringDevices.Single(d => d.Id == deviceId);
         dbContext.MeteringDevices.Remove(device);
         dbContext.SaveChanges();
     }
 }
Ejemplo n.º 2
0
        private string FormatIp(MeteringDevice existingDevice, DeviceDetectedEvent e)
        {
            string prefix = "";

            if (!string.IsNullOrEmpty(existingDevice.DisplayIp))
            {
                prefix = $"{existingDevice.DisplayIp} -> ";
            }
            return($"{prefix}{e.Ip.ToString()}");
        }
Ejemplo n.º 3
0
        private async Task DeleteDeviceAsync(MeteringDevice device)
        {
            var existingDevice = registeredDevices.FirstOrDefault(p => p.DeviceId == device.Id);

            if (existingDevice != null)
            {
                await metersDatabase.RemoveMeterAsync(existingDevice);
                await LoadRegisterdDevicesAsync();
            }
        }
 private MeteringDevice UpdateDevice(int deviceId, double readings)
 {
     using (var dbContext = new CalculationSystemDbContext())
     {
         MeteringDevice device = dbContext.MeteringDevices.Single(d => d.Id == deviceId);
         SaveInitialReadingForCurrentPeriod(dbContext, device.Id, device.Readings);
         device.Readings = readings;
         dbContext.SaveChanges();
         return(dbContext.MeteringDevices.Include("House").Single(d => d.Id == deviceId));
     }
 }
        private void Delete_Clicked(object sender, RoutedEventArgs e)
        {
            if (deviceRegistryDataGrid.SelectedIndex > -1)
            {
                MeteringDevice selectedDevice = deviceRegistryDataGrid.SelectedItem as MeteringDevice;
                var            result         = MessageBox.Show("Are you sure?", "Delete this device?", MessageBoxButton.YesNo);

                if (result == MessageBoxResult.Yes)
                {
                    RemoveDevice(selectedDevice.Id);
                    devices.Remove(selectedDevice);
                    MessageBox.Show("Selected device was deleted!");
                }
            }
        }
        private void DeviceAddition_Clicked(object sender, RoutedEventArgs e)
        {
            var addWindow = new AddMeteringDeviceWindow();
            var result    = addWindow.ShowDialog();

            if (result.HasValue && result.Value)
            {
                MeteringDevice createdDevice = CreateDevice(addWindow.InitialReadings, addWindow.SelectedHouse);
                devices.Add(createdDevice);
            }
            else
            {
                addWindow.Close();
            }
        }
Ejemplo n.º 7
0
        private async Task UpsertDeviceAsync(MeteringDevice device)
        {
            var existingDevice = registeredDevices.FirstOrDefault(p => p.DeviceId == device.Id);

            if (existingDevice == null)
            {
                existingDevice = new RegisteredMeter()
                {
                    DeviceId = device.Id
                };
            }
            existingDevice.DeviceIp = device.Ip;
            await metersDatabase.UpsertAsync(existingDevice);

            await LoadRegisterdDevicesAsync();
        }
        private MeteringDevice CreateDevice(double initialReadings, House house)
        {
            using (var dbContext = new CalculationSystemDbContext())
            {
                var device = new MeteringDevice
                {
                    Id       = house.Id,
                    Readings = initialReadings
                };

                dbContext.MeteringDevices.Add(device);
                dbContext.SaveChanges();

                return(dbContext.MeteringDevices.Include("House").Single(d => d.Id == house.Id));
            }
        }
        /// <summary>
        /// Вставка показания прибора учета
        /// </summary>
        /// <param name="_meteringDevice">Элемент перечня приборов учета</param>
        /// <param name="_oneRateCurrentMeteringValue">Элемент списка текущий показаний прибора учета в ГИС ЖКХ</param>
        /// <returns>Результат вставки</returns>
        public static string InsertMeteringDeviceHistory(MeteringDevice _meteringDevice, OneRateCurrentMeteringValueExportType _oneRateCurrentMeteringValue)
        {
            string _result;

            try
            {
                Program.db.spInsertMeteringDeviceHistory(_meteringDevice.GUID,
                                                         Convert.ToDecimal(_oneRateCurrentMeteringValue.MeteringValue),
                                                         _oneRateCurrentMeteringValue.DateValue);

                _result = "Metering device value is synchronized";
            }
            catch (Exception e)
            {
                _result = e.Message;
            }

            return(_result);
        }
Ejemplo n.º 10
0
        private void HandleDevice(DeviceDetectedEvent e)
        {
            var existingDevice = Devices.FirstOrDefault(p => p.Id == e.Id);
            var isNewDevice    = existingDevice == null;

            if (isNewDevice)
            {
                existingDevice = new MeteringDevice()
                {
                    Id = e.Id
                };
                Devices.Add(existingDevice);
            }
            existingDevice.Status = isNewDevice
                ? MeteringDeviceStatus.New
                : MeteringDeviceStatus.Found;

            existingDevice.DisplayIp = FormatIp(existingDevice, e);
            existingDevice.Ip        = e.Ip.ToString();
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Обновление строки перечня приборов учета
        /// </summary>
        /// <param name="_meteringDevice">Элемент перечня приборов учета</param>
        /// <param name="_exportMeteringDevice">Прибор учета в ГИС ЖКХ</param>
        /// <returns>Результат обновления</returns>
        public static string UpdateMeteringDevice(MeteringDevice _meteringDevice, exportMeteringDeviceDataResultType _exportMeteringDevice)
        {
            string _result;

            try
            {
                _meteringDevice.MeteringDeviceModel  = _exportMeteringDevice.BasicChatacteristicts.MeteringDeviceModel;
                _meteringDevice.MeteringDeviceStamp  = _exportMeteringDevice.BasicChatacteristicts.MeteringDeviceStamp;
                _meteringDevice.MeteringDeviceNumber = _exportMeteringDevice.BasicChatacteristicts.MeteringDeviceNumber;
                _meteringDevice.VerificationInterval = 6;
                _meteringDevice.InstallationDate     = _exportMeteringDevice.BasicChatacteristicts.InstallationDate;
                _meteringDevice.VerificationDate     = _exportMeteringDevice.BasicChatacteristicts.FirstVerificationDate;
                _meteringDevice.GIS_VersionNumber    = int.Parse(_exportMeteringDevice.VersionNumber);
                Program.db.SubmitChanges();

                _result = "Metering device item is correct";
            }
            catch (Exception e)
            {
                _result = e.Message;
            }

            return(_result);
        }