c# при изменение/удаление данных возникает ошибка
паттерн mvp, когда перехожу с одной формы в другую через MainPresenter происходит непонятное, если удалить одну строку удаляется две строки , или даже 3 строки одновременно. хотя я удаляю по id. или возникает исключение что System.FormatException: "Входная строка имела неверный формат." самое интересное если работать с одной формой все нормально добавляется/изменяется/удаляется . что-то с главной формой не так. помогите пожалуйста разобраться
private void SaveProduct(object sender, EventArgs e)
{
var product = new ProductModel();
product.Id = Convert.ToInt32(view.ProductId);
product.Name = view.ProducttName;
product.Qty = Convert.ToDouble(view.ProductQty);
product.UnitId = view.UnitId;
product.Price = Convert.ToDouble(view.ProductPrice);
product.Total = Convert.ToDouble(view.ProductTotal);
product.CategoryId = view.CategoryId;
product.CompanyId = view.CompanyId;
product.Note = view.ProductNote;
product.Date = Convert.ToDateTime(view.ProductDate);
try
{
if (view.IsEdit) // Edit model
{
repository.Edit(product);
view.Message = "Product Edided Successfuly";
}
else //Add new model
{
repository.Add(product);
view.Message = "Product added Successfuly";
}
view.IsSuccessful = true;
LoadProduct();
CleanViewFields();
}
catch (Exception ex)
{
view.IsSuccessful = false;
view.Message = ex.Message;
}
}
private void Editproduct(object sender, EventArgs e)
{
var EditProduct = (ProductModel)productBindingSource.Current;
view.ProductId = EditProduct.Id.ToString();
view.ProducttName = EditProduct.Name;
view.ProductQty = EditProduct.Qty.ToString();
view.UnitId = EditProduct.UnitId;
view.ProductPrice = EditProduct.Price.ToString();
view.ProductTotal = EditProduct.Total.ToString();
view.CategoryId = EditProduct.CategoryId;
view.CompanyId = EditProduct.CompanyId;
view.ProductNote = EditProduct.Note;
view.ProductDate = EditProduct.Date.ToString();
view.IsEdit = true;
}
private void Deleteproduct(object sender, EventArgs e)
{
var DeleteProduct = (ProductModel)productBindingSource.Current;
repository.delete(DeleteProduct.Id);
LoadProduct();
}
public class MainPresenter
{
private ImainView mainView;
private readonly string mysqlConnectionString;
public MainPresenter(ImainView mainView, string mysqlConnectionString)
{
this.mainView = mainView;
this.mysqlConnectionString = mysqlConnectionString;
this.mainView.Showcustomers += ShowCustomers;
this.mainView.ShowProducts += ShowProudct;
this.mainView.ShowKorzina += ShowKorzina;
}
private void ShowKorzina(object sender, EventArgs e)
{
IKorzinaView view = Korzina.GetInstance((MainView)mainView);
IKorzinaRepository repository = new KorzinaRepository(mysqlConnectionString);
new KorzinaPresenter(view, repository);
}
private void ShowProudct(object sender, EventArgs e)
{
// IProductView view = ProductView.GetInstance((MainView)mainView);
IProductView view = ProductViewNew.GetInstance((MainView)mainView);
IProductRepository repository = new productRepository(mysqlConnectionString);
new productPresenter(view, repository);
}
private void ShowCustomers(object sender, EventArgs e)
{
IcustomerView view = CustomerView.GetInstance((MainView)mainView);
ICustomerRepository repository = new CustomerRepository(mysqlConnectionString);
new customerPresenter(view, repository);
}
}