/// Opens a new window used to edit issues in the database /// </summary> private void buttonEditIssues_Click(object sender, RoutedEventArgs e) { var LVI = listViewIssues.SelectedItem; if (LVI != null) //Checks if an issue is selected { //Types used to store data from the selected issue ClassComics CCLVI = LVI as ClassComics; CCLVI.GetIssuesData(); string Series = CCLVI.SeriesIss; int Number = CCLVI.Number; string Writer = CCLVI.Writer; string Penciller = CCLVI.Penciller; string Format = CCLVI.Format; string Language = CCLVI.Language; DateTime?Date = CCLVI.Date; string Comments = CCLVI.Comments; byte[] bytImage = CCLVI.bytImageIss; MainWindow MW = this; EditIssue EI = new EditIssue(MW, Series, Number, Writer, Penciller, Format, Language, Date, Comments, bytImage, LVI, ID); EI.ShowDialog(); } //Messagebox if a series is not selected else { MessageBox.Show("The Duck Council is dissapointed \n Choose an issue to update"); } }
/// Opens a new window used to edit series in the database /// </summary> private void buttonEditSeries_Click(object sender, RoutedEventArgs e) { var LVI = listViewSeries.SelectedItem; if (LVI != null) //Checks if a series is selected { //Types used to store data of the selected series ClassComics CCLVI = LVI as ClassComics; CCLVI.GetSeriessData(); string Publisher = CCLVI.Publisher; string Universe = CCLVI.Universe; string Series = CCLVI.Series; int CollIss = CCLVI.CollIss; int Year = CCLVI.Year; string Comments = CCLVI.Comments; byte[] Image = CCLVI.bytImage; MainWindow MW = this; EditSeries ES = new EditSeries(MW, Publisher, Universe, Series, CollIss, Year, Comments, Image, LVI); ES.ShowDialog(); } //Messagebox if a series is not selected else { MessageBox.Show("The Duck Council is dissapointed \n Choose a series to update"); } }
/// <summary> /// Updates listViewIssues with issues from the selected series /// </summary> private void listViewSeries_SelectionChanged(object sender, SelectionChangedEventArgs e) { var LVI = listViewSeries.SelectedItem; if (LVI != null) //Checks if a series is selected { ClassComics CCLVI = LVI as ClassComics; CCLVI.GetSeriessData(); ID = CCLVI.ID; listViewIssues.ItemsSource = CB._listViewIssues; CB.UpdateListviewIssues(ID); } }
/// <summary> /// Opens an info window when double clicking on a series /// </summary> private void listViewSeries_MouseDoubleClick(object sender, MouseButtonEventArgs e) { var LVI = listViewSeries.SelectedItem; if (LVI != null) //Checks if a series is selected { //Types used to store the data for the info window ClassComics CCLVI = LVI as ClassComics; CCLVI.GetSeriessData(); int Year = CCLVI.Year; string Comments = CCLVI.Comments; byte[] bytImage = CCLVI.bytImage; InfoSeries IS = new InfoSeries(Year, Comments, bytImage); IS.ShowDialog(); } }
/// <summary> /// Deletes the selected issue /// </summary> private void buttonDelIssues_Click(object sender, RoutedEventArgs e) { var LVI = listViewIssues.SelectedItem; if (LVI != null) //Checks if an issue is selected { ClassComics CCLVI = LVI as ClassComics; CCLVI.DeleteIssue(); CB.UpdateListviewIssues(ID); } //Messagebox if an issue is not selected else { MessageBox.Show("The duck council is dissapointed \n Choose an issue to delete"); } }
/// Deletes the selected series /// </summary> private void buttonDelSeries_Click(object sender, RoutedEventArgs e) { var LVI = listViewSeries.SelectedItem; if (LVI != null) //Checks if a series is selected { ClassComics CCLVI = LVI as ClassComics; CCLVI.DeleteSeries(); //Updates the series listview CB.UpdateListviewSeries(); } //Messagebox if a series is not selected else { MessageBox.Show("The duck council is dissapointed \n Choose a series to delete"); } }
/// <summary> /// Edits a series in the database. The strings and ints store the edited data. LVIin stores the tag of the edited series /// </summary> public void EditSeries(string strPublisher, string strUniverse, string strSeries, int intCollIss, int intYear, string strComments, byte[] bytImage, object LVI) { this.LVI = LVI; ClassComics CC = LVI as ClassComics; //Sets the new values CC.SeriesData.strPublisher = strPublisher; CC.SeriesData.strUniverse = strUniverse; CC.SeriesData.strSeries = strSeries; CC.SeriesData.intCollIss = intCollIss; CC.SeriesData.intYear = intYear; CC.SeriesData.strComments = strComments; CC.SeriesData.bytImage = bytImage; //Sets the state of the entry to modified and saves changes CTX.Entry(CC.SeriesData).State = EntityState.Modified; CTX.SaveChanges(); }
/// <summary> /// Opens an info window when double clicking on an issue /// </summary> private void listViewIssues_MouseDoubleClick(object sender, MouseButtonEventArgs e) { var LVI = listViewIssues.SelectedItem; if (LVI != null) //Checks if an issue is selected { //Types used to store data for the info window ClassComics CCLVI = LVI as ClassComics; CCLVI.GetIssuesData(); string strFormat = CCLVI.Format; string strLanguage = CCLVI.Language; DateTime?dtDate = CCLVI.Date; string strComments = CCLVI.Comments; byte[] bytImage = CCLVI.bytImageIss; InfoIssue IF = new InfoIssue(strFormat, strLanguage, dtDate, strComments, bytImage); IF.ShowDialog(); } }
/// <summary> /// Edits an issue in the database. The strings and int store the edited data. LVI stores the tag of the edited issue /// </summary> public void EditIssue(string strSeries, int intNumber, string strWriter, string strPenciller, string strFormat, string strLanguage, DateTime?dtDate, string strComments, byte[] bytImage, object LVI) { this.LVI = LVI; ClassComics CC = LVI as ClassComics; //Sets the new values CC.IssuesData.strSeries = strSeries; CC.IssuesData.intNumber = intNumber; CC.IssuesData.strWriter = strWriter; CC.IssuesData.strPenciller = strPenciller; CC.IssuesData.strFormat = strFormat; CC.IssuesData.strLanguage = strLanguage; CC.IssuesData.dtDate = dtDate; CC.IssuesData.strComments = strComments; CC.IssuesData.bytImage = bytImage; //Sets the state of the entry to modified and saves changes CTX.Entry(CC.IssuesData).State = EntityState.Modified; CTX.SaveChanges(); }
/// Opens a new window used to add issues to the database /// </summary> private void buttonAddIssues_Click(object sender, RoutedEventArgs e) { var LVI = listViewSeries.SelectedItem; if (LVI != null) { ClassComics CCLVI = LVI as ClassComics; CCLVI.GetSeriessData(); string strSeries = CCLVI.Series; int ID = CCLVI.ID; MainWindow MW = this; AddIssue AI = new AddIssue(MW, strSeries, ID); AI.ShowDialog(); } else { MessageBox.Show("The Duck Council is dissapointed \n Choose a series to add issues"); } }
/// <summary> /// Adds issues to an observable collection for each entry int the database /// </summary> /// <param name="ID">The ID of the selected series. Acts as a foreign key</param> #region Update Listview Issues public void UpdateListviewIssues(int ID) { //Clears listViewIssues if entries already exist if (listViewIssues.Count > 0) { listViewIssues.Clear(); } //Uses strSQL to select all entries and adds them to listViewIssues string strSQL = $"SELECT * FROM Issues WHERE SeriesID = '{ID}'"; using (var ctx = new ComicsContext()) { var Issues = ctx.Issues.SqlQuery(strSQL); foreach (Issues i in Issues) { ClassComics CC = new ClassComics(i); CC.IssuesData = i; listViewIssues.Add(CC); } } }
/// <summary> /// Adds series to an observable collection for each entry in the database /// </summary> #region Update Listview Series public void UpdateListviewSeries() { //Clears listViewSeries if entries already exist if (listViewSeries.Count > 0) { listViewSeries.Clear(); } //Uses strSQL to select all entries and adds them to listViewSeries string strSQL = "SELECT * FROM Series"; using (var ctx = new ComicsContext()) { var Series = ctx.Series.SqlQuery(strSQL); foreach (Series s in Series) { ClassComics CC = new ClassComics(s); CC.SeriesData = s; listViewSeries.Add(CC); } } }
/// <summary> /// Finds entries in the table issues matching the search query. Int version /// </summary> /// <param name="strSearch">The search query used</param> public void SearchIssues(int intSearch) { //Checks if items are already present in listViewIssues and clears if true if (listViewIssues.Count > 0) { listViewIssues.Clear(); } //Uses strSQL to find all entries related to the search query and adds them to listViewIssues string strSQL = $"SELECT * FROM Issues WHERE ((intNumber LIKE '%{intSearch}%') OR (dtDate LIKE '%{intSearch}%'))"; using (var ctx = new ComicsContext()) { var issue = ctx.Issues.SqlQuery(strSQL); foreach (Issues i in issue) { ClassComics CC = new ClassComics(i); CC.IssuesData = i; listViewIssues.Add(CC); } } }
/// <summary> /// Finds entries in the table series matching the search query. Int version /// </summary> /// <param name="strSearch">The search query used</param> public void SearchSeries(int intSearch) { //Checks if items are already present in listViewSeries and clears if true if (listViewSeries.Count > 0) { listViewSeries.Clear(); } //Uses strSQL to find all entries related to the search query and adds them to listViewSeries string strSQL = $"SELECT * FROM Series WHERE ((intCollIss LIKE '%{intSearch}%') OR (intYear LIKE '%{intSearch}%'))"; using (var ctx = new ComicsContext()) { var series = ctx.Series.SqlQuery(strSQL); foreach (Series s in series) { ClassComics CC = new ClassComics(s); CC.SeriesData = s; listViewSeries.Add(CC); } } }