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); }
/// <summary> /// Obtener el fecha y tiempo /// </summary> /// <returns></returns> public DateTime getDateTime() { return(_managerDateTime.Get()); }
/// <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; } }