private void Delete()//funkcja usuwania rekordów z bazy (usuwa też powiązane kaskadowo) { using (var db = new PingDataContext()) { Devices device = new Devices() { Id = _Computers[_SelectedDevice].Id }; //sprawdzenie id zaznaczoneko rekordu i stworzenie jego obiektu db.Devices.Attach(device); //przyłączenie tego obiektu do istniejącego w bazie (id jest tylko jedno) db.Devices.Remove(device); //usunięcie rekordu db.SaveChanges(); Computers = new ObservableCollection <Devices>(db.Devices.ToList()); //aktualizacja tabelki } }
} //służy do wywołania funkcji przez binding musi być przypisana do funkcji w konstruktorze private void PingDevice() //funkcja pingowania { Ping pinger = new Ping(); try { if (_SelectedDevice != -1) { var id = IdControl[_SelectedDevice]; //bierze id zaznaczonego urządzenia PingReply reply = pinger.Send(DevicesIP[SelectedDevice]); //przypisanie jakie ip pingujemy using (var db = new PingDataContext()) { if (reply.Status == IPStatus.Success)//jeśli ping się powiódł { PingStatusColor = "Green"; PingStatusText = "TRUE"; db.Responses.Add(new Responses() //sapisanie donych do bazy { Device_Id = id, Success = true, PingTime = reply.RoundtripTime, //czas pingu (ms) Time = DateTime.Now //Data pingu }); } else//jak się nie udał { PingStatusColor = "Red"; PingStatusText = "False"; db.Responses.Add(new Responses() { Device_Id = id, Success = false, Time = DateTime.Now }); } db.SaveChanges(); //zapis danych do bazy (zostaje przesłane do bazy SQL) } } } catch (PingException) { // Discard PingExceptions and return false; } }
private void AddDevice() // dodawanie urządzenia { using (var db = new PingDataContext()) { db.Devices.Add(new Devices() { IP = _IPAddress, Name = _Name, Description = _Description }); db.SaveChanges(); DevicesList.Add(_Name + " " + _IPAddress); //dodanie nowego urządzenia do listy DevicesIP.Add(_IPAddress); //dodanie ip IdControl.Add(db.Devices.ToList().Last().Id); //dodanie id nowego elementu (bierze ostatnie id z bazy - to dodane) Name = ""; IPAddress = ""; Description = ""; } }