Beispiel #1
0
        public Command RunSearcher(Dictionary <string, object> row, WebCommandsController controller) //obligatorio tanto por la interface como que es el metodo que se ejecutara para buscar y crear el command
        {
            CreateWebUser commands = null;

            if (row.GetValueOrDefault("userid").ToString().Equals(""))
            {
                string uid = Guid.NewGuid().ToString(); //generamos el guid del usuario

                //hay que indicar que campo de la tabla es la clave por la que realizaremos las busquedas
                if (ConsultasPreparadas.Singelton().UpdateTableForGUID(controller, row, uid, "usercode") == 1)
                {
                    Console.WriteLine("Preparando el command CreateWebUser");
                    commands = new CreateWebUser(uid)
                    {
                        Username = row.GetValueOrDefault("username").ToString(), Usercode = row.GetValueOrDefault("usercode").ToString()
                    };
                }
            }
            else
            {
                //mirar en la base de datos del marc si existe, si existe no hacemos nada, si no existe volvemos a enviar el command
                Boolean exist = false;

                if (!exist)
                {
                    Console.WriteLine("Re-enviando command CreateWebUser");
                    commands = new CreateWebUser(row.GetValueOrDefault("userid").ToString())
                    {
                        Username = row.GetValueOrDefault("username").ToString(), Usercode = row.GetValueOrDefault("usercode").ToString()
                    };
                }
            }

            return(commands); //devuelvo el command
        }
Beispiel #2
0
 /// <summary>
 /// Metodo que extrae un command de la base de datos y busca por cada tabla que cambios son de este command
 /// </summary>
 /// <param name="commandsTable">Recibe una lista de diccionarios (string, object) donde string es la columna y el object es el contenido de la fila  en la base de datos</param>
 private static void PrepareDetector(List <Dictionary <string, object> > commandsTable)
 {
     foreach (Dictionary <string, object> row in commandsTable)
     {
         try
         {
             WebCommandsController controller = new WebCommandsController(row); //generamos un webController a partir de la informacion de este controller
             //Console.WriteLine("Prepare Detector: preparando trabajo para: " + controller.CommandName);
             TotalCommandsEnviados += controller.RunDetector();                 //lanzamos el controller
         }
         catch (MyNoImplementedException ni)
         {
             Sender.Singelton().TrackException(ni);
             Console.WriteLine(ni.Message);
         }
         catch (NoCompletCommandSend cs)
         {
             Sender.Singelton().TrackException(cs);
             Console.WriteLine(cs.Message);
         }
         catch (Exception e)
         {
             Sender.Singelton().TrackException(e); //le paso la excepcion, puesto que no se donde a petado
             Console.WriteLine(e.Message);
         }
     }
 }
        public Command RunSearcher(Dictionary <string, object> row, WebCommandsController controller) //obligatorio tanto por la interface como que es el metodo que se ejecutara para buscar y crear el command
        {
            CreateWebAccessGroup commands = null;

            if (row.GetValueOrDefault("accessgroupid").ToString().Equals(""))
            {
                string uid = Guid.NewGuid().ToString(); //generamos el guid del usuario

                //hay que indicar que campo de la tabla es la clave por la que realizaremos las busquedas
                if (ConsultasPreparadas.Singelton().UpdateTableForGUID(controller, row, uid, "accessgroupname") == 1) //la consulta ja se ocupa de actualizar-lo y nos devuelve el numero de filas actualizadas
                {
                    Console.WriteLine("Preparando el command CreateWebAccessGroup");
                    commands = new CreateWebAccessGroup(uid)
                    {
                        Accessgroupname = row.GetValueOrDefault("accessgroupname").ToString()
                    };
                }
            }
            else
            {
                Boolean exist = false; //comprovamos en la base de datos del marc si existe

                if (!exist)
                {
                    Console.WriteLine("Re-enviando command CreateWebAccessGroup");
                    commands = new CreateWebAccessGroup(row.GetValueOrDefault("accessgroupid").ToString())
                    {
                        Accessgroupname = row.GetValueOrDefault("accessgroupname").ToString()
                    };
                }
            }

            return(commands); //devuelvo el command
        }
Beispiel #4
0
 /// <summary>
 /// Metodo que extrae un command de la base de datos y busca por cada tabla que cambios son de este command
 /// </summary>
 /// <param name="commandsTable">Recibe una lista de diccionarios (string, object) donde string es la columna y el object es el contenido de la fila  en la base de datos</param>
 private static void PrepareDetector(List <Dictionary <string, object> > commandsTable)
 {
     foreach (Dictionary <string, object> row in commandsTable)
     {
         try
         {
             WebCommandsController controller = new WebCommandsController(row); //generamos un webController a partir de la informacion de este controller
             TotalCommandsEnviados += controller.RunDetector();                 //lanzamos el controller y recivimos el numero de commands enviados
         }
         catch (MyNoImplementedException ni)
         {
             Sender.Singelton().GetServices().GetRequiredService <ILogger <Program> >().LogError(ni.Message);
             Console.WriteLine(ni.Message);
         }
         catch (NoCompletCommandSend cs)
         {
             Sender.Singelton().GetServices().GetRequiredService <ILogger <Program> >().LogError(cs.Message);
             Console.WriteLine(cs.Message);
         }
         catch (Exception e)
         {
             Sender.Singelton().GetServices().GetRequiredService <ILogger <Program> >().LogError(e.Message);
             Console.WriteLine(e.Message);
         }
     }
 }
Beispiel #5
0
        public static void Main(string[] args)
        {
            Sender.Singelton(); //iniciamos el sender, para asi tambien iniciar el logger

            StartFunction();

            try
            {
                WebCommandsController.EndSender();
            }
            catch (NullReferenceException ne)
            {
                Console.WriteLine(ne.Message);
                Sender.Singelton().GetServices().GetRequiredService <ILogger>().LogError(ne.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Sender.Singelton().GetServices().GetRequiredService <ILogger>().LogError(e.Message);
            }

            Console.WriteLine("Total commands enviados: " + TotalCommandsEnviados);
            Sender.Singelton().GetServices().GetRequiredService <ILogger <Program> >().LogInformation("Total commands enviados: " + TotalCommandsEnviados);


            Task.Delay(10000).Wait(); //espera 10 segundos, por si acaso
        }
Beispiel #6
0
        public Command RunSearcher(Dictionary <string, object> row, WebCommandsController controller)
        {
            DeleteWebUser commands = null;

            //lo sullo seria comprovar que en la otra base de datos no se ha eliminado, si se ha eliminado se quitaria el flag de changevalue a -1

            Console.WriteLine("Preparando el command DeleteWebUser");
            commands = new DeleteWebUser(row.GetValueOrDefault("userid").ToString());


            return(commands);
        }
Beispiel #7
0
        public Command RunSearcher(Dictionary <string, object> row, WebCommandsController controller)
        {
            UpdateWebUser commands = null;

            Console.WriteLine("Running searcher Update");

            commands = new UpdateWebUser(row.GetValueOrDefault("userid").ToString())
            {
                Username = row.GetValueOrDefault("username").ToString()
            };

            /*
             * Passos a seguir:
             * buscamos en la otra base de datos el id de nuestra row, si no existe, creamos y enviamos un command de createWebUser.
             * si existe, comparamos parametro a parametro que cambio hay, una vez encontrado, instanciamos y devolvemos el command
             */
            return(commands);
        }
Beispiel #8
0
        public static void Main(string[] args)
        {
            /*TelemetryClient client = new TelemetryClient() { InstrumentationKey = "" };
             *
             * var services = new ServiceCollection();
             *
             * services.AddSingleton(x => client);
             *
             * var proveider = services.BuildServiceProvider();*/

            Sender.Singelton();


            StartFunction();

            try
            {
                WebCommandsController.EndSender();
            }
            catch (NullReferenceException ne)
            {
                Sender.Singelton().TrackException(ne);
                Console.WriteLine(ne.Message);
            }
            catch (Exception e)
            {
                Sender.Singelton().TrackException(e);
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("Total commands enviados: " + TotalCommandsEnviados);

            var metrica = new MetricTelemetry()
            {
                Name = "Total commands Send",
                Sum  = TotalCommandsEnviados
            };

            Sender.Singelton().TrackMetric(metrica);
            Sender.Singelton().Flush();

            Task.Delay(10000).Wait(); //espera 10 segundos, por si acaso
        }