public async Task<tbUser> CreateNewUser(dtoUser user) { tbUser newUser = new tbUser(); try { newUser.UserId = Guid.NewGuid(); newUser.Email = user.Email; newUser.IPAddress = user.IPAddress; newUser.UserRole = UserRole.User; newUser.Password = Crypter.Blowfish.Crypt(user.Password); newUser.CreatedDate = DateTime.UtcNow; newUser.IsDeleted = false; newUser.IsActive = true; _db.tbUsers.Add(newUser); await _db.SaveChangesAsync(); } catch (DataException dex) { throw new ApplicationException("Data error!", dex); } return newUser; }
public async Task<tbSession> CreateUpdateUserSession(tbUser user) { tbSession session = null; try { session = await _db.tbSessions.FirstOrDefaultAsync(x => x.UserId == user.UserId && !(x.IsDeleted ?? false)); if (session != null) { session.IsDeleted = true; session.IsActive = false; session.UpdatedDate = DateTime.UtcNow; } // new session session = new tbSession(); session.SessionId = Guid.NewGuid(); session.UserId = user.UserId; session.CreatedDate = DateTime.UtcNow; session.IPAddress = user.IPAddress; session.Expiry = DateTime.UtcNow.AddDays(1); // extend one day session.IsDeleted = false; session.IsActive = true; _db.tbSessions.Add(session); await _db.SaveChangesAsync(); } catch (DataException dex) { throw new ApplicationException("Data error!", dex); } return session; }