public (UserRole userRole, string sessionToken, DateTime authorizationFinish) AuthorizationUser(AuthorizationRequest authorizationData)
        {
            string hash       = _passwordHash.GeneratePasswordHash(authorizationData.Login, authorizationData.Password);
            var    userSystem = _dbContext.UsersSystem.GetUserByLoginPasswordhash(authorizationData.Login, hash);

            var sessionToken = _sessionTokenGenerator.GenerateSessionToken(authorizationData.Login);

            UserAuthorizationToken userToken = new UserAuthorizationToken(DateTime.Now, DateTime.Now.Add(_timeKeyWork),
                                                                          sessionToken, new AuthorizationStatus(AuthorizationStatus.AuthorizationStatusEnum.Active),
                                                                          // ReSharper disable once PossibleInvalidOperationException
                                                                          userSystem.IdEntity.Value);

            var cancelResult = CancelOldSessionToken(userSystem.IdEntity.Value);

            if (!cancelResult)
            {
                return(null, null, DateTime.Now);
            }

            var tokenInserResult = _dbContext.UserAuthorizationsToken.Insert(userToken);

            if (!tokenInserResult.HasValue)
            {
                return(null, null, DateTime.Now);
            }

            return(userSystem.UserAdmittance.UserRole, sessionToken, DateTime.Now + _timeKeyWork);
        }
        private List <UserAuthorizationToken> ReadUserAuthorizations(string storedProcedureName, params SqlParameter[] sqlParameters)
        {
            var userAuthorizations = new List <UserAuthorizationToken>();

            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                connection.Open();

                SqlCommand command = new SqlCommand(storedProcedureName, connection)
                {
                    CommandType = System.Data.CommandType.StoredProcedure
                };

                foreach (SqlParameter sqlParameter in sqlParameters)
                {
                    command.Parameters.Add(sqlParameter);
                }

                SqlDataReader reader = command.ExecuteReader();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        int      readId         = reader.GetInt32(0);
                        DateTime readDateStart  = reader.GetDateTime(1);
                        DateTime readDateFinish = reader.GetDateTime(2);
                        string   readToken      = reader.GetString(3);
                        string   readStatus     = reader.GetString(4);
                        int      readUserId     = reader.GetInt32(5);

                        UserSystem user = _repositorySystemRepository.SelectById(readUserId);

                        UserAuthorizationToken userAuthorization = new UserAuthorizationToken(readId, readDateStart,
                                                                                              readDateFinish, readToken, readStatus, user);

                        userAuthorizations.Add(userAuthorization);
                    }
                }
            }


            return(userAuthorizations);
        }
        public bool Update(UserAuthorizationToken item)
        {
            if (!item.IdEntity.HasValue)
            {
                throw new ArgumentException($"Parameter {nameof(item.IdEntity)} must be not empty", nameof(item.IdEntity));
            }

            var idParam = new SqlParameter
            {
                ParameterName = "@IdEntity",
                Value         = item.IdEntity.Value
            };
            var startParam = new SqlParameter
            {
                ParameterName = "@StartSession",
                Value         = item.StartSession
            };
            var finishParam = new SqlParameter
            {
                ParameterName = "@FinishSession",
                Value         = item.FinishSession
            };
            var tokenParam = new SqlParameter
            {
                ParameterName = "@UserToken",
                Value         = item.UserToken
            };
            var statusParam = new SqlParameter
            {
                ParameterName = "@Status",
                Value         = item.AuthorizationStatus.GetStatusName()
            };
            var userIdParam = new SqlParameter
            {
                ParameterName = "@UserId",
                Value         = item.UserId
            };

            var resultCommand = ExecuteCommand(SpUpdate, idParam, startParam, finishParam, tokenParam, statusParam, userIdParam);

            return(resultCommand != null && (int)resultCommand == 1);
        }
        public int?Insert(UserAuthorizationToken item)
        {
            var startParam = new SqlParameter
            {
                ParameterName = "@StartSession",
                Value         = item.StartSession
            };
            var finishParam = new SqlParameter
            {
                ParameterName = "@FinishSession",
                Value         = item.FinishSession
            };
            var tokenParam = new SqlParameter
            {
                ParameterName = "@UserToken",
                Value         = item.UserToken
            };
            var statusParam = new SqlParameter
            {
                ParameterName = "@Status",
                Value         = item.AuthorizationStatus.GetStatusName()
            };
            var userIdParam = new SqlParameter
            {
                ParameterName = "@UserId",
                Value         = item.UserId
            };

            object resultCommand =
                ExecuteCommand(SpInsert, startParam, finishParam, tokenParam, statusParam, userIdParam);

            int?result = null;

            if (resultCommand != null)
            {
                decimal lastId = (decimal)resultCommand;
                result = Decimal.ToInt32(lastId);
            }

            return(result);
        }
Example #5
0
 public bool Update(UserAuthorizationToken item)
 {
     return(_userAuthorizationTokenRepositor.Update(item));
 }
Example #6
0
 public int?Insert(UserAuthorizationToken item)
 {
     return(_userAuthorizationTokenRepositor.Insert(item));
 }