public List <Habit> FindByUserID(Guid user_id)
        {
            string       query  = "SELECT id FROM habit WHERE user_id = @user_id AND deleted_at is null";
            List <Habit> habits = new List <Habit>();
            List <Guid>  ids    = new List <Guid>();

            using (var cmd = new NpgsqlCommand(query, _connection, _transaction))
            {
                cmd.Parameters.AddWithValue("user_id", user_id);
                NpgsqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    ids.Add(reader.GetGuid(0));
                }

                reader.DisposeAsync();
            }

            foreach (Guid id in ids)
            {
                habits.Add(FindHabitByID(id, user_id));
            }

            return(habits);
        }
예제 #2
0
        private static List <string> GetData(string SQLCommand, string TableName)
        {
            List <string> DataItems    = new List <string>();
            int           ColumnNumber = GetColumnNumber(TableName);
            string        AddString    = "";

            try
            {
                var Command = new NpgsqlCommand(SQLCommand, Connection);
                NpgsqlDataReader DataReader = Command.ExecuteReader();

                while (DataReader.Read())
                {
                    for (int i = 0; i < ColumnNumber; i++)
                    {
                        AddString += DataReader[i].ToString();
                        AddString += ",";
                    }
                    AddString += ";";
                    DataItems.Add(AddString);
                    AddString = "";
                }
                DataReader.DisposeAsync();
                return(DataItems);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(null);
            }
        }
        public User JsonResult(string usr)
        {
            User user = new User()
            {
                Name     = usr,
                Password = (string)null,
                Vlan     = new int?()
            };
            NpgsqlConnection connection = new NpgsqlConnection(getDbConnection());

            connection.Open();
            NpgsqlCommand npgsqlCommand = new NpgsqlCommand("SELECT value from radcheck where attribute='Cleartext-Password' and username like @sr  ", connection);

            npgsqlCommand.Parameters.AddWithValue("@sr", (object)usr);
            NpgsqlDataReader npgsqlDataReader1 = npgsqlCommand.ExecuteReader();

            while (npgsqlDataReader1.Read())
            {
                user.Password = npgsqlDataReader1.GetString(0);
            }
            npgsqlDataReader1.Close();
            string str1 = "select groupname from radusergroup where username like @dr and priority=0 ";

            npgsqlCommand.CommandText = str1;
            npgsqlCommand.Parameters.AddWithValue("dr", (object)usr);
            NpgsqlDataReader npgsqlDataReader2 = npgsqlCommand.ExecuteReader();

            while (npgsqlDataReader2.Read())
            {
                string str2 = npgsqlDataReader2.GetString(0);
                if (str2.Remove(0, 4).Length > 0)
                {
                    user.Vlan = new int?(int.Parse(str2.Remove(0, 4)));
                }
                else
                {
                    user.Vlan = null;
                }
            }
            npgsqlDataReader2.Close();
            npgsqlDataReader2.DisposeAsync();
            npgsqlCommand.Dispose();
            connection.Close();
            connection.Dispose();
            return(user);
        }
예제 #4
0
        //järjestään ehdokkaat äänimäärän mukaiseen järjestykseen
        public void Jarjesta()
        {
            NpgsqlConnection conn =
                new NpgsqlConnection(
                    "Server=127.0.0.1;User Id=postgres;" +
                    "Password=salasana;Database=vaalit;");

            conn.Open();

            //käydään ehdokkaat läpi puolueittain ja laitetaan järjestykseen
            for (int i = 0; i < puolueet.Length; i++)
            {
                //sql-lause, jossa ehdokkaat järjestetään äänten mukaan puolueittain
                String lause = "select henk_id, aanet from ehdokas where puolue = '" + puolueet[i] + "' order by aanet desc";
                //alustetaan komento
                NpgsqlCommand cmd = new NpgsqlCommand(lause, conn);
                //suoritetaan lause
                NpgsqlDataReader dr = cmd.ExecuteReader();
                int kaikki          = aanimaara[i];
                int nro             = 0;
                Console.WriteLine("\n Järjestysluvut, " + puolueet[i] + ", äänet yhteensä " + kaikki + "\n");
                //luetaan tietokannat rivit
                while (dr.Read())
                {
                    //ehdokkaan id-numero
                    var henkilo = dr[0];
                    var aanet   = dr[1];
                    //järjestysnumero
                    nro++;
                    //vertailuluku
                    int vertluku = kaikki / nro;
                    Console.WriteLine("Nro " + nro + " Id " + henkilo + " Äänet " + aanet + " Vertluku " + vertluku);
                    //sql-lause, jolla tallennetaan järjestysnumero ja vertailuluku tietokantaan
                    string updlause = "update puolueessa set j_nro = " + nro + ", vertluku = " + vertluku + " WHERE e_id = " + henkilo;
                    //tallennetaan update-lauseet listaan
                    updlauseet.Add(updlause);
                }

                dr.DisposeAsync();

                cmd.Dispose();
            }
            conn.Close();
        }
예제 #5
0
        public void TulostaValitut()
        {
            NpgsqlConnection conn =
                new NpgsqlConnection(
                    "Server=127.0.0.1;User Id=postgres;" +
                    "Password=salasana;Database=vaalit;");

            conn.Open();
            //sql-lause, jolla haetaan ehdokkaat tietokannasta vertailuluvun mukaisessa järjestyksessä
            String lause = "Select enimi, snimi, henk_id, vertluku, lyh from ehdokas join puolueessa " +
                           "on ehdokas.henk_id = puolueessa.e_id order by vertluku desc";
            //alustetaan komento
            NpgsqlCommand cmd = new NpgsqlCommand(lause, conn);
            //suoritetaan lause
            NpgsqlDataReader dr = cmd.ExecuteReader();
            //luetaan data
            //dr.Read();
            int i = 1;

            while (dr.Read() && i <= 51)   //haetaan 51 ehdokasta
            {
                var enimi    = dr[0];
                var snimi    = dr[1];
                var henk_id  = dr[2];
                var vertluku = dr[3];
                var lyh      = dr[4];

                //Console.WriteLine( henk_id + " " + enimi + " " + snimi +  " " + vertluku +" " + lyh + " ");
                ehdokas2 = i + " " + henk_id + " " + enimi + " " + snimi + "  " + vertluku + "  " + lyh + " ";
                //tallennetaan ehdokkaat listaan
                ehdokkaat2.Add(ehdokas2);

                i++;
            }
            dr.DisposeAsync();
            cmd.Dispose();
            conn.Close();
            Console.WriteLine("\n Seinäjoen kaupungin valtuustoon valitut henkilöt");
            //tulostetaan ehdokkaat
            foreach (var item in ehdokkaat2)
            {
                Console.WriteLine(item);
            }
        }
예제 #6
0
        public void TulostaPuolueittain()
        {
            NpgsqlConnection conn =
                new NpgsqlConnection(
                    "Server=127.0.0.1;User Id=postgres;" +
                    "Password=salasana;Database=vaalit;");

            conn.Open();
            //sql-lause, jolla haetaan tietokannasta valitut ehdokkaat puolueittain, kun tiedetään pienin vrtluku
            String lause = "Select enimi, snimi, henk_id, vertluku, lyh from ehdokas join puolueessa " +
                           "on ehdokas.henk_id = puolueessa.e_id where vertluku >= 465 order by lyh, vertluku desc ";
            //alustetaan komento
            NpgsqlCommand cmd = new NpgsqlCommand(lause, conn);
            //suoritetaan lause
            NpgsqlDataReader dr = cmd.ExecuteReader();

            int i = 1;

            while (dr.Read())
            {
                var enimi    = dr[0];
                var snimi    = dr[1];
                var henk_id  = dr[2];
                var vertluku = dr[3];
                var lyh      = dr[4];

                //Console.WriteLine( henk_id + " " + enimi + " " + snimi +  " " + vertluku +" " + lyh + " ");
                ehdokas = i + " " + henk_id + " " + enimi + " " + snimi + "  " + vertluku + "  " + lyh + " ";
                ehdokkaat.Add(ehdokas);

                i++;
            }
            dr.DisposeAsync();
            cmd.Dispose();
            conn.Close();
            Console.WriteLine("\n Seinäjoen kaupungin valtuustoon valitut henkilöt puolueittain");
            //tulostetaan
            foreach (var item in ehdokkaat)
            {
                Console.WriteLine(item);
            }
        }
        public Habit FindHabitByID(Guid habit_id, Guid user_id)
        {
            string   query     = "SELECT name, created_at FROM habit WHERE user_id = @user_id AND id = @id AND deleted_at is null";
            string   name      = "";
            DateTime timestamp = DateTime.Now;

            using (var cmd = new NpgsqlCommand(query, _connection, _transaction))
            {
                cmd.Parameters.AddWithValue("user_id", user_id);
                cmd.Parameters.AddWithValue("id", habit_id);

                NpgsqlDataReader reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    name      = reader.GetString(0);
                    timestamp = reader.GetDateTime(1);
                }
                reader.Close();
            }
            if (name == "")
            {
                throw new Exception("Habit doesnt exist");
            }
            List <Days> offDays = new List <Days>();

            query = "SELECT off_days FROM days_off WHERE habit_id = @habit_id AND deleted_at is null";
            using (var cmd = new NpgsqlCommand(query, _connection, _transaction))
            {
                cmd.Parameters.AddWithValue("habit_id", habit_id);

                NpgsqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    offDays.Add(new Days(reader.GetString(0)));
                }
                reader.DisposeAsync();
            }
            HabitLog log = FindByID(habit_id, user_id);

            return(new Habit(habit_id, name, offDays.ToArray(), user_id, timestamp, log));
        }
예제 #8
0
        //haetaan puolueiden äänet tietokannasta ja tallennetaan kokonaisäänimäärät
        public List <int> PuolueAanet()
        {
            NpgsqlConnection conn =
                new NpgsqlConnection(
                    "Server=127.0.0.1;User Id=postgres;" +
                    "Password=salasana;Database=vaalit;");

            conn.Open();
            Console.WriteLine("\n Tallennetaan puoleiden äänet\n ");
            for (int i = 0; i < puolueet.Length; i++)
            {
                //sql-lause, jolla lasketaan yksittäisen puolueen äänet Ehdokas-taulusta
                String lause = "select sum(aanet) from ehdokas where puolue = '" + puolueet[i] + "'";
                //alustetaan komento
                NpgsqlCommand cmd = new NpgsqlCommand(lause, conn);
                //suoritetaan lause
                NpgsqlDataReader dr = cmd.ExecuteReader();
                //luetaan data
                dr.Read();
                //sql-lause, jolla tallennetaan puolueen kaikki äänet tauluun Puolue
                String lause2 = "update puolue set kaikkiaanet = " + dr[0] + "WHERE lyhenne = '" + puolueet[i] + "'";
                Console.WriteLine(puolueet[i] + " yht " + dr[0]);
                //yhden puolueen äänet kokonaislukuna
                int aani = Convert.ToInt32(dr[0]);
                //lisätään puolueen äänet listaan
                aanimaara.Add(aani);
                //suljetaan lukija
                dr.DisposeAsync();
                //tallennetaan äänet tietokantaan
                NpgsqlCommand    cmd2 = new NpgsqlCommand(lause2, conn);
                NpgsqlDataReader dr2  = cmd2.ExecuteReader();
                dr2.Read();
                dr2.DisposeAsync();
                cmd.Dispose();
                cmd2.Dispose();
            }

            conn.Close();
            return(aanimaara);
        }