Esempio n. 1
0
        static bool LoginAdministrador(IMessageHandling proxy)
        {
            var loginCmd = new LoginCommand
            {
                UserName = "******",
                Password = "******",
            };

            var status = proxy.Handle(loginCmd);

            bool Success = status.GetType() == typeof(Success);

            if (Success)
            {
                Console.WriteLine("Login Aceptado.");

                // Leer User Role
                var URquery = new UserRoleQuery(loginCmd.UserName);

                var result = proxy.Handle(URquery);
                Console.WriteLine(string.Format(" UserID: {0} Nombre: {1} Rol: {2}", result.UserID, result.UserName, result.UserRole));
                // Guardar UserId para Lectura de datos
                _userID = result.UserID;

                return(true);
            }
            else
            {
                Console.WriteLine(string.Format("Login Denegado. Mensaje: {0}", (status as Failure).Errormessage));
                return(false);
            }
        }
Esempio n. 2
0
        private T HandleAndSaveChanges(IEvent incomingEvent, IMessageHandling handling)
        {
            T eventSourced = handling.Handle.Invoke() as T;

            this.store.Save(eventSourced, incomingEvent);
            return(eventSourced);
        }
Esempio n. 3
0
        private void HandleAndSaveChanges(IEvent incomingEvent, IMessageHandling handling)
        {
            var eventSourced = handling.Handle.Invoke();
            var version      = this.store.Save((TEventSourced)eventSourced, incomingEvent);

            this.bus.Publish(new EventStoreHasBeenUpdated(version));
            this.PublishIncomingEventHasBeenProcessed(incomingEvent);
        }
Esempio n. 4
0
        static void WriteDataAction(IMessageHandling proxy)
        {
            Console.WriteLine("\nEjecutando escritura de datos\n");

            //WriteDataJefeGrupo(proxy);
            WriteDataSupervisor(proxy);
            //WriteDataAdministrador(proxy);
        }
Esempio n. 5
0
        static bool LoginAction(IMessageHandling proxy)
        {
            Console.WriteLine("\nEjecutando login\n");

            //return LoginJefeGrupo(proxy);
            return(LoginSupervisor(proxy));
            //return LoginAdministrador(proxy);
        }
Esempio n. 6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Daemon" /> class.
 /// </summary>
 public Daemon(ILogger <Daemon> logger, IMessageHandling messageHandling, INow now, IGuid guid, IDbContexts dbContexts)
 {
     _logger          = logger;
     _messageHandling = messageHandling;
     _guid            = guid;
     _now             = now;
     _dbContexts      = dbContexts;
 }
Esempio n. 7
0
        static void WriteDataJefeGrupo(IMessageHandling proxy)
        {
            // I Parte inicialmente no hay incidencias, se crean 4 nuevas en las asistencias guardadas

            //_asist01.IncidenciaCausaIncidencia = 2;
            //_asist01.IncidenciaObservacion = "Primera Incidencia adicionada.";

            //_asist02.IncidenciaCausaIncidencia = 4;
            //_asist02.IncidenciaObservacion = "Segunda Incidencia adicionada.";

            //_asist03.IncidenciaCausaIncidencia = 7;
            //_asist03.IncidenciaObservacion = "Tercera Incidencia adicionada.";

            //_asist04.IncidenciaCausaIncidencia = 9;
            //_asist04.IncidenciaObservacion = "Cuarta Incidencia adicionada.";



            // II Parte Ya existen incidencias, se modifican
            // SE borra la primera y se actualizan 2da y tercera
            //_asist01.IncidenciaCausaIncidencia = 0;

            //_asist02.IncidenciaCausaIncidencia = 2;
            //_asist02.IncidenciaObservacion = "Segunda Incidencia MODIFICADA 3.";

            ////_asist03.IncidenciaCausaIncidencia = 1;
            ////_asist03.IncidenciaObservacion = "Tercera Incidencia MODIFICADA.";

            //_asistencias = new Collection<Asistencia>();
            //_asistencias.Add(_asist01);
            //_asistencias.Add(_asist02);


            // III Parte Se crea de nuevo la primera
            _asist01.IncidenciaCausaId     = 2;
            _asist01.IncidenciaObservacion = "Primera Incidencia adicionada.";


            // Comando de actualizacion
            AsistenciaUpdateCommand asistCmd = new AsistenciaUpdateCommand(_asistencias, _incidencias);
            var status = proxy.Handle(asistCmd);

            bool Success = status.GetType() == typeof(Success);

            if (Success)
            {
                Console.WriteLine("Comando Ejecutado con éxito.");
            }
            else
            {
                Console.WriteLine("Comando fallido. Error: " + (status as Failure).Errormessage);
            }
        }
Esempio n. 8
0
        static void ReadDataSupervisor(IMessageHandling proxy)
        {
            // consultar lista de departamentos
            DepartamentQuery       dptQry    = new DepartamentQuery();
            DepartamentQueryResult dptQryRst = proxy.Handle(dptQry);

            Console.WriteLine("\nLeida lista de departamentos. Cantidad: " + dptQryRst.Coleccion.Count);
            foreach (var depart in dptQryRst.Coleccion)
            {
                Console.WriteLine(string.Format(" Leído Departamento Id: {0}\t Nombre: {1}", depart.Id, depart.Description));
            }

            // consultar claves mes existentes
            ClaveMesQuery       cmQry    = new ClaveMesQuery();
            ClaveMesQueryResult cmQryRst = proxy.Handle(cmQry);

            Console.WriteLine("\nClaves Mes registradas");
            foreach (var item in cmQryRst.Coleccion)
            {
                Console.WriteLine(string.Format(" Clave Mes: {0}", item.Texto));
            }

            // consultar asistencia para un mes y tres departamentos
            ClaveMes         mk      = cmQryRst.Coleccion[1];
            Collection <int> departs = new Collection <int>();

            departs.Add(dptQryRst.Coleccion[1].Id);
            departs.Add(dptQryRst.Coleccion[3].Id);
            departs.Add(dptQryRst.Coleccion[5].Id);

            AsistenciaQuery       asistQry    = new AsistenciaQuery(mk.Id, departs);
            AsistenciaQueryResult asistQryRst = proxy.Handle(asistQry);

            //Console.WriteLine("\nIncidencias en el Mes registradas: " + asistQryRst.Incidencias.Count);
            Console.WriteLine("\nAsistencias en el Mes registradas");
            Console.WriteLine(string.Format("Recibidos {0} empleados.", asistQryRst.Empleados.Count));
            // listando empleados
            foreach (var item in asistQryRst.Empleados)
            {
                Console.WriteLine(string.Format("Nombre: {0}\t Id: {1}\t Codigo: {2} Cant. Asistencias: {3}", item.Nombre, item.Id, item.Code, item.Asistencias.Count));
            }

            foreach (var empleado in asistQryRst.Empleados)
            {
                Console.WriteLine();
                Console.WriteLine(string.Format(" {0}", empleado.Nombre));

                foreach (var asist in empleado.Asistencias)
                {
                    Console.WriteLine(string.Format(" {0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}", asist.State, asist.Id, asist.Fecha, asist.DiaSemana, asist.ChekinTime, asist.ChekoutTime, asist.IncidenciaCausaId, asist.IncidenciaObservacion));
                }
            }
        }
Esempio n. 9
0
        static bool LoginJefeGrupo(IMessageHandling proxy)
        {
            var loginCmd = new LoginCommand
            {
                UserName = "******",
                Password = "******",
            };

            var status = proxy.Handle(loginCmd);

            bool Success = status.GetType() == typeof(Success);

            if (Success)
            {
                Console.WriteLine("Login Aceptado.");

                // Leer User Role
                var URquery = new UserRoleQuery(loginCmd.UserName);

                var result = proxy.Handle(URquery);
                Console.WriteLine(string.Format(" UserID: {0} Nombre: {1} Rol: {2}", result.UserID, result.UserName, result.UserRole));

                // Guardar UserId para Lectura de datos
                _userID = result.UserID;

                // Valor de prueba en DB 72011518751
                Console.WriteLine(string.Format(" Comparacion UserID leído: {0}  esperado: 72011518751 ", _userID));


                return(true);
            }
            else
            {
                Console.WriteLine(string.Format("Login Denegado. Mensaje: {0}", (status as Failure).Errormessage));
                return(false);
            }
        }
Esempio n. 10
0
 public static IMessageHandling WithoutDeduplication(this IMessageHandling handling)
 {
     ((MessageHandling)handling).DeduplicateBeforeHandling = false;
     return(handling);
 }
Esempio n. 11
0
        private void HandleGracefully(IEvent incomingEvent)
        {
            try
            {
                dynamic          me       = this;
                IMessageHandling handling = me.Handle((dynamic)incomingEvent);

                if (handling.ShouldBeIgnored)
                {
                    this.Ignore(incomingEvent);
                    return;
                }

                /*****************************************************
                 *  This was the old way to get a lock.
                 *
                 *  this.streamLocksById.TryAdd(id, new object());
                 *  lock (this.streamLocksById.TryGetValue(id))
                 *
                 ******************************************************/
                lock (this.streamLocksById.GetOrAdd(handling.StreamId.ToString(), new object()))
                {
                    try
                    {
                        if (!this.poisonedStreams.Where(p => p == handling.StreamId).Any())
                        {
                            this.HandleAndSaveChanges(incomingEvent, handling);
                        }

                        if (this.log.Verbose)
                        {
                            this.log.Trace($"{name} successfully handled message of type {incomingEvent.GetType().Name}");
                        }
                    }
                    catch (StreamNotFoundException ex)
                    {
                        // we igonore it, just to protect our servers to get down.
                        this.log.Error(ex, $"The stream {handling.StreamId} was not found. Ignoring message. You can retry by reseting the subscription table.");
                        this.Ignore(incomingEvent);
                    }
                    catch (RuntimeBinderException ex)
                    {
                        var list = new List <string>();
                        list.Add($"The state of {name} seems like it does not have an orveload to update when message of type {incomingEvent.GetType().Name} is processed. Did you forget to write a When-Event-like method?");
                        list.Add("-----------------------------------------------------------------------------------");
                        this.log.Error(ex, "", list.ToArray());
                        this.poisonedStreams.Add(handling.StreamId);
                        throw ex;
                    }
                    catch (Exception ex)
                    {
                        this.log.Error(ex, $"An error was detected while processing a message. Now we will try to check if it is duplicate or the snapshot is currupted");

                        // Maybe is duplicate
                        try
                        {
                            if (this.store.IsDuplicate(incomingEvent.EventId))
                            {
                                this.Ignore(incomingEvent);
                                return;
                            }
                        }
                        catch (Exception duplicateEx)
                        {
                            this.log.Error(duplicateEx, "An error ocurred while checking if incoming message is duplicate.");
                        }

                        // Or maybe the snapshot is corrupted
                        try
                        {
                            this.store.DeleteSnapshot(handling.StreamId);
                            this.HandleAndSaveChanges(incomingEvent, handling);
                            return;
                        }
                        catch (Exception deleteSnapshotEx)
                        {
                            this.log.Error(deleteSnapshotEx, "An error ocurred while deleting snapshot and trying to re-process a message.");
                        }

                        this.poisonedStreams.Add(handling.StreamId);
                        throw ex;
                    }
                }
            }
            catch (Exception ex)
            {
                var exception = new PoisonMessageException("An error ocurred in Event Processor while processing a message. The message will be marked as poisoned in order to review it. Maybe is just a dynamic binding error.", ex);

                this.bus.Publish(new IncomingEventIsPoisoned(incomingEvent, exception));

                this.log.Error(exception, $"Poison message of type {incomingEvent.GetType().Name} detected in Event Processor");
            }
        }
Esempio n. 12
0
 static void WriteDataAdministrador(IMessageHandling proxy)
 {
 }
Esempio n. 13
0
 static void WriteDataSupervisor(IMessageHandling proxy)
 {
 }
Esempio n. 14
0
 public UI(IMessageHandling mh)
 {
     _mh = mh;
 }
Esempio n. 15
0
        static void ReadDataJefeGrupo(IMessageHandling proxy)
        {
            // consultar dept del usuario
            UserDepartamentQuery       dptQry    = new UserDepartamentQuery(_userID);
            UserDepartamentQueryResult dptQryRst = proxy.Handle(dptQry);

            Console.WriteLine(string.Format(" Leído Departamento Id: {0}\t Nombre: {1}", dptQryRst.Id, dptQryRst.Name));
            // consultar claves mes existentes
            ClaveMesQuery       cmQry    = new ClaveMesQuery();
            ClaveMesQueryResult cmQryRst = proxy.Handle(cmQry);

            Console.WriteLine("\nClaves Mes registradas");
            foreach (var item in cmQryRst.Coleccion)
            {
                Console.WriteLine(string.Format(" Clave Mes: {0}", item.Texto));
            }
            // consultar asistencia para un mes y departamento del usuario
            // aislar datos de mes
            ClaveMes mk = cmQryRst.Coleccion[0];

            AsistenciaQuery       asistQry    = new AsistenciaQuery(mk.Id, dptQryRst.Id);
            AsistenciaQueryResult asistQryRst = proxy.Handle(asistQry);

            // guardando ref a incidencias recibidas
            //Console.WriteLine("\nIncidencias en el Mes registradas: " + asistQryRst.Incidencias.Count);

            _asistencias = new Collection <Asistencia>();

            Console.WriteLine("\nAsistencias en el Mes registradas");
            Console.WriteLine(string.Format("Recibidos {0} empleados.", asistQryRst.Empleados.Count));
            // listando empleados
            foreach (var item in asistQryRst.Empleados)
            {
                Console.WriteLine(string.Format("Nombre: {0}\t Id: {1}\t Codigo: {2} Cant. Asistencias: {3}", item.Nombre, item.Id, item.Code, item.Asistencias.Count));
            }

            Console.WriteLine("\nAsistencias por trabajador");

            foreach (var empleado in asistQryRst.Empleados)
            {
                Console.WriteLine();
                Console.WriteLine(string.Format(" {0}", empleado.Nombre));

                foreach (var asist in empleado.Asistencias)
                {
                    Console.WriteLine(string.Format(" {0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}", asist.State, asist.Id, asist.Fecha, asist.DiaSemana, asist.ChekinTime, asist.ChekoutTime, asist.IncidenciaCausaId, asist.IncidenciaObservacion));

                    if (asist.Id == 177)
                    {
                        _asist01 = asist;
                    }
                    if (asist.Id == 232)
                    {
                        _asist02 = asist;
                    }
                    if (asist.Id == 342)
                    {
                        _asist03 = asist;
                    }
                    if (asist.Id == 452)
                    {
                        _asist04 = asist;
                    }
                }
            }

            _asistencias.Add(_asist01);
            _asistencias.Add(_asist02);
            _asistencias.Add(_asist03);
            _asistencias.Add(_asist04);
        }
 public UserInterface(IMessageHandling mh)
 {
     _mh = mh;
 }
Esempio n. 17
0
 static void ReadDataAdministrador(IMessageHandling proxy)
 {
 }