Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }