public async Task doLogic(ToolStripMenuItem sender, string texto, bool removeLastChar = false) { operationPanel.Visible = true; panelHeader.Visible = true; panelBienvenido.Visible = false; if (uC != null) { uC.Dispose(); } if (menuItemName == sender.Name) { return; } menuItemName = removeLastChar ? sender.Name.Remove(sender.Name.Length - 1, 1) : sender.Name; if (!loadingCircle1.Visible && menuItemName != "Reporte") { loadingCircle1.Visible = true; loadingCircle1.Active = true; } uC = (BaseUserControl)Activator.CreateInstance(Type.GetType(string.Format("{0}.{1}", "WilmerRentCar.UserControls", menuItemName))); uC.AutoScroll = true; operationPanel.Height = uC.Height + 50; uC.Left = (operationPanel.Width - uC.Width) / 2; uC.Top = 20; operationPanel.Controls.Clear(); operationPanel.Controls.Add(uC); uC.Show(); labelGeneral.Text = texto; if (menuItemName != "Reporte") { btnAdd.Visible = true; if (isFirstClick == true) { btnAdd.Click += (object sender2, EventArgs e2) => uC.Add((bo, t) => OnError(bo, t), () => OnSuccess(), ex => ExcepcionHandler(ex)); btnUpdate.Click += (object sender2, EventArgs e2) => uC.Update((bo, t) => OnError(bo, t), () => OnSuccess(), ex => ExcepcionHandler(ex), currentRowId); } isFirstClick = false; MainPanel.Controls.Remove(tableGeneric1); if (menuItemName != "Consulta") { tableGeneric1 = new TableGeneric(btnUpdate, (DataGridViewRow row) => { var type = row.Cells[2].Value.GetType(); currentRowId = int.Parse(type.Name == "Bitmap" ? row.Cells[3].Value.ToString() : row.Cells[2].Value.ToString()); uC.Edit(row); }, (int id) => { loadingCircle1.Visible = true; loadingCircle1.Active = true; uC.Delete(id, async() => await OnSuccess()); }, (int id) => { loadingCircle1.Visible = true; loadingCircle1.Active = true; Manejador <RentaDevolucion, RentaDevolucionDto> _Manejador = new Manejador <RentaDevolucion, RentaDevolucionDto>(); RentaDevolucionDto renta = _Manejador.ObtenerPorFiltro(x => x.Id == id, new[] { "Vehiculo", "Vehiculo.Modelo", "Vehiculo.Marca" }); renta.Estado = false; _Manejador.Actualizar(renta); Manejador <BOL.Vehículo, VehículoDto> _ManejadorVehiculo = new Manejador <BOL.Vehículo, VehículoDto>(); VehículoDto _Vehiculo = _ManejadorVehiculo.ObtenerPorFiltro(x => x.Id == renta.VehiculoId, new[] { "Marca", "Modelo" }); _Vehiculo.Estado = true; _ManejadorVehiculo.Actualizar(_Vehiculo); OnSuccess(); }, menuItemName); } else { tableGeneric1 = new TableGeneric(menuItemName, loadingHandler, MainPanel.Width, false); uC.SuccessFunction += async() => await SuccessFunction(); } tableGeneric1.BackColor = Color.Transparent; //tableGeneric1.Left = (MainPanel.Width - tableGeneric1.Width) / 2; tableGeneric1.Name = "tableGeneric1"; tableGeneric1.AutoSize = true; MainPanel.Controls.Add(tableGeneric1); if (menuItemName != "Consulta") { await tableGeneric1.FillData(menuItemName, loadingHandler, MainPanel.Width); } tableGeneric1.Top = operationPanel.Height + 105; } else { btnAdd.Visible = false; } }