protected void btnDestroy_Click(object sender, EventArgs e)
        {
            if (ListUsers.Count > 0)
            {
                bool usersChanged     = false;
                bool followersChanged = false;

                TwitterAuthenticate();
                try {
                    foreach (GridViewRow row in gvUsers.Rows)
                    {
                        Control ctrl = row.FindControl("cbxDelete");
                        if (ctrl != null)
                        {
                            CheckBox cbx = (CheckBox)ctrl;
                            if (cbx.Checked)
                            {
                                Control lblctrl = row.FindControl("lblUserId");
                                if (lblctrl != null)
                                {
                                    Label lbl  = (Label)lblctrl;
                                    var   user = ListUsers.Where(k => k.UserId == lbl.Text).FirstOrDefault();
                                    if (user != null)
                                    {
                                        twdata = new Twitter(user, Twitter.TwitterType.Unfollow);
                                        Twitter.User utoremove = ListFriends.Find(x => x.UserId == user.UserId);
                                        if (utoremove != null && ListFriends.Contains(utoremove))
                                        {
                                            ListFriends.Remove(utoremove);
                                            followersChanged = true;
                                        }
                                        ListUsers.Remove(user);
                                        usersChanged = true;
                                    }
                                }
                            }
                        }
                    }
                    if (followersChanged)
                    {
                        Serializer.WriteFollowersXML(ListFriends.ToList(), Constants.FriendsFollowers.Friends.ToString());
                    }
                    if (usersChanged)
                    {
                        Serializer.WriteFollowersXML(ListUsers.ToList(), Constants.FriendsFollowers.Analyze.ToString());
                        Serializer.WriteFollowersXML(ListUsers.ToList(), Constants.FriendsFollowers.Unfollow.ToString());
                        Serializer.WriteFollowersXML(ListUsers.ToList(), Constants.FriendsFollowers.Users.ToString());
                    }
                    BindData();
                } catch (WebException wex) {
                    BindData();
                    ScriptManager.RegisterStartupScript(this, GetType(), "displayalertmessage", string.Format("alert('{0}');", "No internet connection: " + wex.Message.Replace("'", string.Empty)), true);
                } catch (Exception ex) {
                    //do nothing
                }
            }
        }
        protected void btnDestroyAll_Click(object sender, EventArgs e)
        {
            if (ListUsers.Count > 0)
            {
                bool followersChanged = false;

                TwitterAuthenticate();
                try {
                    foreach (Twitter.User user in ListUsers)
                    {
                        twdata = new Twitter(user, Twitter.TwitterType.Unfollow);
                        Twitter.User utoremove = ListFriends.Find(x => x.UserId == user.UserId);
                        if (utoremove != null && ListFriends.Contains(utoremove))
                        {
                            ListFriends.Remove(utoremove);
                            followersChanged = true;
                        }
                    }
                    ListUsers.Clear();
                    if (followersChanged)
                    {
                        Serializer.WriteFollowersXML(ListFriends.ToList(), Constants.FriendsFollowers.Friends.ToString());
                    }

                    Serializer.DeleteListXML(Constants.FriendsFollowers.Analyze.ToString());
                    Serializer.DeleteListXML(Constants.FriendsFollowers.Unfollow.ToString());
                    Serializer.WriteFollowersXML(ListUsers.ToList(), Constants.FriendsFollowers.Users.ToString());
                    BindData();
                } catch (WebException wex) {
                    BindData();
                    ScriptManager.RegisterStartupScript(this, GetType(), "displayalertmessage", string.Format("alert('{0}');", "No internet connection: " + wex.Message.Replace("'", string.Empty)), true);
                } catch (Exception ex) {
                    //do nothing
                }
            }
        }
Exemplo n.º 3
0
        public static BindingList <Twitter.User> ImportFromExcel(string sFilename)
        {
            BindingList <Twitter.User> users = null;

            try {
                Application xlObject = null;
                Workbook    xlWB     = null;
                Worksheet   xlSh     = null;
                try {
                    xlObject = new Application();

                    //'This Adds a new woorkbook, you could open the workbook from file also
                    xlWB = xlObject.Workbooks.Open(sFilename, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
                    //xlSh = (Worksheet)xlObject.ActiveWorkbook.ActiveSheet;

                    Range usedrange = xlSh.UsedRange;

                    users = new BindingList <Twitter.User>();

                    int index = 1;
                    foreach (Range r in usedrange.Rows)
                    {
                        //no header
                        if (r.Row > 1)
                        {
                            Twitter.User user = new Twitter.User();
                            user.Index = index;
                            for (int cCnt = 1; cCnt <= usedrange.Columns.Count; cCnt++)
                            {
                                object str = (object)(usedrange.Cells[r.Row, cCnt] as Range).Value2;
                                if (cCnt == 1)
                                {
                                    user.ScreenName = str.ToString();
                                }
                                else if (cCnt == 2)
                                {
                                    user.ProfileImage = str.ToString();
                                }
                                else if (cCnt == 3)
                                {
                                    user.UserId = str.ToString();
                                }
                            }
                            users.Add(user);
                            index++;
                        }
                    }
                }
                catch (System.Runtime.InteropServices.COMException) {
                } catch (Exception) {
                } finally {
                    try {
                        if (xlWB != null)
                        {
                            xlWB.Close(null, null, null);
                        }
                        xlObject.Workbooks.Close();
                        xlObject.Quit();
                        if (xlSh != null)
                        {
                            Marshal.ReleaseComObject(xlSh);
                        }
                        if (xlWB != null)
                        {
                            Marshal.ReleaseComObject(xlWB);
                        }
                        if (xlObject != null)
                        {
                            Marshal.ReleaseComObject(xlObject);
                        }
                    } catch {
                    }
                    xlSh     = null;
                    xlWB     = null;
                    xlObject = null;
                    // force final cleanup!
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
            } catch (Exception) {
            }
            return(users);
        }
        protected void gvUsers_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            switch (e.Row.RowType)
            {
            case DataControlRowType.Header:
                break;

            case DataControlRowType.DataRow:
                Control ctrl = e.Row.FindControl("liImage");
                if (ctrl != null)
                {
                    HtmlGenericControl li = (HtmlGenericControl)ctrl;
                    if (li.Parent is DataControlFieldCell)
                    {
                        DataControlFieldCell td = (DataControlFieldCell)li.Parent;
                        td.Attributes.Add(Constants.CLASS, string.Concat(Constants.GRIDIMAGETD, Constants.SPACE, Constants.GRIDCHECKBOXTD));
                    }

                    Control ctrlScreenName = e.Row.FindControl("lblScreenName");
                    if (ctrlScreenName != null)
                    {
                        Label   lblScreenName    = (Label)ctrlScreenName;
                        Control ctrlProfileImage = e.Row.FindControl("lblProfileImage");
                        if (ctrlProfileImage != null)
                        {
                            Label lblProfileImage = (Label)ctrlProfileImage;

                            Twitter.User tw = new Twitter.User();
                            tw.Index        = e.Row.RowIndex;
                            tw.ScreenName   = lblScreenName.Text;
                            tw.ProfileImage = lblProfileImage.Text;

                            HtmlGenericControl ianchor = new HtmlGenericControl(Constants.A);
                            ianchor.Attributes.Add(Constants.TARGET, Constants.BLANK);
                            ianchor.Attributes.Add(Constants.TITLE, tw.ScreenName);
                            ianchor.Attributes.Add(Constants.HREF, string.Concat(Constants.HTTPTWITTER, tw.ScreenName));

                            HtmlImage img = new HtmlImage();
                            img.Src = tw.ProfileImage;
                            ianchor.Controls.Add(img);
                            img.Attributes.Add(Constants.CLASS, Constants.GRIDIMAGE);

                            li.Controls.Add(ianchor);
                        }
                    }
                }
                break;

            case DataControlRowType.Footer:

                //e.Row.Cells.Remove(e.Row.Cells[4]);
                Control ctrllblTotal = e.Row.FindControl("lblTotal");
                if (ctrllblTotal != null)
                {
                    if (ctrllblTotal.Parent is DataControlFieldCell)
                    {
                        DataControlFieldCell cell = (DataControlFieldCell)ctrllblTotal.Parent;
                        //cell.ColumnSpan = 2;
                    }
                    Label lblTotal = (Label)ctrllblTotal;

                    int startamount = gvUsers.PageIndex * gvUsers.PageSize;
                    int endamount   = startamount + gvUsers.PageSize;
                    if (ListUsers.Count < endamount)
                    {
                        endamount = ListUsers.Count;
                    }

                    lblTotal.Text = string.Concat(startamount.ToString(), " to ", endamount.ToString(), " of ", Resources.Resource.Total, Constants.COLON, Constants.SPACE, ListUsers.Count.ToString());
                }
                switch (Master.Friendorfollower)
                {
                case Constants.FriendsFollowers.NotFollowing:
                    Control ctrlbtnFollow = e.Row.FindControl("btnFollow");
                    if (ctrlbtnFollow != null)
                    {
                        ctrlbtnFollow.Visible = true;
                    }
                    Control ctrlbtnFollowAll = e.Row.FindControl("btnFollowAll");
                    if (ctrlbtnFollowAll != null)
                    {
                        ctrlbtnFollowAll.Visible = true;
                    }
                    break;
                }

                switch (Master.Friendorfollower)
                {
                case Constants.FriendsFollowers.Exclude:
                case Constants.FriendsFollowers.Unfollow:
                case Constants.FriendsFollowers.NotFollowing:
                case Constants.FriendsFollowers.NeverFollow:
                    Control ctrlbtnSave = e.Row.FindControl("btnSave");
                    if (ctrlbtnSave != null)
                    {
                        ctrlbtnSave.Visible = true;
                    }

                    Control ctrlbtnAddExclude = e.Row.FindControl("btnAddExclude");
                    if (ctrlbtnAddExclude != null)
                    {
                        ctrlbtnAddExclude.Visible = false;
                    }

                    if (Master.Friendorfollower != Constants.FriendsFollowers.Unfollow)
                    {
                        Control ctrlbtnDestroy = e.Row.FindControl("btnDestroy");
                        if (ctrlbtnDestroy != null)
                        {
                            ctrlbtnDestroy.Visible = false;
                        }

                        Control ctrlbtnDestroyAl = e.Row.FindControl("btnDestroyAll");
                        if (ctrlbtnDestroyAl != null)
                        {
                            ctrlbtnDestroyAl.Visible = false;
                        }
                    }
                    if (Master.Friendorfollower == Constants.FriendsFollowers.NotFollowing)
                    {
                        Control ctrlbtnAddNeverFollow = e.Row.FindControl("btnAddNeverFollow");
                        if (ctrlbtnAddNeverFollow != null)
                        {
                            ctrlbtnAddNeverFollow.Visible = true;
                        }
                    }

                    if (Master.Friendorfollower != Constants.FriendsFollowers.Exclude &
                        Master.Friendorfollower != Constants.FriendsFollowers.NeverFollow)
                    {
                        Control ctrlbtnDel = e.Row.FindControl("btnDelete");
                        //if (ctrlbtnDel != null) ctrlbtnDel.Visible = false;
                    }

                    break;

                case Constants.FriendsFollowers.Analyze:
                    Control ctlbtnDestroy = e.Row.FindControl("btnDestroy");
                    if (ctlbtnDestroy != null)
                    {
                        ctlbtnDestroy.Visible = false;
                    }

                    Control ctrlbtnDestroyAll = e.Row.FindControl("btnDestroyAll");
                    if (ctrlbtnDestroyAll != null)
                    {
                        ctrlbtnDestroyAll.Visible = false;
                    }
                    break;
                }

                break;
            }
        }