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