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);
    }

}

Ответы (0 шт):