public void UpdateBookSeriesValidation(BookSery bookSeries) { if (String.IsNullOrEmpty(bookSeries.Name)) { MessageBox.Show("The book series name is required. ", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else if (String.IsNullOrEmpty(bookSeries.Author)) { MessageBox.Show("The book series author is required. ", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { try { var bookSeriesId = GetBookSeriesId(bookSeries.Author, bookSeries.Name); if (bookSeriesId != 0) { bookSeries.Id = bookSeriesId; } Reorder(bookSeries); ReorderQueue(bookSeries); UpdateBookSeries(bookSeries); } catch (Exception ex) { MessageBox.Show("Error when trying to add new book series. Details: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void Reorder(BookSery bookSeries) { if (bookSeries.Id == 0) { using (Context db = new Context()) { var booksSeriesToReorder = db.BookSeries.Where(bs => bs.Registration_Order >= bookSeries.Registration_Order).ToList(); if (booksSeriesToReorder != null) { foreach (var item in booksSeriesToReorder) { item.Registration_Order = item.Registration_Order + 1; db.SaveChanges(); } } } } else { using (Context db = new Context()) { var booksSeriesToReorderAfterNewIndex = db.BookSeries.Where(bs => bs.Registration_Order >= bookSeries.Registration_Order).ToList(); if (booksSeriesToReorderAfterNewIndex != null) { foreach (var item in booksSeriesToReorderAfterNewIndex) { item.Registration_Order = item.Registration_Order + 1; db.SaveChanges(); } } var booksSeriesToReorderBeforeNewIndex = db.BookSeries.Where(bs => bs.Registration_Order < bookSeries.Registration_Order).ToList(); if (booksSeriesToReorderBeforeNewIndex != null) { foreach (var item in booksSeriesToReorderBeforeNewIndex) { item.Registration_Order = item.Registration_Order - 1; db.SaveChanges(); } } } } }
private void ReorderQueue(BookSery bookSeries) { if (bookSeries.Id == 0) { using (Context db = new Context()) { var booksSeriesToReorder = db.BookSeries.Where(bs => bs.Queue >= bookSeries.Queue).ToList(); if (booksSeriesToReorder != null) { foreach (var item in booksSeriesToReorder) { item.Queue = item.Queue + 1; db.SaveChanges(); } } } } else { using (Context db = new Context()) { var booksSeriesToReorderAfterNewIndex = db.BookSeries.Where(bs => bs.Queue >= bookSeries.Queue).ToList(); if (booksSeriesToReorderAfterNewIndex != null) { foreach (var item in booksSeriesToReorderAfterNewIndex) { item.Queue = item.Queue + 1; db.SaveChanges(); } } var booksSeriesToReorderBeforeNewIndex = db.BookSeries.Where(b => b.Queue < bookSeries.Queue).ToList(); if (booksSeriesToReorderBeforeNewIndex != null) { foreach (var item in booksSeriesToReorderBeforeNewIndex) { item.Queue = item.Queue - 1; db.SaveChanges(); } } } } }
private void UpdateBookSeries(BookSery bookSeries) { using (Context db = new Context()) { if (bookSeries.Id == 0) { db.BookSeries.Add(bookSeries); } else { var model = db.BookSeries.Single(bs => bs.Id == bookSeries.Id); if (!String.IsNullOrEmpty(bookSeries.Name)) { model.Name = bookSeries.Name; } else { bookSeries.Name = model.Name; } if (!String.IsNullOrEmpty(bookSeries.Author)) { model.Author = bookSeries.Author; } else { bookSeries.Author = model.Author; } if (bookSeries.Queue != null) { model.Queue = bookSeries.Queue; } else { bookSeries.Queue = model.Queue; } if (bookSeries.Registration_Order != null) { model.Registration_Order = bookSeries.Registration_Order; } else { bookSeries.Registration_Order = model.Registration_Order; } if (bookSeries.Total_Books != null) { model.Total_Books = bookSeries.Total_Books; } else { bookSeries.Total_Books = model.Total_Books; } if (bookSeries.Total_Read != null) { model.Total_Read = bookSeries.Total_Read; } else { bookSeries.Total_Read = model.Total_Read; } if (bookSeries.SerieStatus_Id != null) { model.SerieStatus_Id = bookSeries.SerieStatus_Id; } else { bookSeries.SerieStatus_Id = model.SerieStatus_Id; } } db.SaveChanges(); } }