Пример #1
0
 /// <summary>
 /// Inicializa una nueva instancia de la clase <see cref="App"/>.
 /// </summary>
 public App() : base()
 {
     Tabalim            = new TabalimApp();
     Tabalim.DataLoaded = () =>
     {
         App.Current.MainWindow.Visibility = Visibility.Visible;
     };
 }
Пример #2
0
        public static void CloneCurrentTablero(this TabalimApp app, Tablero tablero, Action <Object> tableroAddedTask = null)
        {
            List <Componente> components;
            List <Circuito>   circuits;
            var           copy = TabalimApp.CurrentTablero.Clone(out components, out circuits);
            SQLiteWrapper tr   = new SQLiteWrapper(TabalimApp.AppDBPath)
            {
                TransactionTask = (SQLite_Connector conn, object input) =>
                {
                    Object[]          data = input as Object[];
                    Tablero           tab  = (Tablero)data[0];
                    List <Componente> cmps = (List <Componente>)data[1];
                    List <Circuito>   ctos = (List <Circuito>)data[2];
                    tab.NombreTablero = String.Format("Tablero {0:000}", TabalimApp.CurrentProject.Tableros.Count + 1);
                    tab.Description   = "Sin descripción";
                    Boolean flag = false;
                    flag = tab.Create(conn, null);
                    if (flag)
                    {
                        tab.Id = (int)conn.SelectValue <long>(TABLE_TABLERO.SelectLastId(tab.PrimaryKey));
                        //Se se insertan los circuitos
                        ctos.ForEach(x => x.GetLastId <Circuito>(conn, tab));
                        //Se insertan los componentes
                        cmps.ForEach(cmp => cmp.GetLastId <Componente>(conn,
                                                                       ctos.FirstOrDefault(cto => cto.ToString() == cmp.CircuitoName)));
                        tab.LoadComponentesAndCircuits(conn);
                        return(new Object[] { true, tab });
                    }
                    else
                    {
                        return new Object[] { false, tab }
                    };
                },
                TaskCompleted = (Object qResult) =>
                {
                    var     result = (Object[])qResult;
                    Boolean flag   = (Boolean)result[0];
                    Tablero newTab = (Tablero)result[1];
                    if (flag && newTab != null)
                    {
                        app.Tableros.Add(newTab);

                        TabalimApp.CurrentTablero = newTab;
                        if (!TabalimApp.CurrentProject.Tableros.ContainsKey(newTab.Id))
                        {
                            TabalimApp.CurrentProject.Tableros.Add(newTab.Id, newTab);
                        }
                        tableroAddedTask?.Invoke(tablero);
                    }
                }
            };

            tr.Run(new Object[] { copy, components, circuits });
        }
Пример #3
0
        /// <summary>
        /// Exporta el proyecto actual
        /// </summary>
        /// <param name="window">La ventana del proyecto actual.</param>
        /// <param name="updateTask">The update task.</param>
        public static async void ImportProject(this MetroWindow window, TabalimApp app, Action <Boolean> importEnded)
        {
            var controller = await window.ShowProgressAsync("Abriendo por favor espere...", "Abriendo proyecto de Alimentadores");

            controller.SetCancelable(false);
            controller.SetIndeterminate();
            app.ImportProjectTr(((async(object result) =>
            {
                Object[] rData = result as Object[];
                Boolean succed = (Boolean)rData[0];
                String msg = (string)rData[1];
                await window.ShowMessageAsync(succed ? "Tablero Cargado" : "Error", msg);
                await controller.CloseAsync();
                if (succed && importEnded != null)
                {
                    importEnded(succed);
                }
            })));
        }
        /// <summary>
        /// Crea un nuevo tablero y lo guarda en la aplicación
        /// </summary>
        /// <param name="app">La aplicación</param>
        /// <param name="tablero">El tablero a insertar</param>
        public static void CreateTableroTr(this TabalimApp app, Tablero tablero, Action <Object> tableroAddedTask = null)
        {
            tablero.CreateTableroTr(
                (Object qResult) =>
            {
                var result  = (Object[])qResult;
                Tablero tab = (Tablero)result[1];

                if ((Boolean)result[0] && tab != null)
                {
                    app.Tableros.Add(tab);
                    TabalimApp.CurrentTablero = tab;
                    if (!TabalimApp.CurrentProject.Tableros.ContainsKey(tab.Id))
                    {
                        TabalimApp.CurrentProject.Tableros.Add(tab.Id, tab);
                    }
                    tableroAddedTask?.Invoke(tablero);
                }
            });
        }
        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;
                    }
                }
            });
        }
Пример #6
0
 /// <summary>
 /// Define la transacción que realizá la importación del proyecto
 /// </summary>
 /// <param name="project">El proyecto a importar.</param>
 /// <param name="task_completed">La tarea a ejecutar una vez que se termine de guardar.</param>
 public static void ImportProjectTr(this TabalimApp app, Action <Object> task_completed)
 {
     ImportTablero(TabalimApp.CurrentProject, TabalimApp.AppDBPath, task_completed);
 }