/// <summary> /// Crea un nuevo alimentador y lo guarda en la aplicación /// </summary> /// <param name="alimentador">El tablero a insertar</param> /// <param name="task_completed">La tarea que se ejecuta al terminar la transacción.</param> public static void CreateAlimentadorTr(this AlimInput alimentador, Action <Object> task_completed) { //1: Se agregá el tablero a la aplicación SQLiteWrapper tr = new SQLiteWrapper(TabalimApp.AppDBPath) { TransactionTask = InsertAlimTask, TaskCompleted = (Object result) => { task_completed(result); } }; tr.Run(alimentador); }
/// <summary> /// Define la tarea que inserta un alimentador /// </summary> /// <param name="conn">La conexión a SQLite.</param> /// <param name="input">La entrada de la conexión debe ser un alimentador.</param> /// <returns>El resultado de la transacción</returns> private static object InsertAlimTask(SQLite_Connector conn, object input) { AlimInput alim = (AlimInput)input; Boolean flag = false; flag = alim.Create(conn, null); if (flag) { alim.Id = (int)conn.SelectValue <long>("alimentador".SelectLastId(alim.PrimaryKey)); } return(new Object[] { flag, alim.Id > 0 ? alim : null }); }
private void btnEditLine_Click(object sender, RoutedEventArgs e) { int i = int.Parse((((sender as Button).Parent as Viewbox).Parent as StackPanel).Children.OfType <TextBlock>().ToArray()[1].Text); var dialog = new AlimentadorPicker(TabalimApp.CurrentProject.Lineas[i]); dialog.ShowDialog(); if (dialog.DialogResult.Value == true) { Linea linea = dialog.SelectedLinea; var updateData = new KeyValuePair <String, Object>[] { new KeyValuePair <string, object>("dest_from", linea.From), new KeyValuePair <string, object>("dest_end", linea.Type.Id), new KeyValuePair <string, object>("fact_demanda", linea.Destination.FactorDemanda), new KeyValuePair <string, object>("fact_temperatura", linea.Temperatura), new KeyValuePair <string, object>("fac_agrupamiento", linea.FactorAgrupamiento), new KeyValuePair <string, object>("fac_potencia", linea.FactorPotencia), new KeyValuePair <string, object>("longitud", linea.Longitud), new KeyValuePair <string, object>("is_cobre", linea.IsCobre), new KeyValuePair <string, object>("dest_name", linea.To), new KeyValuePair <string, object>("dest_desc", linea.ToDesc), new KeyValuePair <string, object>("conductor", linea.SelectedConductor) }; SQLiteWrapper tr = new SQLiteWrapper(TabalimApp.AppDBPath) { TransactionTask = (SQLite_Connector conn, Object input) => { Object[] data = input as Object[]; int alimId = (int)data[0]; AlimInput inAlim = (AlimInput)data[1]; var uData = (KeyValuePair <String, Object>[])data[2]; //inAlim.Id = alimId; if (inAlim.Update(conn, uData)) { return(inAlim); } else { return(null); } }, TaskCompleted = (Object result) => { if (result is AlimInput) { TabalimApp.CurrentProject.Lineas[i].Update(result as AlimInput); SetItemSource(runtime.TabalimApp.CurrentProject.Lineas.Values.Select(x => new AlimentadorRow(x))); } } }; tr.Run(new Object[] { i, linea.ToAlimInput(TabalimApp.CurrentProject), updateData }); } }
public static void CreateAlimentadorTr(this TabalimApp app, AlimInput input, Destination destination, Action <Object, int> alimoAddedTask = null) { input.CreateAlimentadorTr( (Object qResult) => { var result = (Object[])qResult; AlimInput alim = (AlimInput)result[1]; //Si se agregá el tablero alimentador if ((Boolean)result[0] && alim != null) { switch (alim.End.Id) { case 0: //Tablero solo insertar la conexión Tablero tab = destination.Cargas.FirstOrDefault(); if (tab != null) { CreateAlimentadorDestinationTr(alim.Id, tab.Id, 1, alimoAddedTask); } break; case 1: //Un solo motor case 3: //Varios motores CreateMotorAndDestinations(alim.Id, destination.Motors, alimoAddedTask); break; case 2: //Un solo motor y otras cargas case 4: //Varios motores y otras cargas CreateMotorAndCargasAndDestinations(alim.Id, destination.Cargas, destination.Motors, alimoAddedTask); break; default: //Capacitor Transformador o sub-alimentador CreateExtraDataAndDestinations(alim.Id, destination.ExtraData, alimoAddedTask); break; } } }); }
private void btnDeleteLine_Click(object sender, RoutedEventArgs e) { int i = int.Parse((((sender as Button).Parent as Viewbox).Parent as StackPanel).Children.OfType <TextBlock>().ToArray()[1].Text); SQLiteWrapper tr = new SQLiteWrapper(TabalimApp.AppDBPath) { TransactionTask = (SQLite_Connector conn, Object input) => { Object[] data = input as Object[]; int alimId = (int)data[0]; AlimInput inAlim = (AlimInput)data[1]; return(inAlim.Delete(conn)); }, TaskCompleted = (Object result) => { if ((Boolean)result) { //TabalimApp.CurrentProject.Lineas.Values.ToList().ForEach(x => x.GetNumber()); SetItemSource(runtime.TabalimApp.CurrentProject.Lineas.Values.Select(x => new AlimentadorRow(x))); } } }; tr.Run(new Object[] { i, TabalimApp.CurrentProject.Lineas[i].ToAlimInput(TabalimApp.CurrentProject) }); }