public static bool Create(Models.Users.UserTokenInfo tokenInfo) { using (var db = new DataAccess.CaraxEntitiy()) { db.UserTokenInfos.Add(tokenInfo); return(db.SaveChanges() > 0); } }
public static bool Update(Guid tokenGuid, DateTime tokenEndDateTime) { using (var db = new DataAccess.CaraxEntitiy()) { var userTokenInfo = db.UserTokenInfos?.FirstOrDefault(q => q.TokenGuid == tokenGuid); if (userTokenInfo == null) { return(false); } userTokenInfo.TokenEndDateTime = tokenEndDateTime; return(db.SaveChanges() > 0); } }
public static async Task <bool> Delete(Guid tokens) { using (var db = new DataAccess.CaraxEntitiy()) { var tokeninfo = db.UserTokenInfos.FirstOrDefault(q => q.TokenGuid == tokens); db.UserTokenInfos.Remove(tokeninfo); db.SaveChanges(); var token = db.Tokens.First(q => q.TokenGuid == tokens); db.Tokens.Remove(token); return(await db.SaveChangesAsync() > 0); } }
private static List <Models.Users.TokenResult> GetUserTokenGuid(string username, string password, string departmentCode) { using (var db = new DataAccess.CaraxEntitiy()) { var userDepartments = db.UserDepartments.Where(q => q.Username == username && q.DepartmentCode == departmentCode).ToList(); if (!userDepartments.Any()) { throw new AuthenticationException(); } var userId = userDepartments.First().UserId; var user = db.Users.FirstOrDefault(q => q.Id == userId); if (!user.IsActive) { throw new AuthenticationException("This user is not active."); } // checkpassword if (!password.GetSHA512(user.PasswordSalt).SequenceEqual(user.PasswordHash)) { throw new AuthenticationException(); } var departments = db.Departments.ToList(); var tokens = new List <TokenResult>(); var dbTokens = UserTokenInfoLogic.GetTokens(userId, username); var dateTime = DateTime.Now; foreach (var info in dbTokens) { info.TokenEndDateTime = dateTime.AddDays(7); Tokens.AddOrUpdate(info.TokenGuid, info); var departmentFirst = departments.FirstOrDefault(x => x.Code == info.DepartmentCode); tokens.Add(new TokenResult { DepartmentCode = info.DepartmentCode, DepartmentName = departmentFirst?.Name, Token = info.TokenGuid }); } Task.Factory.StartNew(() => { foreach (var info in dbTokens) { UserTokenInfoLogic.Update(info.TokenGuid, info.TokenEndDateTime); } }); var userDepartmentWithByUser = UserDepartmentLogic.GetListByUser(userId); if (userDepartmentWithByUser.Count > dbTokens.Count) { foreach (var department in userDepartmentWithByUser.Where(x => dbTokens.All(y => y.DepartmentCode != x.DepartmentCode))) { var departmentFirst = departments.FirstOrDefault(x => x.Code == department.DepartmentCode); // set token var tokenGuid = Guid.NewGuid(); var tokenInfo = new Models.Users.UserTokenInfo(tokenGuid, user.Id, user.Username, department.DepartmentCode, user.UserLevel, user.EMail, dateTime, dateTime.AddDays(7), user.CompanyCode); // add to db UserTokenInfoLogic.Create(tokenInfo); Models.Tokens.Token tk = new Token { CompanyCode = tokenInfo.CompanyCode, CreateDateTime = tokenInfo.CreatedDateTime, DepartmentCode = tokenInfo.DepartmentCode, TokenEndDateTime = tokenInfo.TokenEndDateTime, TokenGuid = tokenInfo.TokenGuid, UserId = tokenInfo.UserId, Username = tokenInfo.Username }; db.Tokens.Add(tk); db.SaveChanges(); // add yo dictionary Tokens.AddOrUpdate(tokenGuid, tokenInfo); tokens.Add(new TokenResult { DepartmentCode = department.DepartmentCode, DepartmentName = departmentFirst?.Name, Token = tokenGuid }); } } return(tokens); } }