не сохраняется книга

This commit is contained in:
Екатерина Рогашова 2023-05-09 10:42:31 +04:00
parent cd675d40db
commit ce98df6060
11 changed files with 23 additions and 12 deletions

View File

@ -12,7 +12,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace BookShopDataBaseImplement.Migrations
{
[DbContext(typeof(BookShopDatabase))]
[Migration("20230508181531_InitialCreate")]
[Migration("20230509063637_InitialCreate")]
partial class InitialCreate
{
/// <inheritdoc />

View File

@ -23,7 +23,7 @@ namespace BookShopDataBaseImplement.Models
public double Cost { get; set; }
[Required]
public int GenreId { get; set; }
public virtual Genre Genre { get; set; }
public virtual Genre Genre { get; set; }
private Dictionary<int, IAuthorModel>? _bookAuthors = null;
[NotMapped]
public Dictionary<int, IAuthorModel> BookAuthors

View File

@ -50,7 +50,7 @@ namespace BookShopBusinessLogic.BusinessLogics
{
throw new ArgumentNullException(nameof(model));
}
_logger.LogInformation("ReadElement. BookName: {BookName}. GenreId: {GenreId}. Id: {Id}.", model.BookName, model.GenreId, model.Id);
_logger.LogInformation("ReadElement. BookName: {BookName}. Id: {Id}.", model.BookName, model.Id);
var element = _bookStorage.GetElement(model);
if (element == null)
{
@ -63,7 +63,7 @@ namespace BookShopBusinessLogic.BusinessLogics
public List<BookViewModel>? ReadList(BookSearchModel? model)
{
_logger.LogInformation("ReadList. BookName: {BookName}. GenreId: {GenreId}. Id: {Id}.", model?.BookName, model?.GenreId, model?.Id);
_logger.LogInformation("ReadList. BookName: {BookName}. Id: {Id}.", model?.BookName, model?.Id);
var list = model == null ? _bookStorage.GetFullList() : _bookStorage.GetFilteredList(model);
if (list == null)
{
@ -107,7 +107,7 @@ namespace BookShopBusinessLogic.BusinessLogics
{
throw new ArgumentNullException("Стоимость не может быть меньше 0", nameof(model.BookName));
}
_logger.LogInformation("Book. BookName: {BookName}. Count: {Count}. Cost: {Cost}. GenreId: {GenreId}. Id: {Id}.", model.BookName, model.Count, model.Cost, model.GenreId, model.Id);
_logger.LogInformation("Book. BookName: {BookName}. Cost: {Cost}. Id: {Id}.", model.BookName, model.Cost, model.Id);
var element = _bookStorage.GetElement(new BookSearchModel
{
BookName = model.BookName

View File

@ -10,6 +10,5 @@ namespace BookShopContracts.SearchModels
{
public int? Id { get; set; }
public string? BookName { get; set; }
public int? GenreId { get; set; }
}
}

View File

@ -11,12 +11,13 @@ namespace BookShopContracts.ViewModels
public class BookViewModel: IBookModel
{
public int Id { get; set; }
[DisplayName("Название")]
public string BookName { get; set; } = string.Empty;
[DisplayName("Стоимость")]
public double Cost { get; set; }
public int Count { get; set; }
public int GenreId { get; set; }
[DisplayName("GenreName")]
public string GenreName { get; set; } = string.Empty;
public Dictionary<int, IAuthorModel> BookAuthors { get; set; }
public Dictionary<int, IAuthorModel> BookAuthors { get; set; } = new();
}
}

View File

@ -12,5 +12,6 @@ namespace BookShopDataModels.Models
double Cost { get; }
int Count { get; }
int GenreId { get; }
Dictionary<int, IAuthorModel> BookAuthors { get; }
}
}

View File

@ -81,7 +81,6 @@ namespace BookShopView
}
private void LoadData()
{
_logger.LogInformation("Загрузка автора книги");
try
{
@ -112,6 +111,14 @@ namespace BookShopView
{
return;
}
if (_bookAuthors.ContainsKey(form.Id))
{
_bookAuthors[form.Id] = (form.AuthorModel);
}
else
{
_bookAuthors.Add(form.Id, (form.AuthorModel));
}
_logger.LogInformation("Добавление автора:{ AuthorSurname}", form.AuthorModel.AuthorSurname);
LoadData();
}
@ -185,7 +192,7 @@ namespace BookShopView
MessageBoxIcon.Error);
return;
}
if (comboBoxGenre.SelectedValue == null)
if (comboBoxGenre.SelectedItem == null)
{
MessageBox.Show("Выберите жанр", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);

View File

@ -52,7 +52,6 @@ namespace BookShopView
if (_list != null)
{
comboBoxAuthor.DisplayMember = "AuthorSurname";
comboBoxAuthor.DisplayMember = "AuthorName";
comboBoxAuthor.ValueMember = "Id";
comboBoxAuthor.DataSource = _list;
comboBoxAuthor.SelectedItem = null;
@ -62,7 +61,7 @@ namespace BookShopView
{
if (comboBoxAuthor.SelectedValue == null)
{
MessageBox.Show("Выберите компонент", "Ошибка",
MessageBox.Show("Выберите автора", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}

View File

@ -96,6 +96,7 @@
this.Controls.Add(this.dataGridView);
this.Name = "FormBooks";
this.Text = "Книги";
this.Load += new System.EventHandler(this.FormBooks_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
this.ResumeLayout(false);

View File

@ -40,6 +40,9 @@ namespace BookShopView
dataGridView.Columns["Id"].Visible = false;
dataGridView.Columns["BookName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView.Columns["Cost"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView.Columns["Count"].Visible = false;
dataGridView.Columns["GenreId"].Visible = false;
dataGridView.Columns["GenreName"].Visible = false;
dataGridView.Columns["BookAuthors"].Visible = false;
}
_logger.LogInformation("Загрузка книг");