public double GetDouble(int i)
 {
     return(_reader.GetDouble(i));
 }
        private void PopulateStarsChart(string zipcode, string city)
        {
            List <KeyValuePair <String, double> > data = new List <KeyValuePair <string, double> >();

            using (NpgsqlConnection sqlconn = new NpgsqlConnection(MainWindow.login))
            {//Start SQL interaction
                sqlconn.Open();
                using (NpgsqlCommand cmd = new NpgsqlCommand())
                {
                    cmd.Connection  = sqlconn;
                    cmd.CommandText = "SELECT name, AVG(stars) From Category NATURAL JOIN (SELECT bid, stars FROM Business WHERE zipcode = '" + zipcode + "' AND city = '" + city + "') AS foo GROUP BY name;";

                    using (NpgsqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            data.Add(new KeyValuePair <string, double>(reader.GetString(0), reader.GetDouble(1)));
                        }
                    }

                    AverageStarsGraph.DataContext = data;
                }
                sqlconn.Close();
            }//End SQL interaction
        }
예제 #3
0
        public static int Acquire_Card(string i_username)
        {
            try
            {
                if (DBManagment.has_session(i_username) == false) //check if token is valid / has session
                {
                    //throw new Exception("Not logged in / Invalid token");
                    return(1);
                }

                var    con = new NpgsqlConnection(DBManagment.cs);
                string sql = "Select coins from game_user where username = @username";
                var    cmd = new NpgsqlCommand(sql, con);
                con.Open();
                cmd.Parameters.AddWithValue("username", i_username);
                cmd.Prepare();

                NpgsqlDataReader rdr = cmd.ExecuteReader();
                rdr.Read();
                int player_coins = rdr.GetInt32(0);
                rdr.Close();
                if (player_coins >= 5)
                {
                    if (Check_enough_cards_store() == true)
                    {
                        //select the store table and creating random numbers that are smaller than the number of cards in store
                        int    number_of_available_cards = 0; // available cards in store
                        Random rnd = new Random();

                        int rnum = 0;
                        for (int i = 0; i < 5; i++)                                 //5 random numbers are generated and the card with the same rownumer is added to the stack of the player (5 as a package)
                        {
                            number_of_available_cards = Get_number_of_card_store(); //getting the number of avalable cards each time after deleting one
                            rnum = rnd.Next(number_of_available_cards);


                            sql = "select row_number() OVER (ORDER BY card_id) AS row_id, st.* from store st limit 1 offset @num";
                            var cmd2 = new NpgsqlCommand(sql, con);
                            cmd2.Parameters.AddWithValue("num", rnum);
                            NpgsqlDataReader rdr2 = cmd2.ExecuteReader();

                            //the specific random card
                            rdr2.Read();
                            string        card_id        = rdr2.GetString(4);
                            string        name           = rdr2.GetString(1);
                            string        card_type      = rdr2.GetString(5);
                            ElementarType elementar_type = (ElementarType)Enum.Parse(typeof(ElementarType), Convert.ToString(rdr2.GetValue(2)));
                            double        damage         = rdr2.GetDouble(3);
                            rdr2.Close();

                            //add card to users stack
                            sql = "insert into all_user_cards (card_id, username, name, card_type, elementar_Type, damage) values (@card_id, @username, @name, @card_type, @elementar_type, @damage)";
                            var cmd3 = new NpgsqlCommand(sql, con);
                            cmd3.Parameters.AddWithValue("card_id", card_id);
                            cmd3.Parameters.AddWithValue("username", i_username);
                            cmd3.Parameters.AddWithValue("name", name);
                            cmd3.Parameters.AddWithValue("card_type", card_type);
                            cmd3.Parameters.AddWithValue("elementar_type", elementar_type);
                            cmd3.Parameters.AddWithValue("damage", damage);
                            cmd3.Prepare();
                            cmd3.ExecuteNonQuery();

                            ////////

                            //delete from store beacause card is already sold
                            sql = "Delete from store where card_id = @id";
                            var cmd4 = new NpgsqlCommand(sql, con);
                            cmd4.Parameters.AddWithValue("id", card_id);

                            cmd4.Prepare();

                            cmd4.ExecuteNonQuery();
                        }
                        if (Decreasing_coins_from_user(i_username) == true)
                        {
                            return(0);
                        }
                        else
                        {
                            //throw new Exception("Error: can't decrease users coins");
                            return(3);
                        }
                    }
                    else
                    {
                        //throw new Exception("Error: not enough Cards in Store!");
                        return(2);
                    }
                }
                else
                {
                    //throw new Exception("Error: Not enough Coins!");
                    return(4);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} Exception caught.", e);
                return(5);
            }
        }
예제 #4
0
        public string AquirePackage(string usertoken, string packageId)
        {
            User user;

            ClientSingleton.GetInstance.ClientMap.TryGetValue(usertoken, out user);
            if (user.Coins == 0)
            {
                return("POST ERR - No coins");
            }

            using NpgsqlConnection con = new NpgsqlConnection(_cs);
            try
            {
                con.Open();
            }
            catch (PostgresException e)
            {
                return("POST ERR - No DB connection");
            }

            List <string> cardIds        = null;
            string        sqlAllPackages = "SELECT * FROM packages";

            using NpgsqlCommand cmdPackages = new NpgsqlCommand(sqlAllPackages, con);
            using NpgsqlDataReader reader   = cmdPackages.ExecuteReader();
            while (reader.Read())
            {
                if (reader.GetString(0) == packageId)
                {
                    try
                    {
                        cardIds = JsonSerializer.Deserialize <PackageDTO>(reader.GetString(1)).CardIds;
                    }
                    catch (Exception e)
                    {
                        cardIds = null;
                    }
                }
            }
            reader.Close();
            if (cardIds == null || cardIds.Count == 0)
            {
                return("POST ERR - Invalid PackageID");
            }

            CardPackage pack        = new CardPackage();
            string      sqlAllCards = "SELECT * FROM cards";

            using NpgsqlCommand cmdCards       = new NpgsqlCommand(sqlAllCards, con);
            using NpgsqlDataReader readerCards = cmdCards.ExecuteReader();
            while (readerCards.Read())
            {
                foreach (var cardId in cardIds)
                {
                    if (readerCards.GetString(0) == cardId)
                    {
                        CardDTO cardDto = new CardDTO(readerCards.GetString(0), readerCards.GetString(1), readerCards.GetString(2), readerCards.GetString(3), readerCards.GetDouble(4));
                        Card    card    = cardDto.ToCard();
                        pack.AddCard(card);
                    }
                }
            }
            user.AddCardsToStack(pack);
            readerCards.Close();
            _userDataService.PersistUserData(user, usertoken);
            return("POST OK - Package aquired");
        }
예제 #5
0
        public List <IElement> GetTours()
        {
            using NpgsqlConnection con = new NpgsqlConnection(_connectionString);
            try
            {
                con.Open();
            }
            catch (NpgsqlException e)
            {
                _log.Error("No DB connection");
                return(null);
            }

            string createSql = @"CREATE TABLE IF NOT EXISTS tours(tourid VARCHAR, tourname VARCHAR, description VARCHAR, tourstart VARCHAR, tourend VARCHAR, distance DOUBLE PRECISION)";

            using NpgsqlCommand createCmd = new NpgsqlCommand(createSql, con);
            createCmd.ExecuteNonQuery();

            string sql = "SELECT * FROM tours";

            using NpgsqlCommand cmd = new NpgsqlCommand(sql, con);

            List <IElement> tours = new List <IElement>();

            using NpgsqlDataReader rdr = cmd.ExecuteReader();

            while (rdr.Read())
            {
                tours.Add(new Tour(Guid.Parse(rdr.GetString(0)), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3), rdr.GetString(4), rdr.GetDouble(5)));
            }
            rdr.Close();
            _log.Info("Tours read from DB");
            return(tours);
        }
예제 #6
0
        public List <Statistics> GetDateStatistics(Statistics _statistics)
        {
            float             month;
            float             year;
            float             totalAnxiety;
            Statistics        statistic;
            List <Statistics> dateList = new List <Statistics>();

            try
            {
                conn = DAO.getConnection();
                NpgsqlTransaction tran    = conn.BeginTransaction();
                NpgsqlCommand     command = new NpgsqlCommand("estadistica_fechas(@initdate, @enddate)", conn);

                NpgsqlParameter initDateConsult = new NpgsqlParameter();
                NpgsqlParameter endDateConsult  = new NpgsqlParameter();

                initDateConsult.ParameterName = "@initdate";
                endDateConsult.ParameterName  = "@enddate";

                initDateConsult.NpgsqlDbType = NpgsqlTypes.NpgsqlDbType.Date;
                endDateConsult.NpgsqlDbType  = NpgsqlTypes.NpgsqlDbType.Date;

                initDateConsult.Direction = ParameterDirection.Input;
                endDateConsult.Direction  = ParameterDirection.Input;

                initDateConsult.Value = _statistics._InitialDate;
                endDateConsult.Value  = _statistics._EndingDate;

                command.Parameters.Add(initDateConsult);
                command.Parameters.Add(endDateConsult);

                command.CommandType = CommandType.StoredProcedure;

                NpgsqlDataReader dr = command.ExecuteReader();

                try
                {
                    while (dr.Read())
                    {
                        month        = (float)dr.GetDouble(0);
                        year         = (float)dr.GetDouble(1);
                        totalAnxiety = (float)dr.GetDouble(2);

                        statistic = new Statistics(month, year, totalAnxiety);

                        dateList.Add(statistic);
                    }
                    dr.Close();
                    tran.Commit();
                    return(dateList);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            catch (NpgsqlException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }
예제 #7
0
        public override void DoWork(object idTaskStatus)
        {
            var session = Db <WebEnvironmentFiact> .NSession;
            var status  = session.Get <StatusTask>((int)idTaskStatus);

            try
            {
                cls_IPSIAPI api       = new PSI_API.cls_IPSIAPIClass();
                var         loginInfo = new typLoginInfo
                {
                    strUser      = ConfigurationManager.AppSettings["psiLogin"],
                    strPassword  = ConfigurationManager.AppSettings["psiPassword"],
                    strUserClass = ConfigurationManager.AppSettings["psiUserClass"],
                    strView      = ConfigurationManager.AppSettings["psiView"]
                };
                api.vbLogin(loginInfo);


                using (OleDbConnection excelConnection = new OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", ConfigurationManager.AppSettings["eitpConfigFile"])))
                {
                    excelConnection.Open();


                    using (OleDbCommand excelCommand = new OleDbCommand(String.Format("select * from [{0}$]", ConfigurationManager.AppSettings["configSheetName"]), excelConnection))
                    {
                        using (OleDbDataReader excelReader = excelCommand.ExecuteReader())
                        {
                            while (excelReader.Read())
                            {
                                if (excelReader.GetValue(5) == DBNull.Value)
                                {
                                    continue;
                                }
                                String pbTag = excelReader.GetString(5) +
                                               ConfigurationManager.AppSettings["pbTagSuffix"];
                                String pTag = excelReader.GetString(5) + ConfigurationManager.AppSettings["ptagSuffix"];
                                String qTag = excelReader.GetString(5) + ConfigurationManager.AppSettings["qTagSuffix"];
                                String tTag = excelReader.GetString(5) + ConfigurationManager.AppSettings["tTagSuffix"];

                                String internalTag = excelReader.GetString(1);
                                if (String.IsNullOrEmpty(internalTag))
                                {
                                    continue;
                                }


                                using (NpgsqlConnection connection = new NpgsqlConnection(ConfigurationManager.ConnectionStrings["eitp"].ConnectionString))
                                {
                                    String sql = String.Format(ConfigurationManager.AppSettings["eitpDAYsql"],
                                                               internalTag);
                                    try
                                    {
                                        using (NpgsqlCommand command = new NpgsqlCommand(sql, connection))
                                        {
                                            connection.Open();



                                            using (NpgsqlDataReader reader = command.ExecuteReader())
                                            {
                                                while (reader.Read())


                                                {
                                                    if (reader.GetValue(1) != DBNull.Value)
                                                    {
                                                        api.vbSetStdValue(pbTag, "D",
                                                                          new typeValue
                                                        {
                                                            Wert = reader.GetDouble(1),
                                                            Zeit = reader.GetDateTime(0)
                                                        });
                                                    }
                                                    if (reader.GetValue(2) != DBNull.Value)
                                                    {
                                                        api.vbSetStdValue(pTag, "D",
                                                                          new typeValue
                                                        {
                                                            Wert = reader.GetDouble(2),
                                                            Zeit = reader.GetDateTime(0)
                                                        });
                                                    }
                                                    if (reader.GetValue(3) != DBNull.Value)
                                                    {
                                                        api.vbSetStdValue(tTag, "D",
                                                                          new typeValue
                                                        {
                                                            Wert = reader.GetDouble(3),
                                                            Zeit = reader.GetDateTime(0)
                                                        });
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    catch (COMException ex)
                                    {
                                    }
                                }
                            }
                        }
                    }
                }
                api.vbLogout();

                session.Evict(status);
                status = session.Get <StatusTask>(idTaskStatus);
                status.TaskExecType = TaskExecType.Succeed;
            }
            catch (Exception e)
            {
                session.Evict(status);
                status              = session.Get <StatusTask>(idTaskStatus);
                status.Error        = e.ToString();
                status.TaskExecType = TaskExecType.Failure;
            }

            status.EndRun = DateTime.Now;
            session.Save(status);
            session.Flush();
        }