public async Task <StatesEnums?> GetLastInitializationState()
        {
            IDbBase db = null;

            StatesEnums?statesEnums = null;

            try
            {
                db = _dbFactory.GetDbBase();

                await db.ConnectAsync();

                using (var reader = await db.ExecuteReaderFunctionAsync(GET_LAST_INITIALIZATION_STATE))
                {
                    if (reader.HasRows && reader.Read())
                    {
                        statesEnums = (StatesEnums)Convert.ToInt16(reader["o_state_id"]);
                    }
                }

                return(statesEnums);
            }
            catch (Exception ex)
            {
                await _logsManager.ErrorAsync(new ErrorLogStructure(ex).WithErrorSource());

                throw new HandledException(ex);
            }
            finally
            {
                await db?.DisconnectAsync();
            }
        }
        public async Task <List <User> > GetUsersByRole(RolesEnum rolesEnum)
        {
            IDbBase dbBase = null;

            List <User> users = null;

            try
            {
                var parameters = new List <TimescaleParameter>
                {
                    new TimescaleParameter
                    {
                        NpgsqlValue   = (short)rolesEnum,
                        ParameterName = _dataManagersHelpers.CreateParameterName(ConstantsTs.ROLE_ID),
                        NpgsqlDbType  = NpgsqlDbType.Smallint
                    }
                };

                dbBase = _dbFactory.GetDbBase();

                await dbBase.ConnectAsync();

                using (var reader = await dbBase.ExecuteReaderFunctionAsync(GET_USERS_BY_ROLE_FNC_NAME, parameters))
                {
                    if (reader.HasRows)
                    {
                        users = new List <User>();

                        while (reader.Read())
                        {
                            var email     = reader[_dataManagersHelpers.CreateSelectPropertyName(ConstantsTs.EMAIL)];
                            var firstName = reader[_dataManagersHelpers.CreateSelectPropertyName(ConstantsTs.FIRST_NAME)];
                            var lastName  = reader[_dataManagersHelpers.CreateSelectPropertyName(ConstantsTs.LAST_NAME)];

                            users.Add(
                                new User
                            {
                                UserId    = Convert.ToInt64(_dataManagersHelpers.CreateSelectPropertyName(ConstantsTs.USER_ID)),
                                Email     = email is DBNull ? null : email.ToString(),
                                FirstName = firstName is DBNull ? null : firstName.ToString(),
                                LastName  = lastName is DBNull ? null : lastName.ToString()
                            }
                                );
                        }
                    }
                }

                return(users);
            }
            catch (Exception ex)
            {
                await _logsManager.ErrorAsync(new ErrorLogStructure(ex).WithErrorSource());

                throw new HandledException(ex);
            }
            finally
            {
                await dbBase?.DisconnectAsync();
            }
        }
Exemple #3
0
        public async Task <Tokens> GetTokenDetailsFromDataStorgeAsync(string token)
        {
            IDbBase dbBase = null;

            Tokens tokenResponse = null;

            try
            {
                dbBase = _dbFactory.GetDbBase();

                var parameters = new List <TimescaleParameter>
                {
                    new TimescaleParameter
                    {
                        NpgsqlValue   = token,
                        ParameterName = TOKEN_PARAMTER_NAME,
                        NpgsqlDbType  = NpgsqlDbType.Varchar
                    }
                };

                await dbBase.ConnectAsync();

                using (var reader = await dbBase.ExecuteReaderFunctionAsync(GET_TOKEN_DETAILS_FUNCTION_NAME, parameters))
                {
                    if (reader.HasRows && reader.Read())
                    {
                        tokenResponse = new Tokens
                        {
                            TokenId = _dataManagersHelpers.GetLong(reader, OUTPUT_TOKEN_ID_PARAMTER_NAME).Value,

                            Token = _dataManagersHelpers.GetString(reader, OUTPUT_TOKEN_PARAMTER_NAME),

                            OwnerId = _dataManagersHelpers.GetLong(reader, OUTPUT_TOKEN_OWNER_ID_PARAMTER_NAME).Value,

                            MnemoxAccessObjectsType = (MnemoxAccessObjectsTypesEnum)_dataManagersHelpers.GetInt(reader, OUTPUT_TOKEN_OWNER_TYPE_ID_PARAMTER_NAME).Value,

                            ValidUntilDateTimeUtc = _dataManagersHelpers.GetDateTime(reader, OUTPUT_TOKEN_VALID_UNTIL_PARAMTER_NAME).Value
                        };
                    }
                }

                return(tokenResponse);
            }
            catch (Exception ex)
            {
                await _logsManager.ErrorAsync(new ErrorLogStructure(ex).WithErrorSource());

                throw new HandledException(ex);
            }
            finally
            {
                if (dbBase != null)
                {
                    await dbBase.DisconnectAsync();
                }
            }
        }
        public async Task <List <ServerModel> > GetServersListByStateOrAllAsync(StatesEnums?state = null)
        {
            IDbBase db = null;

            try
            {
                List <ServerModel> servers = null;

                var parameters = new List <TimescaleParameter> {
                    new TimescaleParameter
                    {
                        NpgsqlValue   = state != null ? (short)state : DBNull.Value,
                        ParameterName = STATE_ID_PARAMETER_NAME,
                        NpgsqlDbType  = NpgsqlDbType.Smallint
                    }
                };

                db = _dbFactory.GetDbBase();

                await db.ConnectAsync();

                using (var reader = await db.ExecuteReaderFunctionAsync(GET_SERVERS_LIST_FNC_NAME, parameters))
                {
                    if (reader.HasRows)
                    {
                        servers = new List <ServerModel>();

                        while (reader.Read())
                        {
                            servers.Add(new ServerModel
                            {
                                ServerId    = Convert.ToInt64(reader["o_server_id"]),
                                ServerName  = reader["o_server_name"].ToString(),
                                ServerState = (StatesEnums)Convert.ToInt16(reader["o_state_id"])
                            });
                        }
                    }
                }

                return(servers);
            }
            catch (Exception ex)
            {
                await _logsManager.ErrorAsync(new ErrorLogStructure(ex).WithErrorSource());

                throw new HandledException(ex);
            }
            finally
            {
                await db?.DisconnectAsync();
            }
        }
        public async Task <ServerModel> GetServerDetailsById(long serverId)
        {
            IDbBase db = null;

            try
            {
                ServerModel server = null;

                var parameters = new List <TimescaleParameter> {
                    new TimescaleParameter
                    {
                        NpgsqlValue   = serverId,
                        ParameterName = SERVER_ID_PARAMETER_NAME,
                        NpgsqlDbType  = NpgsqlDbType.Bigint
                    }
                };

                db = _dbFactory.GetDbBase();

                await db.ConnectAsync();

                using (var reader = await db.ExecuteReaderFunctionAsync(GET_SERVER_DETAILS_BY_ID_FNC_NAME, parameters))
                {
                    if (reader.HasRows && reader.Read())
                    {
                        server = new ServerModel
                        {
                            ServerId    = Convert.ToInt64(reader["o_server_id"]),
                            ServerName  = reader["o_server_name"].ToString(),
                            ServerState = (StatesEnums)Convert.ToInt16(reader["o_state_id"])
                        };
                    }
                }

                return(server);
            }
            catch (Exception ex)
            {
                await _logsManager.ErrorAsync(new ErrorLogStructure(ex).WithErrorSource());

                throw new HandledException(ex);
            }
            finally
            {
                await db?.DisconnectAsync();
            }
        }
Exemple #6
0
        public async Task <User> GetUserByUsernameAndPassword(string username, string password)
        {
            IDbBase dbBase = null;

            User user = null;

            try
            {
                if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))
                {
                    throw new OutputException(
                              new Exception(ALL_FIELDS_ARE_MANDATORY),
                              StatusCodes.Status400BadRequest,
                              MnemoxStatusCodes.INVALID_MODEL
                              );
                }

                var parameters = new List <TimescaleParameter>
                {
                    new TimescaleParameter
                    {
                        NpgsqlValue   = username,
                        ParameterName = USERNAME_PARAMETER_NAME,
                        NpgsqlDbType  = NpgsqlDbType.Varchar
                    },
                    new TimescaleParameter
                    {
                        NpgsqlValue   = password,
                        ParameterName = PASSWORD_PARAMETER_NAME,
                        NpgsqlDbType  = NpgsqlDbType.Varchar
                    }
                };

                dbBase = _dbFactory.GetDbBase();

                await dbBase.ConnectAsync();

                using (var userReader = await dbBase.ExecuteReaderFunctionAsync(SIGN_IN_USER_FUNCTION_NAME, parameters))
                {
                    if (!userReader.HasRows)
                    {
                        return(null);
                    }

                    userReader.Read();

                    user = new User
                    {
                        UserId = Convert.ToInt64(userReader[USER_ID_READER_FIELD_NAME]),

                        FirstName = _dataManagersHelpers.GetString(userReader, FIRST_NAME_READER_FIELD_NAME),

                        LastName = _dataManagersHelpers.GetString(userReader, LAST_NAME_READER_FIELD_NAME)
                    };
                }

                return(user);
            }
            catch (OutputException)
            {
                throw;
            }
            catch (Exception ex)
            {
                await _logsManager.ErrorAsync(new ErrorLogStructure(ex).WithErrorSource());

                throw new HandledException(ex);
            }
            finally
            {
                if (dbBase != null)
                {
                    await dbBase.DisconnectAsync();
                }
            }
        }