Esempio n. 1
0
 public async Task <Command> Edit(TeamNew query) => await SendAsync(new Query());
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            con = ConnectionDB.getConnection();
            var feed_language = Languages.userLanguage(Request);
            // get user ID
            string userId = null;
            if (Request.QueryString["userId"] != null)
            {
                userId = Request["userId"];
            }
            else
            {
                throw new HttpException(401, "We need your user ID!");
            }

            // get team list
            string[] teamList = null;
            if (Request.QueryString["teamList"] != null)
            {
                teamList = Request["teamList"].Split(',');
            }
            else
            {
                throw new HttpException(400, "We need your teams subscribe list!");
            }

            teamsNames = new Hashtable();

            // get teams name and verify if exists
            foreach (string team in teamList)
            {
                if (team.Length != 0)
                {
                    String CmdString1 = "SELECT * FROM football.udf_get_teamNames(@teamId)";
                    SqlCommand cmd1 = new SqlCommand(CmdString1, con);
                    cmd1.Parameters.AddWithValue("@teamId", Convert.ToInt32(team));
                    SqlDataAdapter sda1 = new SqlDataAdapter(cmd1);
                    DataTable dt1 = new DataTable("team");
                    sda1.Fill(dt1);

                    if (dt1.Rows.Count == 0)
                    {
                        throw new HttpException(404, "Team doesn't exists!");
                    }

                    var columnName = "name" + feed_language.ToUpper();
                    var index = dt1.Columns.IndexOf(columnName);

                    teamsNames[Convert.ToInt32(team)] = dt1.Rows[0].ItemArray[index].ToString();
                }
            }

            // verify if the user subscribe the team list

            foreach(string team in teamList)
            {
                if (team.Length != 0)
                {
                    string cmd_str = "SELECT football.udf_user_subscribed_team(@user_id, @team_id)";
                    SqlCommand cmd_subscribe = new SqlCommand(cmd_str, con);
                    cmd_subscribe.Parameters.AddWithValue("@user_id", userId);
                    cmd_subscribe.Parameters.AddWithValue("@team_id", Convert.ToInt32(team));
                    cmd_subscribe.CommandType = CommandType.Text;

                    int subscribing = 0;

                    try
                    {
                        con.Open();
                        subscribing = (int)cmd_subscribe.ExecuteScalar();
                        con.Close();
                    }
                    catch (Exception exc)
                    {
                        con.Close();
                    }

                    if (subscribing == 0)
                    {
                        throw new HttpException(401, "Please subscribe!");
                    }
                }
            }

            // format, default => full
            string format = "full";
            if (Request.QueryString["format"] == "simple")
            {
                format = Request["format"];
            }

            // language
            string language = "pt";
            if (Request.QueryString["language"] != null && Languages.languages_name.ContainsKey(Request["language"]))
            {
                language = Request["language"];
            }

            // get content
            teamNews = new LinkedList<TeamNew>();

            string teamsList = "";

            foreach (String teamId in teamList)
            {
                if (teamId.Length != 0)
                {
                    teamsList += teamId + ",";
                }
            }

            if (teamsList.Length == 0)
            {
                teamsList = ",,";
            }
            else
            {
                teamsList = ',' + teamsList;
            }

            String CmdString = "SELECT * FROM football.udf_get_rss_news(@teamsList, @language) ORDER BY pubDate DESC";
            SqlCommand cmd = new SqlCommand(CmdString, con);
            cmd.Parameters.AddWithValue("@teamsList", teamsList);
            cmd.Parameters.AddWithValue("@language", language);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable("teamNews");
            sda.Fill(dt);

            int count_news = 0;

            foreach (DataRow teamNew in dt.Rows)
            {
                TeamNew tmp = new TeamNew(teamNew, Convert.ToInt32(teamNew.ItemArray[6]));

                if((++count_news) >= 30)
                {
                    teamNews.AddLast(tmp);
                    break;
                }

                // search for related news
                String CmdString1 = "SELECT * FROM football.udf_get_team_news_related(@related_id)";
                SqlCommand cmd1 = new SqlCommand(CmdString1, con);
                cmd1.Parameters.AddWithValue("@related_id", tmp.id);
                SqlDataAdapter sda1 = new SqlDataAdapter(cmd1);
                DataTable dt1 = new DataTable("relatedNews");
                sda1.Fill(dt1);

                foreach (DataRow relatedNew in dt1.Rows)
                {
                    TeamRelatedNew tmp1 = new TeamRelatedNew(relatedNew, Convert.ToInt32(teamNew.ItemArray[6]), tmp.pubDate);
                    tmp.related.AddLast(tmp1);
                    if(format == "simple" && (++count_news) >= 30){
                        break;
                    }
                }

                teamNews.AddLast(tmp);

                if (count_news >= 30)
                {
                    break;
                }
            }

            string title = "";
            foreach(string clubName in teamsNames.Values)
            {
                title += clubName + " ";
            }

            title += "RSS Feed";

            rssChannel = new RssChannel(HttpContext.Current.Request.Url.AbsoluteUri, title, language, format);
            RepeaterRSS.DataSource = teamNews;

            RepeaterRSS.DataBind();

            url = "http://" + HttpContext.Current.Request.Url.Authority + "/";
            Page.DataBind();
        }