//===================THIS METHOD IS FOR ADD RECORDS IN SOURCE TABLE============== public void AddSource(string newName) { Source.SourceName = newName; using (StudentuConteiner db = new StudentuConteiner()) { try { var res3 = db.Sources.Any(o => o.SourceName == Source.SourceName); if (!res3) { if (!string.IsNullOrEmpty(Source.SourceName)) { Source.SourceName.Trim(); if (Source.SourceName[0] == ' ') { dialogService.ShowMessage("Нельзя добавить пустую строку"); return; } db.Sources.Add(Source); db.SaveChanges(); SourcesRecords.Clear(); LoadSourcesData(); Source = new Source(); } else { return; } } else { dialogService.ShowMessage("Уже есть такое название в базе данных"); } } catch (ArgumentNullException ex) { dialogService.ShowMessage(ex.Message); } catch (OverflowException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.SqlClient.SqlException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.Entity.Core.EntityCommandExecutionException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.Entity.Core.EntityException ex) { dialogService.ShowMessage(ex.Message); } } }
//===================THIS METHOD IS FOR DELETE RECORDS FROM SOURCE TABLE============== public void DeleteSource() { using (StudentuConteiner db = new StudentuConteiner()) { try { var res = db.Orderlines; if (Source.SourceId != 1) { if (dialogService.YesNoDialog("Точно нужно удалить эту запись?") == true) { //changing DB //we find all the records in which we have the desired Id and make a replacement foreach (OrderLine order in res) { if (order.Source.SourceId == Source.SourceId) { order.Source = db.Sources.Find(new Source() { SourceId = 1 }.SourceId); } } db.Sources.Remove(db.Sources.Find(Source.SourceId)); db.SaveChanges(); //changing collection SourcesRecords.Remove(Source); } } else { dialogService.ShowMessage("Нельзя удалить эту запись"); } } catch (ArgumentNullException ex) { dialogService.ShowMessage(ex.Message); } catch (OverflowException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.SqlClient.SqlException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.Entity.Core.EntityCommandExecutionException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.Entity.Core.EntityException ex) { dialogService.ShowMessage(ex.Message); } } }
//===================THIS METHOD IS FOR EDIT RECORDS IN SOURCE TABLE============== public void EditSource(string newName) { if (Source.SourceName == "---") { dialogService.ShowMessage("Нельзя редактировать эту запись"); return; } Source.SourceName = newName; using (StudentuConteiner db = new StudentuConteiner()) { try { var res3 = db.Sources.Find(Source.SourceId); if (res3 != null) { //changing DB res3.SourceName = Source.SourceName; db.SaveChanges(); SourcesRecords.Clear(); LoadSourcesData(); } } catch (ArgumentNullException ex) { dialogService.ShowMessage(ex.Message); } catch (OverflowException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.SqlClient.SqlException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.Entity.Core.EntityCommandExecutionException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.Entity.Core.EntityException ex) { dialogService.ShowMessage(ex.Message); } } }
//load data array from "Sources" table private void LoadSourcesData() { using (StudentuConteiner db = new StudentuConteiner()) { try { var list = db.Sources.ToList <Source>(); foreach (var item in list) { SourcesRecords.Add( new Source { SourceId = item.SourceId, SourceName = item.SourceName }); } Source = SourcesRecords[0]; } catch (ArgumentNullException ex) { dialogService.ShowMessage(ex.Message); } catch (OverflowException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.SqlClient.SqlException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.Entity.Core.EntityCommandExecutionException ex) { dialogService.ShowMessage(ex.Message); } catch (System.Data.Entity.Core.EntityException ex) { dialogService.ShowMessage(ex.Message); } } }