Ejemplo n.º 1
0
        public static string GenerateToken(string secretKeyBase64, long userId, long rolId, long sesionId, int minutosExpiracionToken)
        {
            var payload = new Dictionary <string, object>()
            {
                { "fechaCaducidad", _managerDateTime.Get().AddMinutes(minutosExpiracionToken) },
                { "key", Guid.NewGuid().ToString() },
                { "userId", userId },
                { "rolId", rolId },
                { "sesionId", sesionId }
            };

            string token = JWT.JsonWebToken.Encode(payload, secretKeyBase64, JWT.JwtHashAlgorithm.HS256);

            return(token);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Obtener el fecha y tiempo
 /// </summary>
 /// <returns></returns>
 public DateTime getDateTime()
 {
     return(_managerDateTime.Get());
 }
Ejemplo n.º 3
0
        /// <summary>
        /// The number of objects written to the underlying database.
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        private int Save() //TEntity entity)
        {
            try
            {
                foreach (var dbEntityEntry in _context.ChangeTracker.Entries().Where(x => x.State == EntityState.Added || x.State == EntityState.Modified))
                {
                    ///TODO: JSA que pase si existe un error se debe reversar la version???
                    IVersionable entityVersionable = dbEntityEntry.Entity as IVersionable;
                    if (entityVersionable != null)
                    {
                        entityVersionable.VersionRegistro = entityVersionable.VersionRegistro + 1;
                    }


                    IAuditableEntity entityAuditable = dbEntityEntry.Entity as IAuditableEntity;
                    if (entityAuditable != null)
                    {
                        var identifidadUsuario = _identityUser.GetCurrentIdentity();

                        DateTime fechaHora = _managerDateTime.Get();

                        if (dbEntityEntry.State == EntityState.Added)
                        {
                            entityAuditable.UsuarioCreacionId      = identifidadUsuario;
                            entityAuditable.FechaCreacion          = fechaHora;
                            entityAuditable.UsuarioActualizacionId = null;
                            entityAuditable.FechaActualizacion     = null;
                        }
                        else
                        {
                            _context.Entry <IAuditableEntity>(entityAuditable).Property(x => x.FechaCreacion).IsModified     = false;
                            _context.Entry <IAuditableEntity>(entityAuditable).Property(x => x.UsuarioCreacionId).IsModified = false;
                            entityAuditable.UsuarioActualizacionId = identifidadUsuario;
                            entityAuditable.FechaActualizacion     = fechaHora;
                        }
                    }
                }
                return(_context.SaveChanges());
            }
            catch (DbEntityValidationException ex)
            {
                //TODO: JSA mensajar mensajes de DbEntityValidationException
                var errorMessages = (from eve in ex.EntityValidationErrors
                                     let entity = eve.Entry.Entity.GetType().Name
                                                  from ev in eve.ValidationErrors
                                                  select new
                {
                    Entity = entity,
                    PropertyName = ev.PropertyName,
                    ErrorMessage = ev.ErrorMessage
                });

                var fullErrorMessage = string.Join("; ", errorMessages.Select(e => string.Format("[Entity: {0}, Property: {1}] {2}", e.Entity, e.PropertyName, e.ErrorMessage)));

                var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
            }

            catch (DbUpdateException ex)
            {
                SqlException     se   = null;
                System.Exception next = ex;

                while (next.InnerException != null)
                {
                    se   = next.InnerException as SqlException;
                    next = next.InnerException;
                }

                if (se != null && (se.Number == 2601 || se.Number == 2627))
                {
                    // Do your SqlException processing here
                    throw new ClaveDuplicadaExcepcion(se.Message);
                }
                else
                {
                    // Do other exception processing here
                    throw ex;
                }
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }