예제 #1
0
        public User ReadPlayer(string username)
        {
            try
            {
                using NpgsqlConnection conn = OpenConnection();
                using var cmd = new NpgsqlCommand("select \"Id\", \"Password\", \"Coins\", \"Elo\", \"WonGames\", \"Image\", \"Bio\" from \"user\" where \"Name\"=@username", conn);
                cmd.Parameters.AddWithValue("@username", username);
                cmd.Prepare();

                NpgsqlDataReader reader = cmd.ExecuteReader();

                if (!reader.Read())
                {
                    return(null);
                }

                Guid        guid = reader.GetFieldValue <Guid>(0);
                byte[]      pw = reader.GetFieldValue <byte[]>(1);
                int         coins = reader.GetInt32(2);
                int         elo = reader.GetInt32(3);
                int         won = reader.GetInt32(4);
                string      image = reader.GetString(5);
                string      bio = reader.GetString(6);
                List <Card> deck, stack;
                deck  = ReadDeck(guid);
                stack = ReadStack(guid);

                return(new User(guid, username, pw, coins, elo, won, image, bio, deck, stack));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(null);
            }
        }
예제 #2
0
        public async Task <List <Player> > GetPlayers(string gameName)
        {
            var players = new List <Player>();

            using var connection = new NpgsqlConnection(_connectionString);
            connection.Open();
            using (var cmd = new NpgsqlCommand(@"SELECT player_name, avatar, correct_answers, wrong_answers, is_ready 
                                                FROM games g
                                                JOIN players p ON p.game_id = g.id 
                                                WHERE game_name = @gameName;", connection))
            {
                cmd.Parameters.AddWithValue("gameName", gameName);
                using (NpgsqlDataReader dr = await cmd.ExecuteReaderAsync())
                {
                    while (dr.Read())
                    {
                        var player = new Player();
                        player.Username       = dr.GetFieldValue <string>("player_name");
                        player.Avatar         = dr.GetFieldValue <string>("avatar");
                        player.CorrectAnswers = dr.GetFieldValue <int>("correct_answers");
                        player.WrongAnswers   = dr.GetFieldValue <int>("wrong_answers");
                        player.IsReady        = dr.GetFieldValue <bool>("is_ready");
                        players.Add(player);
                    }
                }
            }
            return(players);
        }
예제 #3
0
        public Card ReadCard(Guid id)
        {
            try
            {
                using NpgsqlConnection conn = OpenConnection();
                using var cmd = new NpgsqlCommand("select \"Name\", \"Damage\", \"isLocked\", \"Element\", \"Cardtype\" from \"Card\" where \"id\"=@id", conn);
                cmd.Parameters.AddWithValue("@id", id);
                cmd.Prepare();

                NpgsqlDataReader reader = cmd.ExecuteReader();

                if (!reader.Read())
                {
                    return(null);
                }
                string   name     = reader.GetString(0);
                int      damage   = reader.GetInt32(1);
                bool     isLocked = reader.GetBoolean(2);
                Element  element  = reader.GetFieldValue <Element>(3);
                Cardtype type     = reader.GetFieldValue <Cardtype>(4);


                return(new Card(id, element, name, damage, isLocked));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(null);
            }
        }
예제 #4
0
        public async Task <bool> GameEnded(string gameName)
        {
            bool isEnded = false;

            using var connection = new NpgsqlConnection(_connectionString);
            connection.Open();
            using (var cmd = new NpgsqlCommand(@"SELECT  g.question_id, s.number_of_questions
                                                FROM games AS g
                                                JOIN settings AS s ON s.game_id = g.id
                                                WHERE game_name = @gameName;", connection))
            {
                cmd.Parameters.AddWithValue("gameName", gameName);
                await cmd.ExecuteNonQueryAsync();

                using (NpgsqlDataReader dr = await cmd.ExecuteReaderAsync())
                {
                    while (dr.Read())
                    {
                        var questionNumber         = dr.GetFieldValue <int>("question_id");
                        var totalNumberOfQuestions = dr.GetFieldValue <int>("number_of_questions");
                        isEnded = questionNumber > totalNumberOfQuestions;
                    }
                }
            }
            return(isEnded);
        }
예제 #5
0
        public async Task <List <Answer> > GetAllAnswers(string gameName, int questionId)
        {
            var answers = new List <Answer>();

            try
            {
                using var connection = new NpgsqlConnection(_connectionString);
                connection.Open();
                using (var cmd = new NpgsqlCommand(@"SELECT answers.body, answers.is_correct
                                                     FROM answers
                                                     JOIN questions AS q ON q.id = answers.question_id
                                                     JOIN games AS g ON g.id = q.game_id
                                                     WHERE game_name = @gameName AND answers.question_id = @questionId;", connection))
                {
                    cmd.Parameters.AddWithValue("gameName", gameName);
                    cmd.Parameters.AddWithValue("questionId", questionId);
                    using (NpgsqlDataReader dr = await cmd.ExecuteReaderAsync())
                    {
                        while (dr.Read())
                        {
                            var answer = new Answer();
                            answer.Body      = dr.GetFieldValue <string>("body");
                            answer.isCorrect = dr.GetFieldValue <bool>("is_correct");
                            answers.Add(answer);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            return(answers);
        }
예제 #6
0
        public override ActivePlayer ExtractEntity(NpgsqlDataReader reader)
        {
            long   id_player = reader.GetFieldValue <long>(0);
            long   id_match  = reader.GetFieldValue <long>(1);
            long   points    = reader.GetFieldValue <long>(2);
            string type      = reader.GetFieldValue <string>(3);

            model.Type typePlayer;
            if (type.Equals("Reserve"))
            {
                typePlayer = model.Type.Reserve;
            }
            else
            {
                typePlayer = model.Type.Participant;
            }

            ActivePlayer activePlayer = new ActivePlayer()
            {
                ID         = new Tuple <long, long>(id_player, id_match),
                Points     = points,
                TypePlayer = typePlayer
            };

            return(activePlayer);
        }
예제 #7
0
        NpgsqlDbColumn LoadColumnDefinition(NpgsqlDataReader reader, TypeHandlerRegistry registry)
        {
            var columnName = reader.GetString(reader.GetOrdinal("attname"));
            var column     = new NpgsqlDbColumn
            {
                AllowDBNull           = !reader.GetBoolean(reader.GetOrdinal("attnotnull")),
                BaseCatalogName       = _connection.Database,
                BaseColumnName        = columnName,
                BaseSchemaName        = reader.GetString(reader.GetOrdinal("nspname")),
                BaseServerName        = _connection.Host,
                BaseTableName         = reader.GetString(reader.GetOrdinal("relname")),
                ColumnName            = columnName,
                ColumnOrdinal         = reader.GetInt32(reader.GetOrdinal("attnum")) - 1,
                ColumnAttributeNumber = (short)(reader.GetInt16(reader.GetOrdinal("attnum")) - 1),
                IsKey        = reader.GetBoolean(reader.GetOrdinal("isprimarykey")),
                IsReadOnly   = !reader.GetBoolean(reader.GetOrdinal("is_updatable")),
                IsUnique     = reader.GetBoolean(reader.GetOrdinal("isunique")),
                DataTypeName = reader.GetString(reader.GetOrdinal("typname")),

                TableOID = reader.GetFieldValue <uint>(reader.GetOrdinal("attrelid")),
                TypeOID  = reader.GetFieldValue <uint>(reader.GetOrdinal("typoid"))
            };

            column.PostgresType = registry.PostgresTypes.ByOID[column.TypeOID];

            var defaultValueOrdinal = reader.GetOrdinal("default");

            column.DefaultValue = reader.IsDBNull(defaultValueOrdinal) ? null : reader.GetString(defaultValueOrdinal);

            column.IsAutoIncrement = column.DefaultValue != null && column.DefaultValue.StartsWith("nextval(");

            ColumnPostConfig(column, reader.GetInt32(reader.GetOrdinal("typmod")));

            return(column);
        }
예제 #8
0
        public List <User> ReadScoreboard()
        {
            try
            {
                using NpgsqlConnection conn = OpenConnection();
                using var cmd = new NpgsqlCommand("select \"Id\", \"Password\", \"Coins\", \"Elo\", \"WonGames\", \"Image\", \"Bio\", \"Name\" from \"user\" order by \"Elo\", \"WonGames\"", conn);
                cmd.Prepare();

                NpgsqlDataReader reader = cmd.ExecuteReader();

                if (!reader.Read())
                {
                    return(null);
                }
                List <User> sortedList = new List <User>();
                do
                {
                    Guid   guid     = reader.GetFieldValue <Guid>(0);
                    byte[] pw       = reader.GetFieldValue <byte[]>(1);
                    int    coins    = reader.GetInt32(2);
                    int    elo      = reader.GetInt32(3);
                    int    won      = reader.GetInt32(4);
                    string image    = reader.GetString(5);
                    string bio      = reader.GetString(6);
                    string username = reader.GetString(7);
                    sortedList.Add(new User(guid, username, pw, coins, elo, won, image, bio, null, null));
                } while (reader.Read());
                return(sortedList);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(null);
            }
        }
        NpgsqlDbColumn LoadColumnDefinition(NpgsqlDataReader reader, DatabaseInfo databaseInfo)
        {
            // Note: we don't set ColumnName and BaseColumnName. These should always contain the
            // column alias rather than the table column name (i.e. in case of "SELECT foo AS foo_alias").
            // It will be set later.
            var column = new NpgsqlDbColumn
            {
                AllowDBNull = !reader.GetBoolean(reader.GetOrdinal("attnotnull")),
                BaseCatalogName = _connection.Database,
                BaseSchemaName = reader.GetString(reader.GetOrdinal("nspname")),
                BaseServerName = _connection.Host,
                BaseTableName = reader.GetString(reader.GetOrdinal("relname")),
                ColumnOrdinal = reader.GetInt32(reader.GetOrdinal("attnum")) - 1,
                ColumnAttributeNumber = (short)(reader.GetInt16(reader.GetOrdinal("attnum")) - 1),
                IsKey = reader.GetBoolean(reader.GetOrdinal("isprimarykey")),
                IsReadOnly = !reader.GetBoolean(reader.GetOrdinal("is_updatable")),
                IsUnique = reader.GetBoolean(reader.GetOrdinal("isunique")),
                DataTypeName = reader.GetString(reader.GetOrdinal("typname")),

                TableOID = reader.GetFieldValue<uint>(reader.GetOrdinal("attrelid")),
                TypeOID = reader.GetFieldValue<uint>(reader.GetOrdinal("typoid"))
            };

            column.PostgresType = databaseInfo.ByOID[column.TypeOID];

            var defaultValueOrdinal = reader.GetOrdinal("default");
            column.DefaultValue = reader.IsDBNull(defaultValueOrdinal) ? null : reader.GetString(defaultValueOrdinal);

            column.IsAutoIncrement = column.DefaultValue != null && column.DefaultValue.StartsWith("nextval(");

            ColumnPostConfig(column, reader.GetInt32(reader.GetOrdinal("typmod")));

            return column;
        }
예제 #10
0
        public IActionResult GetBik()
        {
            List <Krava> krave = new List <Krava>();

            broker.OtvoriKonekciju();

            // for composite type and enum type
            broker.connection.TypeMapper.MapEnum <Pol>("POL");
            broker.connection.TypeMapper.MapComposite <Rasa>("RASA");

            var command             = new NpgsqlCommand(@"SELECT * FROM ""krava_m"";", broker.connection);
            NpgsqlDataReader reader = command.ExecuteReader();
            Krava            k      = new Krava();

            while (reader.Read())
            {
                k                  = new Krava();
                k.IdZivotinje      = reader[0].ToString();
                k.Ime              = reader[1].ToString();
                k.DatumRodjenja    = Convert.ToDateTime(reader[2].ToString());
                k.IdZivotinjeMajke = reader[3].ToString();
                k.Pol              = reader.GetFieldValue <Pol>(4);
                k.Rasa             = reader.GetFieldValue <Rasa>(5);
                if (reader[6] != DBNull.Value)
                {
                    k.TrenutnaKolicinaMleka = Convert.ToInt32(reader[6]);
                }
                krave.Add(k);
            }
            broker.ZatvoriKonekciju();

            return(Ok(krave));
        }
예제 #11
0
        public Session GetBySessionId(string sessionGUID)
        {
            var session = new Session();

            try
            {
                using var connection = new NpgsqlConnection(_connectionString);
                connection.Open();
                using (var cmd = new NpgsqlCommand(@"SELECT * FROM sessions WHERE session_guid = @sessionGUID", connection))
                {
                    cmd.Parameters.AddWithValue("sessionGUID", sessionGUID);
                    using (NpgsqlDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            session.SessionId      = dr.GetFieldValue <int>("id");
                            session.SessionGUID    = dr.GetFieldValue <string>("session_guid");
                            session.SessionTimeout = dr.GetFieldValue <int>("session_timeout");
                            session.ExpirationDate = dr.GetFieldValue <DateTime>("expirate_date");
                        }
                    }
                }
                return(session);
            }
            catch (Exception ex)
            {
                throw;
                //log exception
            }
        }
예제 #12
0
        private Krava vratiKravu(int id)
        {
            broker.OtvoriKonekciju();

            broker.connection.TypeMapper.MapEnum <Pol>("POL");
            broker.connection.TypeMapper.MapComposite <Rasa>("RASA");
            var command             = new NpgsqlCommand(@"SELECT * FROM ""Krava"" WHERE ""idZivotinje"" = '" + id + "';", broker.connection);
            NpgsqlDataReader reader = command.ExecuteReader();
            Krava            krava  = new Krava();

            while (reader.Read())
            {
                krava.IdZivotinje      = reader[0].ToString();
                krava.Ime              = reader[1].ToString();
                krava.DatumRodjenja    = Convert.ToDateTime(reader[2].ToString());
                krava.IdZivotinjeMajke = reader[3].ToString();
                krava.Pol              = reader.GetFieldValue <Pol>(4);
                krava.Rasa             = reader.GetFieldValue <Rasa>(5);
                if (reader[6] != DBNull.Value)
                {
                    krava.TrenutnaKolicinaMleka = Convert.ToInt32(reader[6]);
                }
            }
            broker.ZatvoriKonekciju();

            return(krava);
        }
예제 #13
0
        public async Task <Game> GetGame(string gameName)
        {
            var game = new Game();

            game.GameSettings = new Settings();
            game.GameName     = gameName;

            using var connection = new NpgsqlConnection(_connectionString);
            connection.Open();
            using (var cmd = new NpgsqlCommand(@"SELECT category, number_of_questions, time_per_question 
                                                FROM games g
                                                JOIN settings s ON s.game_id = g.id 
                                                WHERE game_name = @gameName;", connection))
            {
                cmd.Parameters.AddWithValue("gameName", gameName);
                using (NpgsqlDataReader dr = await cmd.ExecuteReaderAsync())
                {
                    while (dr.Read())
                    {
                        game.GameCategory = dr.GetFieldValue <string>("category");
                        game.GameSettings.TotalNumberOfQuestions = dr.GetFieldValue <int>("number_of_questions");
                        game.GameSettings.TimePerQuestion        = dr.GetFieldValue <int>("time_per_question");
                    }
                }
            }
            return(game);
        }
예제 #14
0
        public IEnumerable <Session> GetAll()
        {
            var sessions = new List <Session>();

            try
            {
                using var connection = new NpgsqlConnection(_connectionString);
                connection.Open();
                using (var cmd = new NpgsqlCommand(@"SELECT * FROM sessions", connection))
                {
                    using (NpgsqlDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            var session = new Session();
                            session.SessionId      = dr.GetFieldValue <int>("id");
                            session.SessionGUID    = dr.GetFieldValue <string>("session_guid");
                            session.SessionTimeout = dr.GetFieldValue <int>("session_timeout");
                            session.ExpirationDate = dr.GetFieldValue <DateTime>("expirate_date");
                            sessions.Add(session);
                        }
                    }
                }
                return(sessions);
            }
            catch (Exception ex)
            {
                throw;
                //log exception
            }
        }
예제 #15
0
        public static List <TravellerObject> SelectTravellers(int limit, int offset)
        {
            List <TravellerObject> returnObj = new List <TravellerObject>();

            NpgsqlConnection conn = null;
            NpgsqlDataReader dr   = null;

            try
            {
                conn = OpenConnectionAndGetReader("SELECT * from traveller order by lower(email) limit :p0 offset :p1;", out dr, limit, offset);
                while (dr.Read())
                {
                    string email          = dr.GetFieldValue <string>(dr.GetOrdinal("email"));
                    string hashedPassword = dr.GetFieldValue <string>(dr.GetOrdinal("password"));
                    string name           = dr.GetFieldValue <string>(dr.GetOrdinal("name"));
                    string address        = dr.GetFieldValue <string>(dr.GetOrdinal("address"));
                    string phone          = dr.GetFieldValue <string>(dr.GetOrdinal("phone"));

                    returnObj.Add(new TravellerObject(email, hashedPassword, name, address, phone));
                }
            }
            finally
            {
                conn.Close();
            }
            return(returnObj);
        }
예제 #16
0
        public static List <StationObject> SelectStations(int limit, int offset)
        {
            List <StationObject> returnObj = new List <StationObject>();

            NpgsqlConnection conn = null;
            NpgsqlDataReader dr   = null;

            try
            {
                conn = OpenConnectionAndGetReader("SELECT * from station order by lower(street_address), lower(city), lower(country) limit :p0 offset :p1;", out dr, limit, offset);
                while (dr.Read())
                {
                    string street_address = dr.GetFieldValue <string>(dr.GetOrdinal("street_address"));
                    string city           = dr.GetFieldValue <string>(dr.GetOrdinal("city"));
                    string country        = dr.GetFieldValue <string>(dr.GetOrdinal("country"));

                    returnObj.Add(new StationObject(street_address, city, country));
                }
            }
            finally
            {
                conn.Close();
            }
            return(returnObj);
        }
예제 #17
0
        public static List <BookingObject> SelectBookings(int limit, int offset)
        {
            List <BookingObject> returnObj = new List <BookingObject>();

            NpgsqlConnection conn = null;
            NpgsqlDataReader dr   = null;

            try
            {
                conn = OpenConnectionAndGetReader("SELECT * from booking order by busride_id, lower(traveller) limit :p0 offset :p1;", out dr, limit, offset);
                while (dr.Read())
                {
                    int    busride_id = dr.GetFieldValue <int>(dr.GetOrdinal("busride_id"));
                    string traveller  = dr.GetFieldValue <string>(dr.GetOrdinal("traveller"));
                    int    seats      = dr.GetFieldValue <int>(dr.GetOrdinal("seats"));

                    returnObj.Add(new BookingObject(busride_id, traveller, seats));
                }
            }
            finally
            {
                conn.Close();
            }
            return(returnObj);
        }
예제 #18
0
        public static TravellerObject VerifyTraveller(string username, string hashedPassword)
        {
            ErrorMessage = "Wrong username or password.";
            TravellerObject returnObj = null;

            NpgsqlConnection conn = null;
            NpgsqlDataReader dr   = null;

            try
            {
                conn = OpenConnectionAndGetReader("SELECT * from traveller WHERE email = :p0 AND password = :p1;", out dr, username, hashedPassword);
                if (dr.Read())
                {
                    string email           = dr.GetFieldValue <string>(dr.GetOrdinal("email"));
                    string _hashedPassword = dr.GetFieldValue <string>(dr.GetOrdinal("password"));
                    string name            = dr.GetFieldValue <string>(dr.GetOrdinal("name"));
                    string address         = dr.GetFieldValue <string>(dr.GetOrdinal("address"));
                    string phone           = dr.GetFieldValue <string>(dr.GetOrdinal("phone"));

                    returnObj    = new TravellerObject(email, _hashedPassword, name, address, phone);
                    ErrorMessage = "";
                }
            }
            finally
            {
                conn.Close();
            }
            return(returnObj);
        }
        public override Team ExtractEntity(NpgsqlDataReader reader)
        {
            long   ID   = reader.GetFieldValue <long>(0);
            string name = reader.GetFieldValue <string>(1);
            Team   team = new Team();

            team.ID   = ID;
            team.Name = name;
            return(team);
        }
        private static Place MapCurrentRowToPlace(NpgsqlDataReader reader)
        {
            var result = new Place
            {
                Id      = reader.GetFieldValue <Guid>(reader.GetOrdinal("id")),
                Names   = reader.GetFieldValue <List <PlaceName> >(reader.GetOrdinal("names")),
                TelCode = reader.GetFieldValue <string>(reader.GetOrdinal("tel_code"))
            };

            return(result);
        }
        public override Player ExtractEntity(NpgsqlDataReader reader)
        {
            long   id      = reader.GetFieldValue <long>(0);
            string name    = reader.GetFieldValue <string>(1);
            string school  = reader.GetFieldValue <string>(2);
            long   id_team = reader.GetFieldValue <long>(3);
            Player player  = new Player(name, school, id_team)
            {
                ID = id,
            };

            return(player);
        }
예제 #22
0
파일: DbContext.cs 프로젝트: geffzhang/core
 public bool Get(string name, ref short[] v)
 {
     try
     {
         int ord = reader.GetOrdinal(name);
         if (!reader.IsDBNull(ord))
         {
             v = reader.GetFieldValue <short[]>(ord);
             return(true);
         }
     }
     catch
     {
     }
     return(false);
 }
        public Habit GetHabitById(Guid user_id, Guid habit_id)
        {
            Habit  habit;
            string query = "select id, name, days_off, current_streak, longest_streak, user_id, created_at from \"Habit\" where id = @id and user_id = @user_id";

            using (var cmd = new NpgsqlCommand(query, _connection, _transaction))
            {
                cmd.Parameters.AddWithValue("id", habit_id);
                cmd.Parameters.AddWithValue("user_id", user_id);
                NpgsqlDataReader reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    Guid            id             = reader.GetGuid(0);
                    string          name           = reader.GetString(1);
                    string[]        days           = reader.GetFieldValue <string[]>(2);
                    int             current_streak = reader.GetInt32(3);
                    int             longest_streak = reader.GetInt32(4);
                    List <DateTime> logs           = GetLog(habit_id);
                    int             log_count      = GetLogCount(habit_id);
                    Guid            userid         = reader.GetGuid(5);
                    DateTime        created_at     = reader.GetDateTime(6);
                    habit = (new Habit(id, name, new DaysOff(days), new Streak(current_streak, longest_streak, 0, DateTime.Now, DateTime.Now), log_count, logs, userid, created_at));
                }
                else
                {
                    return(null);
                }
                reader.Close();
            }
            return(habit);
        }
예제 #24
0
        public List <Card> ReadStack(Guid id)
        {
            try
            {
                using NpgsqlConnection conn = OpenConnection();
                using var cmd = new NpgsqlCommand("select \"Card\" from \"Stack\" where \"Player\"=@id", conn);
                cmd.Parameters.AddWithValue("@id", id);
                cmd.Prepare();

                NpgsqlDataReader reader = cmd.ExecuteReader();

                if (!reader.Read())
                {
                    return(null);
                }
                Guid[] cards = reader.GetFieldValue <Guid[]>(0);

                List <Card> res = new List <Card>();
                foreach (var item in cards)
                {
                    Card tmp;
                    if ((tmp = ReadCard(item)) != null)
                    {
                        res.Add(tmp);
                    }
                }
                return(res);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(null);
            }
        }
예제 #25
0
 public static void ToDownloadDefinition(NpgsqlDataReader reader, DataPumpDownloadDefinition data)
 {
     data.Type          = (StockType)reader.GetFieldValue <int>(reader.GetOrdinal("typ"));
     data.PathDaily     = GetStringOrEmpty(reader, "path_dzienne");
     data.FileNameDaily = GetStringOrEmpty(reader, "file_dzienne");
     data.PathIntra     = GetStringOrEmpty(reader, "path_intra");
 }
예제 #26
0
        public override Match ExtractEntity(NpgsqlDataReader reader)
        {
            long     id          = reader.GetFieldValue <long>(0);
            long     first_team  = reader.GetFieldValue <long>(1);
            long     second_team = reader.GetFieldValue <long>(2);
            DateTime date        = reader.GetFieldValue <DateTime>(3);
            Match    match       = new Match()
            {
                ID         = id,
                FirstTeam  = first_team,
                SecondTeam = second_team,
                Date       = date
            };

            return(match);
        }
예제 #27
0
        public User GetByUsername(string username)
        {
            var user = new User();

            try
            {
                using var connection = new NpgsqlConnection(_connectionString);
                connection.Open();
                using (var cmd = new NpgsqlCommand(@"SELECT * FROM users WHERE username = @username", connection))
                {
                    cmd.Parameters.AddWithValue("username", username);
                    using (NpgsqlDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            user.Id       = dr.GetFieldValue <int>("id");
                            user.Username = dr.GetFieldValue <string>("username");
                            user.Email    = dr.GetFieldValue <string>("email");
                            user.Name     = dr.GetFieldValue <string>("name");
                            user.Surname  = dr.GetFieldValue <string>("surname");
                            user.Password = dr.GetFieldValue <string>("password");
                            user.Salt     = Convert.FromBase64String(dr.GetFieldValue <string>("salt"));
                        }
                    }
                }
                return(user);
            }
            catch (Exception ex)
            {
                throw;
                //log exception
            }
        }
예제 #28
0
        public IEnumerable <User> GetAll()
        {
            var users = new List <User>();

            try
            {
                using var connection = new NpgsqlConnection(_connectionString);
                connection.Open();
                using (var cmd = new NpgsqlCommand(@"SELECT * FROM users", connection))
                {
                    using (NpgsqlDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            var user = new User();
                            user.Id       = dr.GetFieldValue <int>("id");
                            user.Username = dr.GetFieldValue <string>("username");
                            user.Email    = dr.GetFieldValue <string>("email");
                            user.Name     = dr.GetFieldValue <string>("name");
                            user.Surname  = dr.GetFieldValue <string>("surname");
                            user.Password = dr.GetFieldValue <string>("password");
                            user.Salt     = Convert.FromBase64String(dr.GetFieldValue <string>("salt"));
                            users.Add(user);
                        }
                    }
                }
                return(users);
            }
            catch (Exception ex)
            {
                throw;
                //log exception
            }
        }
예제 #29
0
        private void FormKlient_Load(object sender, EventArgs e)
        {
            NpgsqlDataReader read = dbHelp.PROCEDURE("sprawdzstanmagazynu");

            while (read.Read())
            {
                Produkt pr = new Produkt(read.GetFieldValue <string>(0), read.GetFieldValue <string>(1), read.GetFieldValue <int>(2), read.GetFieldValue <string>(3));
                listaProduktów.Add(pr);
                listBox1.Items.Add(pr.GetNazwa() + " " + pr.GetKategoria());
            }
            dbHelp.GetConn().Close();

            read = dbHelp.SELECT("nazwa", "producenci");
            while (read.Read())
            {
                comboBox1.Items.Add(read.GetFieldValue <string>(0));
            }
            dbHelp.GetConn().Close();
        }
예제 #30
0
        public List <Trade> ReadTrades()
        {
            try
            {
                using NpgsqlConnection conn = OpenConnection();
                using var cmd = new NpgsqlCommand("SELECT \"Id\", card, cardtype, element, \"minDamage\", player FROM \"Trade\"", conn);
                cmd.Prepare();

                NpgsqlDataReader reader = cmd.ExecuteReader();

                if (!reader.Read())
                {
                    return(null);
                }
                List <Trade> trades = new List <Trade>();
                do
                {
                    Guid     guid      = reader.GetFieldValue <Guid>(0);
                    Guid     carduuid  = reader.GetFieldValue <Guid>(1);
                    Cardtype type      = reader.GetFieldValue <Cardtype>(2);
                    Element  element   = reader.GetFieldValue <Element>(3);
                    int      minDamage = reader.GetInt32(4);
                    Guid     userid    = reader.GetGuid(5);
                    User     user      = ReadPlayer(userid);
                    Card     card      = ReadCard(carduuid);
                    if (element == default)
                    {
                        trades.Add(new Trade(user, guid, card, type, minDamage));
                    }
                    else
                    {
                        trades.Add(new Trade(user, guid, card, type, element));
                    }
                } while (reader.Read());
                return(trades);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(null);
            }
        }
        NpgsqlDbColumn LoadColumnDefinition(NpgsqlDataReader reader)
        {
            var columnName = reader.GetString(reader.GetOrdinal("attname"));
            var column = new NpgsqlDbColumn
            {
                AllowDBNull = !reader.GetBoolean(reader.GetOrdinal("attnotnull")),
                BaseCatalogName = _connection.Database,
                BaseColumnName = columnName,
                BaseSchemaName = reader.GetString(reader.GetOrdinal("nspname")),
                BaseServerName = _connection.Host,
                BaseTableName = reader.GetString(reader.GetOrdinal("relname")),
                ColumnName = columnName,
                ColumnOrdinal = reader.GetInt32(reader.GetOrdinal("attnum")) - 1,
                ColumnAttributeNumber = (short)(reader.GetInt16(reader.GetOrdinal("attnum")) - 1),
                IsKey = reader.GetBoolean(reader.GetOrdinal("isprimarykey")),
                IsReadOnly = !reader.GetBoolean(reader.GetOrdinal("is_updatable")),
                IsUnique = reader.GetBoolean(reader.GetOrdinal("isunique")),
                DataTypeName = reader.GetString(reader.GetOrdinal("typname")),

                TableOID = reader.GetFieldValue<uint>(reader.GetOrdinal("attrelid")),
                TypeOID = reader.GetFieldValue<uint>(reader.GetOrdinal("typoid"))
            };

            var defaultValueOrdinal = reader.GetOrdinal("default");
            column.DefaultValue = reader.IsDBNull(defaultValueOrdinal) ? null : reader.GetString(defaultValueOrdinal);

            column.IsAutoIncrement = column.DefaultValue != null && column.DefaultValue.StartsWith("nextval(");

            ColumnPostConfig(column, reader.GetInt32(reader.GetOrdinal("atttypmod")));

            return column;
        }