Exemplo n.º 1
0
        public int GetNewUsersCount(string username, string hash)
        {
            string encodedData = Convert.ToBase64String(Encoding.ASCII.GetBytes(username));
            string hash2 = Misc.HMACSHA1ToHex(encodedData, Properties.Settings.Default.SecretGadgetKey);

            if (hash != hash2) return 0;
            NewUsersSearch nuSearch = new NewUsersSearch();
            nuSearch.UsersSince = Classes.User.Load(username).PrevLogin;
            UserSearchResults nuResults = nuSearch.GetResultsFromCache(true);
            if (nuResults != null && nuResults.Usernames != null)
                return nuResults.Usernames.Length;
            else
                return 0;
        }
Exemplo n.º 2
0
        private static void AsyncProcessMailerQueue(object data)
        {
            if (mailerLock)
            {
                return;
            }

            try
            {
                mailerLock = true;

                int usersOnline = 0;
                int newUsers = 0;
                int sentMessages = 0;
                DateTime to =
                    new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, 0, 0);
                DateTime from = to - TimeSpan.FromHours(1);

                OnlineSearch onlineUsersSearch = new OnlineSearch();
                UserSearchResults results = onlineUsersSearch.GetResults();
                usersOnline = results != null ? results.Usernames.Length : 0;
                NewUsersSearch newUsersSearch = new NewUsersSearch();
                newUsersSearch.ProfileReq = false;
                newUsersSearch.UsersSince = DateTime.Now.AddHours(-1);
                results = newUsersSearch.GetResults();
                newUsers = results != null ? results.Usernames.Length : 0;
                sentMessages = FetchMessagesCount(from, to);

                Save(DateTime.Now, usersOnline, newUsers, sentMessages);
            }
            catch (Exception err)
            {
                Global.Logger.LogError("HourlyStats", err);
            }
            finally
            {
                mailerLock = false;
            }
        }
Exemplo n.º 3
0
        private static void GenerateNewUsersRSS(HttpContext context)
        {
            byte[] xmlResponse;

            string cacheKey = String.Format("RssHandler_GenerateNewUsersRSS");
            if (context.Cache[cacheKey] != null)
            {
                xmlResponse = context.Cache[cacheKey] as byte[];
            }
            else
            {
                NewUsersSearch nuSearch = new NewUsersSearch();
                nuSearch.PhotoReq = true;
                nuSearch.UsersCount = 10;
                UserSearchResults nuResults = nuSearch.GetResults();

                MemoryStream ms = new MemoryStream();
                XmlTextWriter objX = new XmlTextWriter(ms, Encoding.UTF8);

                objX.WriteStartDocument();
                objX.WriteStartElement("rss");
                objX.WriteAttributeString("version", "2.0");
                objX.WriteStartElement("channel");
                objX.WriteElementString("title", Config.Misc.SiteTitle + " - " + Lang.Trans("New Users"));
                objX.WriteElementString("link", Config.Urls.Home);
                objX.WriteElementString("description", Lang.Trans("They've just joined us!"));
                objX.WriteElementString("copyright", Lang.Trans("(c) 2003-2008, All rights reserved."));
                objX.WriteElementString("ttl", "30");

                if (nuResults != null && nuResults.Usernames != null)
                {
                    foreach (string username in nuResults.Usernames)
                    {
                        User user = User.Load(username);
                        int age = (int) (DateTime.Now.Subtract(user.Birthdate).TotalDays/365.25);
                        string descr = String.Format(Lang.Trans("<img src=\"{2}\"><br>Gender: {0}<br>Age:{1}"),
                                                     user.Gender, age, Config.Urls.Home +
                                                                       "/Image.ashx?id=" +
                                                                       Photo.GetPrimary(username).Id +
                                                                       "&width=90&height=90&cache=1");

                        objX.WriteStartElement("item");
                        objX.WriteElementString("title", username);
                        objX.WriteElementString("description", descr);
                        objX.WriteElementString("link", Config.Urls.Home + "/ShowUser.aspx?uid=" + username);
                        objX.WriteElementString("pubDate", user.UserSince.ToString("R"));
                        objX.WriteEndElement();
                    }
                }

                objX.WriteEndElement();
                objX.WriteEndElement();
                objX.WriteEndDocument();
                objX.Flush();
                objX.Close();

                xmlResponse = ms.ToArray();

                context.Cache.Insert(cacheKey, xmlResponse, null, DateTime.Now.AddMinutes(10),
                                     Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null);
            }

            context.Response.Clear();
            context.Response.ContentType = "application/xml";
            context.Response.BinaryWrite(xmlResponse);
            context.Response.End();
        }
Exemplo n.º 4
0
        public int GetNewUsersForTheLast24hoursCount()
        {
            NewUsersSearch nuSearch = new NewUsersSearch();
            nuSearch.ProfileReq = false;
            nuSearch.UsersSince = DateTime.Now.Subtract(new TimeSpan(24, 0, 0));
            UserSearchResults nuResults = nuSearch.GetResults();

            if (nuResults == null)
                return 0;
            else return nuResults.Usernames.Length;
        }
Exemplo n.º 5
0
        public NewUserInfo GetRandomNewUser(string gender)
        {
            NewUserInfo info = new NewUserInfo();

            NewUsersSearch nuSearch = new NewUsersSearch();
            nuSearch.PhotoReq = true;
            nuSearch.UsersCount = 10;
            if (!string.IsNullOrEmpty(gender))
            {
                try
                {
                    nuSearch.Gender = (User.eGender)
                        Enum.Parse(typeof(User.eGender), gender);
                }
                catch (ArgumentException)
                {
                }
            }
            UserSearchResults nuResults = nuSearch.GetResults();

            if (nuResults != null && nuResults.Usernames != null)
            {
                Random rand = new Random();
                info.username = nuResults.Usernames[rand.Next(nuResults.Usernames.Length)];
                info.profileUrl = UrlRewrite.CreateShowUserUrl(info.username);
                info.imageUrl = ImageHandler.CreateImageUrl(Photo.GetPrimary(info.username).Id, 120, 120,
                                                            true, false, false);
            }

            return info;
        }
Exemplo n.º 6
0
        private void preparePage()
        {
            #region Load Photo

            Photo primaryPhoto = null;
            try
            {
                primaryPhoto = CurrentUserSession.GetPrimaryPhoto();
            }
            catch (NotFoundException)
            {
            }
            catch (Exception err)
            {
                Log(err);
            }

            #region Check CurrentUserSession.Gender and set photoId

            int photoId;

            if (primaryPhoto == null || !primaryPhoto.Approved)
            {
                photoId = ImageHandler.GetPhotoIdByGender(CurrentUserSession.Gender);
            }
            else
            {
                photoId = primaryPhoto.Id;
            }

            #endregion

            if (Config.Photos.EnablePhotoStack)
            {
                imgPhoto.ImageUrl = ImageHandler.CreateImageStackUrl(CurrentUserSession.Username, 200, 150);
            }
            else
            {
                imgPhoto.ImageUrl = String.Format("~/Image.ashx?id={0}&width=90&height=90&diskCache=1&findFace=1",
                                          photoId);
            }

            #endregion

            #region Show Profile Views

            if (Config.Users.EnableWhoViewedMyProfile)
            {
                lblProfileViews.Text = CurrentUserSession.ProfileViews.ToString();
                if (CurrentUserSession.ProfileViews == 0)
                {
                    lnkViewProfileViewers.Enabled = false;
                }
                liWhoViewedMyProfile.Visible = true;
            }
            else
            {
                liWhoViewedMyProfile.Visible = false;
            }

            #endregion

            #region Show Rating

            if (Config.Ratings.EnableProfileRatings)
            {
                pnlRating.Visible = true;
                try
                {
                    UserRating userRating = UserRating.FetchRating(CurrentUserSession.Username);

                    lblRating.Text = String.Format(
                        Lang.Trans("{0} ({1} votes)"),
                        userRating.AverageVote.ToString("0.00"), userRating.Votes);
                }
                catch (NotFoundException)
                {
                    lblRating.Text = Lang.Trans("no rating");
                }
            }
            else pnlRating.Visible = false;

            #endregion

            #region Show Votes

            if (Config.Ratings.EnableProfileVoting)
            {
                int score = UserVotes.FetchVotesScore(CurrentUserSession.Username);
                if (score > 0)
                {
                    pnlVotes.Visible = true;
                    lblVotes.Text = score.ToString();
                }
                else
                {
                    pnlVotes.Visible = false;
                }
            }
            else
            {
                pnlVotes.Visible = false;
            }

            #endregion

            #region Load New Users

            var nuSearch = new NewUsersSearch
                               {
                                   PhotoReq = Config.Users.RequirePhotoToShowInNewUsers,
                                   ProfileReq = Config.Users.RequireProfileToShowInNewUsers,
                                   UsersSince = CurrentUserSession.PrevLogin
                               };
            UserSearchResults nuResults = nuSearch.GetResults(true);
            if (nuResults == null)
            {
                pnlNewUsers.Visible = false;
            }
            else
            {
                lnkNewUsers.Text = nuResults.Usernames.Length == 1 ?
                    Lang.Trans("There is one new user since your last visit!") :
                    String.Format(Lang.Trans("There are <b>{0}</b> new users since your last visit!"), nuResults.Usernames.Length);

                pnlNewUsers.Visible = true;
            }

            #endregion

            #region Load Online Users

            var oSearch = new OnlineSearch();
            UserSearchResults oResults = oSearch.GetResults();

            if (oResults == null)
            {
                pnlUsersOnline.Visible = false;
            }
            else
            {
                lblUsersOnline.Text = oResults.Usernames.Length == 1 ?
                    Lang.Trans("There is one online user!") :
                    String.Format(Lang.Trans("There are <b>{0}</b> online users!"), oResults.Usernames.Length);

                pnlUsersOnline.Visible = true;
            }

            #endregion

            #region Show users broadcasting video

            if (Config.Misc.EnableProfileVideoBroadcast)
            {
                var vbSearch = new VideoBroadcastingSearch();
                UserSearchResults vbResults = vbSearch.GetResults();

                if (vbResults == null)
                {
                    pnlUsersBroadcasting.Visible = false;
                }
                else
                {
                    lblUsersBroadcasting.Text = vbResults.Usernames.Length == 1
                        ? Lang.Trans("There is one user broadcasting video!")
                        : String.Format(Lang.Trans("There are <b>{0}</b> users broadcasting video!"), vbResults.Usernames.Length);

                    pnlUsersBroadcasting.Visible = true;
                }
            }
            else
            {
                pnlUsersBroadcasting.Visible = false;
            }

            #endregion

            #region Load Blocked Users

            int blockedUsers = Data.User.FetchBlockedUsers(CurrentUserSession.Username).Count;

            if (blockedUsers == 0)
            {
                pnlBlockedUsers.Visible = false;
            }
            else
            {
                lblBlockedUsers.Text = blockedUsers == 1
                                           ? Lang.Trans("There is one blocked user!")
                                           : String.Format(Lang.Trans("There are <b>{0}</b> blocked users!"),
                                                           blockedUsers);

                pnlBlockedUsers.Visible = true;
            }

            #endregion

            #region Show Unread Messages

            int unreadMsgCount = Message.SearchUnread(CurrentUserSession.Username).Length;
            if (unreadMsgCount > 0)
            {
                pnlNewMessages.Visible = true;

                if (unreadMsgCount == 1)
                {
                    if (lblNewMessages != null)
                    {
                        lblNewMessages.Text = Lang.Trans("You have <b>1</b> unread message!");
                        lnkNewMessages.Text = Lang.Trans("View");
                    }
                    else
                    {
                        lnkNewMessages.Text = Lang.Trans("You have <b>1</b> unread message!");
                    }
                }
                else
                {
                    if (lblNewMessages != null)
                    {
                        lblNewMessages.Text = String.Format(
                            Lang.Trans("You have <b>{0}</b> unread messages!"), unreadMsgCount);
                        lnkNewMessages.Text = Lang.Trans("View");
                    }
                    else
                    {
                        lnkNewMessages.Text = String.Format(
                            Lang.Trans("You have <b>{0}</b> unread messages!"), unreadMsgCount);
                    }
                }
            }
            else
            {
                pnlNewMessages.Visible = false;
            }

            #endregion

            #region Show Relationship Requests

            if (Config.Users.EnableRelationshipStatus)
            {
                int relationshipRequests = Relationship.FetchRequests(CurrentUserSession.Username).Length;
                if (relationshipRequests > 0)
                {
                    pnlRelationshipRequests.Visible = true;

                    if (relationshipRequests == 1)
                    {
                        if (lblRelationshipRequests != null)
                        {
                            lblRelationshipRequests.Text = Lang.Trans("You have <b>1</b> relationship request!");
                            lnkRelationshipRequests.Text = Lang.Trans("View");
                        }
                        else
                        {
                            lnkRelationshipRequests.Text = Lang.Trans("You have <b>1</b> relationship request!");
                        }
                    }
                    else
                    {
                        if (lblRelationshipRequests != null)
                        {
                            lblRelationshipRequests.Text = String.Format(
                                Lang.Trans("You have <b>{0}</b> relationship requests!"), relationshipRequests);
                            lnkRelationshipRequests.Text = Lang.Trans("View");
                        }
                        else
                        {
                            lnkRelationshipRequests.Text = String.Format(
                                Lang.Trans("You have <b>{0}</b> relationship requests!"), relationshipRequests);
                        }
                    }
                }
                else
                {
                    pnlRelationshipRequests.Visible = false;
                }
            }
            else pnlRelationshipRequests.Visible = false;

            #endregion

            #region Show Friend Requests

            int friendRequests = Data.User.FetchFriendsRequests(CurrentUserSession.Username).Length;
            if (friendRequests > 0)
            {
                pnlFriendsRequests.Visible = true;

                if (friendRequests == 1)
                {
                    if (lblFriendsRequests != null)
                    {
                        lblFriendsRequests.Text = Lang.Trans("You have <b>1</b> friend request!");
                        lnkFriendsRequests.Text = Lang.Trans("View");
                    }
                    else
                    {
                        lnkFriendsRequests.Text = Lang.Trans("You have <b>1</b> friend request!");
                    }
                }
                else
                {
                    if (lblFriendsRequests != null)
                    {
                        lblFriendsRequests.Text = String.Format(
                            Lang.Trans("You have <b>{0}</b> friend requests!"), friendRequests);
                        lnkFriendsRequests.Text = Lang.Trans("View");
                    }
                    else
                    {
                        lnkFriendsRequests.Text = String.Format(
                            Lang.Trans("You have <b>{0}</b> friend requests!"), friendRequests);
                    }
                }
            }
            else
            {
                pnlFriendsRequests.Visible = false;
            }

            #endregion

            #region Show New Ecards

            if (CurrentUserSession.CanSendEcards() != PermissionCheckResult.No)
            {
                int unreadEcardsCount = Ecard.FetchUnread(CurrentUserSession.Username).Length;
                if (unreadEcardsCount > 0)
                {
                    pnlNewEcards.Visible = true;

                    if (unreadEcardsCount == 1)
                    {
                        if (lblNewEcards != null)
                        {
                            lblNewEcards.Text = Lang.Trans("You have <b>1</b> unread e-card!");
                            lnkNewEcards.Text = Lang.Trans("View");
                        }
                        else
                        {
                            lnkNewEcards.Text = Lang.Trans("You have <b>1</b> unread e-card!");
                        }
                    }
                    else
                    {
                        if (lblNewEcards != null)
                        {
                            lblNewEcards.Text = String.Format(
                                Lang.Trans("You have <b>{0}</b> unread e-cards!"), unreadEcardsCount);
                            lnkNewEcards.Text = Lang.Trans("View");
                        }
                        else
                        {
                            lnkNewEcards.Text = String.Format(
                                Lang.Trans("You have <b>{0}</b> unread e-cards!"), unreadEcardsCount);
                        }
                    }
                }
                else
                {
                    pnlNewEcards.Visible = false;
                }
            }
            else pnlNewEcards.Visible = false;
            

            #endregion

            #region Add Initial Web Parts

            bool firstTime = CurrentUserSession.PersonalizationInfo == null;
            bool isDirty = firstTime;

            if (firstTime)
            {
                WebPartInfo[] infos = Config.WebParts.GetAvailableWebParts(WebPartZone.HomePageRightZone, true);

                for (int i = 0; i < infos.Length; ++i)
                    WebPartManager1.AddWebPartUserControl(infos[i], wpzHomePageRightZone, i);

                infos = Config.WebParts.GetAvailableWebParts(WebPartZone.HomePageLeftZone, true);

                for (int i = 0; i < infos.Length; ++i)
                    WebPartManager1.AddWebPartUserControl(infos[i], wpzHomePageLeftZone, i);
            }

            if (!Config.Groups.EnableGroups)
            {
                foreach (WebPart part in WebPartManager1.WebParts)
                {
                    if (part.Controls[0] is NewGroupsWebPart)
                    {
                        WebPartManager1.DeleteWebPart(part);
                        isDirty = true;
                    }
                }
            }

            if (isDirty)
            {
                WebPartManager1.SetDirty();
                // ReSharper disable RedundantAssignment
                isDirty = false;
                // ReSharper restore RedundantAssignment
            }

            #endregion

            #region Show contest rankings

            if (Config.Ratings.EnablePhotoContests)
            {
                PhotoContestEntry[] entries = PhotoContestEntry.Load(null, null, CurrentUserSession.Username, null);
                if (entries != null && entries.Length > 0)
                {
                    var dtRanks = new DataTable();
                    dtRanks.Columns.Add("Rank", typeof(int));
                    dtRanks.Columns.Add("ContestName", typeof(string));

                    foreach (PhotoContestEntry entry in entries)
                    {
                        int rank = PhotoContestEntry.FindRank(entry.ContestId, entry.Id);
                        if (rank > 0)
                        {
                            PhotoContest contest = PhotoContest.Load(entry.ContestId);
                            if (contest.DateEnds.HasValue && contest.DateEnds < DateTime.Now) continue;

                            dtRanks.Rows.Add(new object[] { rank, contest.Name });
                        }
                    }

                    if (dtRanks.Rows.Count > 0)
                    {
                        rptContestsRanks.DataSource = dtRanks;
                        rptContestsRanks.DataBind();
                        rptContestsRanks.Visible = true;
                    }
                }
            }

            #endregion

            #region Show Pending Invitations

            if (Config.Groups.EnableGroups)
            {
                int pendingInvitations = Group.FetchPendingInvitations(CurrentUserSession.Username);

                if (pendingInvitations > 0)
                {
                    pnlPendingInvitations.Visible = true;

                    if (pendingInvitations == 1)
                    {
                        if (lblPendingInvitatinos != null)
                        {
                            lblPendingInvitatinos.Text = Lang.Trans("You have <b>1</b> pending invitation!");
                            lnkPendingInvitations.Text = Lang.Trans("View");
                        }
                        else
                        {
                            lnkPendingInvitations.Text = Lang.Trans("You have <b>1</b> pending invitation!");
                        }
                    }
                    else
                    {
                        if (lblPendingInvitatinos != null)
                        {
                            lblPendingInvitatinos.Text = String.Format(
                                Lang.Trans("You have <b>{0}</b> pending invitations!"), pendingInvitations);
                            lnkPendingInvitations.Text = Lang.Trans("View");
                        }
                        else
                        {
                            lnkPendingInvitations.Text = String.Format(
                                Lang.Trans("You have <b>{0}</b> pending invitations!"), pendingInvitations);
                        }
                    }
                }
            }

            #endregion

            #region Show group topic subscriptions

            if (Config.Groups.EnableGroups)
            {
                DataTable dtGroupTopicSubscriptions = new DataTable("GroupTopicSubscriptions");

                dtGroupTopicSubscriptions.Columns.Add("GroupTopicID");
                dtGroupTopicSubscriptions.Columns.Add("GroupTopicName");
                dtGroupTopicSubscriptions.Columns.Add("GroupID");
                dtGroupTopicSubscriptions.Columns.Add("GroupName");

                GroupTopic[] groupTopics =
                    GroupTopic.FetchUpdatedGroupTopicsUserHasSubscribedTo(CurrentUserSession.Username);

                foreach (GroupTopic groupTopic in groupTopics)
                {
                    Group group = Group.Fetch(groupTopic.GroupID);

                    if (group != null)
                    {
                        dtGroupTopicSubscriptions.Rows.Add(new object[]
                                                           {
                                                               groupTopic.ID, groupTopic.Name, group.ID, group.Name
                                                           });
                    }
                }

                rptGroupTopicSubscriptions.DataSource = dtGroupTopicSubscriptions;
                rptGroupTopicSubscriptions.DataBind();
                rptGroupTopicSubscriptions.Visible = dtGroupTopicSubscriptions.Rows.Count > 0;
            }

            #endregion

            #region Show Status text

            if (Config.Users.EnableUserStatusText)
            {
                pnlStatusText.Visible = !Config.Misc.SiteIsPaid || Data.User.IsPaidMember(CurrentUserSession.Username);
                lblStatusText.Text = Server.HtmlEncode(CurrentUserSession.StatusText) ?? "Not set".Translate();    
            }

            #endregion

            #region Notify Facebook for the changed status

            long? facebookID = CurrentUserSession.FacebookID;
            if (Config.Misc.EnableFacebookIntegration && facebookID.HasValue && facebookID > 0)
            {
                divFaceBookStatusUpdate.Visible = true;
                pnlInviteFriendsFromFacebook.Visible = true;
            }

            #endregion
        }
Exemplo n.º 7
0
        private void NewUsersSearch()
        {
            mvSearch.SetActiveView(viewSearchResults);

            NewUsersSearch nuSearch = new NewUsersSearch();
            nuSearch.PhotoReq = Config.Users.RequirePhotoToShowInNewUsers;
            nuSearch.ProfileReq = Config.Users.RequireProfileToShowInNewUsers;
            nuSearch.UsersSince = CurrentUserSession.PrevLogin;

            UserSearchResults nuResults = nuSearch.GetResults();

            Results = nuResults;
        }
Exemplo n.º 8
0
        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            
            #region Load New Users (thumbnails)

            DataTable dtNewUsers;

            string cacheKey = String.Format("NewUsers.ascx_{0}_{1}_{2}_{3}", 
                genderSearch ? gender.ToString() : "null", MinAge, MaxAge, Config.Users.ShowFeaturedMemberOnHomePage);
            if (Cache[cacheKey] != null && Cache[cacheKey] is DataTable && Session["theme"] == null)
            {
                dtNewUsers = (DataTable)Cache[cacheKey];
            }
            else
            {
                var nuSearch = new NewUsersSearch
                                   {
                                       PhotoReq = Config.Users.RequirePhotoToShowInNewUsers,
                                       ProfileReq = Config.Users.RequireProfileToShowInNewUsers,
                                       UsersCount = (dlNewMembers.RepeatColumns*LimitRows),
                                       MinAge = MinAge,
                                       MaxAge = MaxAge
                                   };
                if (genderSearch) nuSearch.Gender = Gender;
                if (Config.Users.ShowFeaturedMemberOnHomePage) nuSearch.IsFeaturedMember = true;
                UserSearchResults nuResults = nuSearch.GetResults();
                dtNewUsers = new DataTable();
                dtNewUsers.Columns.Add("Username");
                dtNewUsers.Columns.Add("ImageId", typeof (int));
                dtNewUsers.Columns.Add("Age");
                dtNewUsers.Columns.Add("Age2");
                dtNewUsers.Columns.Add("Gender");
                dtNewUsers.Columns.Add("Country");
                dtNewUsers.Columns.Add("City");
                dtNewUsers.Columns.Add("StatusText");
                if (nuResults != null && nuResults.Usernames != null)
                {
                    foreach (string username in nuResults.Usernames)
                    {
                        int imageId;
                        User user;

                        try
                        {
                            user = User.Load(username);
                        }
                        catch (NotFoundException)
                        {
                            continue;
                        }

                        try
                        {
                            imageId = Photo.GetPrimary(username).Id;
                        }
                        catch (NotFoundException)
                        {
                            imageId = ImageHandler.GetPhotoIdByGender(user.Gender);
                        }
                        string age = !Config.Users.DisableAgeInformation ? user.Age.ToString() : String.Empty;
                        string age2 = !Config.Users.DisableAgeInformation ? user.Age2.ToString() : String.Empty;
                        string g = !Config.Users.DisableGenderInformation ? user.Gender.ToString() : String.Empty;
                        dtNewUsers.Rows.Add(
                            new object[]
                                {
                                    username, imageId, age, user.Gender == User.eGender.Couple ? age2 : String.Empty, g, user.Country, user.City, user.StatusText
                                });
                    }

                    Cache.Add(cacheKey, dtNewUsers, null, DateTime.Now.Add(TimeSpan.FromMinutes(10)),
                              Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null);
                }
            }

            if (dtNewUsers.Rows.Count > 0)
            {
                dlNewMembers.DataSource = dtNewUsers;
                dlNewMembers.DataBind();
            }

            #endregion

            #region Prepare CoolIris link

            if (Config.Misc.EnableCoolIris)
            {
                var rssNews = new HtmlLink();
                rssNews.Attributes.Add("rel", "alternate");
                rssNews.Attributes.Add("type", "application/rss+xml");
                rssNews.Attributes.Add("title", "");
                rssNews.Attributes.Add("id", "gallery");
                var feedUrl = String.Format("CoolIris.ashx?feed=newusers&gender={0}&minage={1}&maxage={2}",
                    genderSearch ? Gender.ToString() : "", MinAge, MaxAge);
                rssNews.Attributes.Add("href", feedUrl);
                Page.Header.Controls.Add(rssNews);
            }

            #endregion
        }
Exemplo n.º 9
0
        private static void GenerateNewUsersFeed(HttpContext context)
        {
            byte[] xmlResponse;
            int minAge, maxAge;
            User.eGender? gender = null;
            if (!int.TryParse(context.Request.Params["minage"], out minAge))
                minAge = Config.Users.MinAge;
            if (!int.TryParse(context.Request.Params["maxage"], out maxAge))
                maxAge = Config.Users.MaxAge;
            try
            {
                gender = (User.eGender?) Enum.Parse(typeof (User.eGender), context.Request.Params["gender"]);
            }
            catch (ArgumentNullException) {}
            catch (ArgumentException) {}

            string cacheKey = String.Format("RssHandler_GenerateNewUsersFeed_{0}_{1}_{2}",
                gender, minAge, maxAge);
            if (context.Cache[cacheKey] != null)
            {
                xmlResponse = context.Cache[cacheKey] as byte[];
            }
            else
            {
                var nuSearch = new NewUsersSearch
                                   {
                                       PhotoReq = true,
                                       UsersCount = 20,
                                       MinAge = minAge,
                                       MaxAge = maxAge
                                   };
                if (gender.HasValue)
                    nuSearch.Gender = gender.Value;

                UserSearchResults nuResults = nuSearch.GetResults();

                var ms = new MemoryStream();
                var objX = new XmlTextWriter(ms, Encoding.UTF8);

                objX.WriteStartDocument();
                objX.WriteStartElement("rss");
                objX.WriteAttributeString("version", "2.0");
                objX.WriteAttributeString("xmlns:media", "http://search.yahoo.com/mrss");
                objX.WriteStartElement("channel");

                if (nuResults != null && nuResults.Usernames != null)
                {
                    foreach (string username in nuResults.Usernames)
                    {
                        User user = User.Load(username);
                        var age = (int) (DateTime.Now.Subtract(user.Birthdate).TotalDays/365.25);
                        var sloganText = "";
                        try
                        {
                            var slogan = user.FetchSlogan();
                            if (slogan.Approved)
                                sloganText = slogan.Value;
                        }
                        catch (NotFoundException) {}
                        string descr = String.Format(Lang.Trans("{0} ({1}/{2})\n{3}"),
                                                     username, user.Gender, age, sloganText);

                        objX.WriteStartElement("item");
                        objX.WriteElementString("title", username);
                        objX.WriteElementString("description", descr);
                        objX.WriteElementString("link", Config.Urls.Home + "/ShowUser.aspx?uid=" + username);
                        objX.WriteStartElement("media:thumbnail");
                        objX.WriteAttributeString("url", ImageHandler.CreateImageUrl(
                            Photo.GetPrimary(username).Id, 150, 150, false, true, true));
                        objX.WriteEndElement();
                        objX.WriteStartElement("media:content");
                        objX.WriteAttributeString("url", ImageHandler.CreateImageUrl(
                            Photo.GetPrimary(username).Id, Config.Photos.PhotoMaxWidth,
                            Config.Photos.PhotoMaxHeight, false, true, true));
                        objX.WriteEndElement();
                        objX.WriteEndElement();
                    }
                }

                objX.WriteEndElement();
                objX.WriteEndElement();
                objX.WriteEndDocument();
                objX.Flush();
                objX.Close();

                xmlResponse = ms.ToArray();

                context.Cache.Insert(cacheKey, xmlResponse, null, DateTime.Now.AddMinutes(10),
                                     Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null);
            }

            context.Response.Clear();
            context.Response.ContentType = "application/xml";
            if (xmlResponse != null) context.Response.BinaryWrite(xmlResponse);
            context.Response.End();
        }
Exemplo n.º 10
0
        private void NewUsersSearch()
        {
            pnlQuickSearch.Visible = false;
            pnlCustomSearch.Visible = false;
            pnlSearchResults.Visible = true;
            pnlDistanceSearch.Visible = false;
            pnlFilterOnline.Visible = false;

            NewUsersSearch nuSearch = new NewUsersSearch();
            nuSearch.PhotoReq = Config.Users.RequirePhotoToShowInNewUsers;
            nuSearch.ProfileReq = Config.Users.RequireProfileToShowInNewUsers;
            nuSearch.UsersSince = CurrentUserSession.PrevLogin;

            UserSearchResults nuResults = nuSearch.GetResults();

            SearchResults.ShowLastOnline = true;
            SearchResults.ShowViewedOn = false;
            SearchResults.ShowDistance = true;

            SearchResults.Results = nuResults;
        }
Exemplo n.º 11
0
 protected void LoadNewMembers()
 {
     NewUsersSearch search = new NewUsersSearch
                                 {
                                     Gender = CurrentUserSession.InterestedIn,
                                     MaxAge =
                                         Math.Min(CurrentUserSession.IncomingMessagesRestrictions.AgeTo,
                                                  Config.Users.MaxAge),
                                     MinAge =
                                         Math.Max(CurrentUserSession.IncomingMessagesRestrictions.AgeFrom,
                                                  Config.Users.MinAge),
                                     UsersCount = RepeatColumns * LimitRows,
                                     LoginCountThreshold = 1,
                                     PageNumber = 0
                                 };
     Results = search.GetResults();
 }
Exemplo n.º 12
0
        private void preparePage()
        {
            #region Show Profile Views

            if (Config.Users.EnableWhoViewedMyProfile)
            {
                lblProfileViews.Text = CurrentUserSession.ProfileViews.ToString();
                if (CurrentUserSession.ProfileViews == 0)
                {
                    lnkViewProfileViewers.Enabled = false;
                }
                liWhoViewedMyProfile.Visible = true;
            }
            else
            {
                liWhoViewedMyProfile.Visible = false;
            }

            #endregion

            #region Show Rating

            if (Config.Ratings.EnableProfileRatings)
            {
                pnlRating.Visible = true;
                try
                {
                    UserRating userRating = UserRating.FetchRating(CurrentUserSession.Username);

                    lblRating.Text = String.Format(
                        Lang.Trans("{0} ({1} votes)"),
                        userRating.AverageVote.ToString("0.00"), userRating.Votes);
                }
                catch (NotFoundException)
                {
                    lblRating.Text = Lang.Trans("no rating");
                }
            }
            else pnlRating.Visible = false;

            #endregion

            #region Show Votes

            if (Config.Ratings.EnableProfileVoting)
            {
                int score = UserVotes.FetchVotesScore(CurrentUserSession.Username);
                if (score > 0)
                {
                    pnlVotes.Visible = true;
                    lblVotes.Text = score.ToString();
                }
                else
                {
                    pnlVotes.Visible = false;
                }
            }
            else
            {
                pnlVotes.Visible = false;
            }

            #endregion

            #region Load New Users

            var nuSearch = new NewUsersSearch
            {
                PhotoReq = Config.Users.RequirePhotoToShowInNewUsers,
                ProfileReq = Config.Users.RequireProfileToShowInNewUsers,
                UsersSince = CurrentUserSession.PrevLogin
            };
            UserSearchResults nuResults = nuSearch.GetResultsFromCache(true);
            if (nuResults == null)
            {
                pnlNewUsers.Visible = false;
            }
            else
            {
                lnkNewUsers.Text = nuResults.Usernames.Length == 1 ?
                    Lang.Trans("There is one new user since your last visit!") :
                    String.Format(Lang.Trans("There are <b>{0}</b> new users since your last visit!"), nuResults.Usernames.Length);

                pnlNewUsers.Visible = true;
            }

            #endregion

            #region Load Online Users

            var oSearch = new OnlineSearch();
            UserSearchResults oResults = oSearch.GetResults();

            if (oResults == null)
            {
                pnlUsersOnline.Visible = false;
            }
            else
            {
                lblUsersOnline.Text = oResults.Usernames.Length == 1 ?
                    Lang.Trans("There is one online user!") :
                    String.Format(Lang.Trans("There are <b>{0}</b> online users!"), oResults.Usernames.Length);

                pnlUsersOnline.Visible = true;
            }

            #endregion

            #region Show Unread Messages

            int unreadMsgCount = Message.SearchUnread(CurrentUserSession.Username).Length;
            if (unreadMsgCount > 0)
            {
                pnlNewMessages.Visible = true;

                if (unreadMsgCount == 1)
                {
                    if (lblNewMessages != null)
                    {
                        lblNewMessages.Text = Lang.Trans("You have <b>1</b> unread message!");
                        lnkNewMessages.Text = Lang.Trans("View");
                    }
                    else
                    {
                        lnkNewMessages.Text = Lang.Trans("You have <b>1</b> unread message!");
                    }
                }
                else
                {
                    if (lblNewMessages != null)
                    {
                        lblNewMessages.Text = String.Format(
                            Lang.Trans("You have <b>{0}</b> unread messages!"), unreadMsgCount);
                        lnkNewMessages.Text = Lang.Trans("View");
                    }
                    else
                    {
                        lnkNewMessages.Text = String.Format(
                            Lang.Trans("You have <b>{0}</b> unread messages!"), unreadMsgCount);
                    }
                }
            }
            else
            {
                pnlNewMessages.Visible = false;
            }

            #endregion

            #region Show Status text

            if (Config.Users.EnableUserStatusText)
            {
                pnlStatusText.Visible = !Config.Misc.SiteIsPaid || Classes.User.IsPaidMember(CurrentUserSession.Username);
                lblStatusText.Text = Server.HtmlEncode(CurrentUserSession.StatusText) ?? "Not set".Translate();
            }

            #endregion
        }
Exemplo n.º 13
0
        private void preparePage()
        {
            string youHaveStrTrans = Lang.Trans("You have");
            string thereAreTrans = Lang.Trans("There are");

            #region Load Photo

            Photo primaryPhoto = null;
            bool hasPhoto = false;
            try
            {
                primaryPhoto = _currentUserSession.GetPrimaryPhoto();
                hasPhoto = primaryPhoto != null && primaryPhoto.Approved ? true : false;
            }
            catch (NotFoundException)
            {
            }
            catch (Exception err)
            {
                if (Page is PageBase)
                    ((PageBase)Page).Log(err);
            }

            #region Check _currentUserSession.Gender and set photoId

            int photoId = hasPhoto ? primaryPhoto.Id : ImageHandler.GetPhotoIdByGender(_currentUserSession.Gender);

            #endregion

            if (false) //Config.Photos.EnablePhotoStack)
            {
                imgPhoto.ImageUrl = ImageHandler.CreateImageStackUrl(_currentUserSession.Username, 200, 150);
            }
            else
            {
                if (!hasPhoto && _currentUserSession.FacebookID.HasValue && _currentUserSession.FacebookID.Value > 0)
                {
                    imgPhoto.ImageUrl = ImageHandler.CreateFacebookImageUrl(_currentUserSession.FacebookID.Value,
                                                                            ImageHandler.eFacebookImageType.Normal);
                    
                }
                else
                {
                    imgPhoto.ImageUrl = ImageHandler.CreateImageUrl(photoId, 90, 90,
                                                            photoId <= 0, true, true);
                }
            }

            #endregion

            #region Show Profile Views

            bool isShowProfileViews = Config.Users.EnableWhoViewedMyProfile && _currentUserSession.ProfileViews > 0;
            lblProfileViews.Text = isShowProfileViews ? _currentUserSession.ProfileViews.ToString() : "";
            lnkViewProfileViewers.Visible = isShowProfileViews;
            liWhoViewedMyProfile.Visible = isShowProfileViews;
            
            #endregion

            #region Show Rating

            if (Config.Ratings.EnableProfileRatings)
            {
                pnlRating.Visible = true;
                try
                {
                    UserRating userRating = UserRating.FetchRating(_currentUserSession.Username);

                    lblRating.Text = String.Format(
                        Lang.Trans("{0} ({1} votes)"),
                        userRating.AverageVote.ToString("0.00"), userRating.Votes);
                }
                catch (NotFoundException)
                {
                    lblRating.Text = Lang.Trans("no rating");
                }
            }
            else pnlRating.Visible = false;

            #endregion

            #region Show Votes

            if (Config.Ratings.EnableProfileVoting)
            {
                int score = UserVotes.FetchVotesScore(_currentUserSession.Username);
                pnlVotes.Visible = (score > 0);
                lblVotes.Text = score.ToString();
            }
            else
            {
                pnlVotes.Visible = false;
            }

            #endregion

            #region Load New Users

            var nuSearch = new NewUsersSearch
                               {
                                   PhotoReq = Config.Users.RequirePhotoToShowInNewUsers,
                                   ProfileReq = Config.Users.RequireProfileToShowInNewUsers,
                                   UsersSince = _currentUserSession.PrevLogin,
                                   LoginCountThreshold = 1
                               };
            UserSearchResults nuResults = nuSearch.GetResultsFromCache(true);
            pnlNewUsers.Visible = (nuResults != null);
            if (pnlNewUsers.Visible)
            {
                lnkNewUsers.Text = nuResults.Usernames.Length == 1
                                       ? Lang.Trans("There is one new user since your last visit!")
                                       : thereAreTrans + AsBoldHtmlStr(nuResults.Usernames.Length) +
                                           Lang.Trans("new users since your last visit!");
            }
            #endregion

            #region Load Online Users

            var oSearch = new OnlineSearch();
            UserSearchResults oResults = oSearch.GetResults();
            pnlUsersOnline.Visible = (oResults != null);

            if (pnlUsersOnline.Visible)
            {
                lblUsersOnline.Text = oResults.Usernames.Length == 1
                                          ? Lang.Trans("There is one online registered user!")
                                          : thereAreTrans + AsBoldHtmlStr(oResults.Usernames.Length) + Lang.Trans("online registered users!");
            }
            #endregion

            #region Show users broadcasting video

            if (Config.Misc.EnableProfileVideoBroadcast)
            {
                var vbSearch = new VideoBroadcastingSearch();
                UserSearchResults vbResults = vbSearch.GetResults();

                bool hasResults = (vbResults != null);
                pnlUsersBroadcasting.Visible = hasResults;
                if (hasResults)
                {
                    lblUsersBroadcasting.Text = vbResults.Usernames.Length == 1
                                                    ? Lang.Trans("There is one user broadcasting video!")
                                                    : thereAreTrans + AsBoldHtmlStr(vbResults.Usernames.Length)+ Lang.Trans("users broadcasting video!");
                }
            }
            else
            {
                pnlUsersBroadcasting.Visible = false;
            }
            #endregion
            /*
            #region Load Blocked Users

            int blockedUsers = Classes.User.FetchBlockedUsers(_currentUserSession.Username).Count;
            bool hasBlockedUsers = blockedUsers != 0;
            pnlBlockedUsers.Visible = hasBlockedUsers;
            if (hasBlockedUsers)
            {
                lblBlockedUsers.Text = blockedUsers == 1
                                           ? Lang.Trans("There is one blocked user!")
                                           : thereAreTrans + AsBoldHtmlStr(blockedUsers)+Lang.Trans("blocked users!");
            }
            #endregion
            */
            #region Show Unread Messages

            bool hasUnreadMsgs = Message.SearchUnread(_currentUserSession.Username) != null;
            pnlNewMessages.Visible = hasUnreadMsgs;
            if (hasUnreadMsgs)
            {
                int unreadMsgCount = Message.SearchUnread(_currentUserSession.Username).Length;
                lnkNewMessages.Text = Lang.Trans("View");
                lblNewMessages.Text = unreadMsgCount == 1
                                          ? Lang.Trans("You have <b>1</b> unread message!")
                                          : youHaveStrTrans + AsBoldHtmlStr(unreadMsgCount) + Lang.Trans("unread messages!");
            }

            #endregion

            #region Show Relationship Requests

            if (Config.Users.EnableRelationshipStatus)
            {
                int relationshipRequests = Relationship.FetchRequests(_currentUserSession.Username).Length;
                bool hasRelReq = relationshipRequests > 0;
                pnlRelationshipRequests.Visible = hasRelReq;
                if (hasRelReq)
                {
                    lnkRelationshipRequests.Text = Lang.Trans("View");
                    lblRelationshipRequests.Text = relationshipRequests == 1
                                               ? Lang.Trans("You have <b>1</b> relationship request!")
                                               : youHaveStrTrans+ AsBoldHtmlStr(relationshipRequests)+ Lang.Trans("relationship requests!");
                }
            }
            else pnlRelationshipRequests.Visible = false;

            #endregion

            #region Show Friend Requests

            int friendRequests = Classes.User.FetchOpenFriendshipRequestsToUsernme(_currentUserSession.Username).Length;
            if (friendRequests > 0)
            {
                pnlFriendsRequests.Visible = true;

                if (friendRequests == 1)
                {
                    if (lblFriendsRequests != null)
                    {
                        lblFriendsRequests.Text = Lang.Trans("You have <b>1</b> friend request!");
                        lnkFriendsRequests.Text = Lang.Trans("View");
                    }
                    else
                    {
                        lnkFriendsRequests.Text = Lang.Trans("You have <b>1</b> friend request!");
                    }
                }
                else
                {
                    if (lblFriendsRequests != null)
                    {
                        lblFriendsRequests.Text = String.Format(
                            Lang.Trans("You have <b>{0}</b> friend requests!"), friendRequests);
                        lnkFriendsRequests.Text = Lang.Trans("View");
                    }
                    else
                    {
                        lnkFriendsRequests.Text = String.Format(
                            Lang.Trans("You have <b>{0}</b> friend requests!"), friendRequests);
                    }
                }
            }
            else
            {
                pnlFriendsRequests.Visible = false;
            }

            #endregion

            #region Show contest rankings

            if (Config.Ratings.EnablePhotoContests)
            {
                PhotoContestEntry[] entries = PhotoContestEntry.Load(null, null, _currentUserSession.Username, null);
                if (entries != null && entries.Length > 0)
                {
                    var dtRanks = new DataTable();
                    dtRanks.Columns.Add("Rank", typeof(int));
                    dtRanks.Columns.Add("ContestName", typeof(string));

                    foreach (PhotoContestEntry entry in entries)
                    {
                        int rank = PhotoContestEntry.FindRank(entry.ContestId, entry.Id);
                        if (rank > 0)
                        {
                            PhotoContest contest = PhotoContest.Load(entry.ContestId);
                            if (contest.DateEnds.HasValue && contest.DateEnds < DateTime.Now) continue;

                            dtRanks.Rows.Add(new object[] { rank, contest.Name });
                        }
                    }

                    if (dtRanks.Rows.Count > 0)
                    {
                        rptContestsRanks.DataSource = dtRanks;
                        rptContestsRanks.DataBind();
                        rptContestsRanks.Visible = true;
                    }
                }
            }

            #endregion

            #region Show Pending Invitations

            if (Config.Groups.EnableGroups)
            {
                int pendingInvitations = Group.FetchPendingInvitations(_currentUserSession.Username);
                bool hasPendingInv = (pendingInvitations > 0);
                pnlPendingInvitations.Visible = hasPendingInv;
                if (hasPendingInv)
                {
                    lnkPendingInvitations.Text = Lang.Trans("View");
                    lblPendingInvitatinos.Text = (pendingInvitations == 1)
                        ? Lang.Trans("You have <b>1</b> pending invitation!")    
                        : youHaveStrTrans + String.Format(" <b>{0}</b> ", pendingInvitations)+Lang.Trans("pending invitations!");
                }
            }
            #endregion

            #region Show group topic subscriptions

            if (Config.Groups.EnableGroups)
            {
                DataTable dtGroupTopicSubscriptions = new DataTable("GroupTopicSubscriptions");

                dtGroupTopicSubscriptions.Columns.Add("GroupTopicID");
                dtGroupTopicSubscriptions.Columns.Add("GroupTopicName");
                dtGroupTopicSubscriptions.Columns.Add("GroupID");
                dtGroupTopicSubscriptions.Columns.Add("GroupName");

                GroupTopic[] groupTopics =
                    GroupTopic.FetchUpdatedGroupTopicsUserHasSubscribedTo(_currentUserSession.Username);

                foreach (GroupTopic groupTopic in groupTopics)
                {
                    Group group = Group.Fetch(groupTopic.GroupID);

                    if (group != null)
                    {
                        dtGroupTopicSubscriptions.Rows.Add(new object[]
                                                           {
                                                               groupTopic.ID, groupTopic.Name, group.ID, group.Name
                                                           });
                    }
                }

                rptGroupTopicSubscriptions.DataSource = dtGroupTopicSubscriptions;
                rptGroupTopicSubscriptions.DataBind();
                rptGroupTopicSubscriptions.Visible = dtGroupTopicSubscriptions.Rows.Count > 0;
            }

            #endregion

            #region Show Status text

            if (Config.Users.EnableUserStatusText)
            {
                pnlStatusText.Visible = !Config.Misc.SiteIsPaid || Classes.User.IsPaidMember(_currentUserSession.Username);
                lblStatusText.Text = Server.HtmlEncode(_currentUserSession.StatusText) ?? "Not set".Translate();
            }

            #endregion

            #region Notify Facebook for the changed status

            //long? facebookID = _currentUserSession.FacebookID;
            //if (Config.Misc.EnableFacebookIntegration && facebookID.HasValue && facebookID > 0)
            //{
            //    divFaceBookStatusUpdate.Visible = true;
            //    pnlInviteFriendsFromFacebook.Visible = true;
            //}

            #endregion
        }
Exemplo n.º 14
0
        private void ProcessNewUsersSearchRequest()
        {
            NewUsersSearch nuSearch = new NewUsersSearch();
            nuSearch.PhotoReq = Config.Users.RequirePhotoToShowInNewUsers;
            nuSearch.ProfileReq = Config.Users.RequireProfileToShowInNewUsers;
            nuSearch.UsersSince = CurrentUserSession.PrevLogin;

            UserSearchResults nuResults = nuSearch.GetResults();

            SearchResults.ShowLastOnline = true;
            SearchResults.ShowViewedOn = false;
            SearchResults.ShowDistance = true;

            SearchResults.Results = nuResults;
        }
Exemplo n.º 15
0
        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);

            #region Load New Users (thumbnails)

            DataTable dtNewUsers;

            string cacheKey = String.Format("NewUsersWebPart_{0}_{1}_{2}_{3}",
                Gender == User.eGenderSearch.All ? "null" : Gender.ToString(), MinAge, MaxAge, LimitRows);
            if (Cache[cacheKey] != null && Cache[cacheKey] is DataTable && Session["theme"] == null)
            {
                dtNewUsers = (DataTable)Cache[cacheKey];
            }
            else
            {
                NewUsersSearch nuSearch = new NewUsersSearch();
                nuSearch.PhotoReq = Config.Users.RequirePhotoToShowInNewUsers;
                nuSearch.ProfileReq = Config.Users.RequireProfileToShowInNewUsers;
                nuSearch.UsersCount = dlNewMembers.RepeatColumns * LimitRows;
                nuSearch.MinAge = MinAge;
                nuSearch.MaxAge = MaxAge;
                if (Gender != User.eGenderSearch.All)
                    nuSearch.Gender = (User.eGender) Gender;
                UserSearchResults nuResults = nuSearch.GetResults();
                dtNewUsers = new DataTable();
                dtNewUsers.Columns.Add("Username");
                dtNewUsers.Columns.Add("ImageId", typeof(int));
                dtNewUsers.Columns.Add("Age");
                dtNewUsers.Columns.Add("Age2");
                dtNewUsers.Columns.Add("Gender");
                dtNewUsers.Columns.Add("City");
                if (nuResults != null && nuResults.Usernames != null)
                {
                    foreach (string username in nuResults.Usernames)
                    {
                        int imageId = 0;
                        User user = null;

                        try
                        {
                            user = User.Load(username);
                        }
                        catch (NotFoundException)
                        {
                            continue;
                        }

                        try
                        {
                            imageId = Photo.GetPrimary(username).Id;
                        }
                        catch (NotFoundException)
                        {
                            imageId = ImageHandler.GetPhotoIdByGender(user.Gender);
                        }

                        string age = !Config.Users.DisableAgeInformation ? user.Age.ToString() : String.Empty;
                        string age2 = !Config.Users.DisableAgeInformation ? user.Age2.ToString() : String.Empty;
                        string gender = !Config.Users.DisableGenderInformation ? user.Gender.ToString() : String.Empty;
                        dtNewUsers.Rows.Add(
                            new object[]
                                {
                                    username, imageId, age, user.Gender == User.eGender.Couple ? age2 : String.Empty, gender, user.City
                                });
                    }

                    Cache.Add(cacheKey, dtNewUsers, null, DateTime.Now.Add(TimeSpan.FromMinutes(10)),
                              Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null);
                }
            }

            dlNewMembers.DataSource = dtNewUsers;
            dlNewMembers.DataBind();

            #endregion
        }
Exemplo n.º 16
0
        private void prepareStats()
        {
            #region New registrations chart

            ChartNewRegistrations.Series["Default"]["DrawingStyle"] = "Cylinder";
            ChartNewRegistrations.Titles["Title1"].Text =
                Lang.TransA("At-a-glance: New registrations for the past 30 days");
            ChartNewRegistrations.Series["Default"].ToolTip = String.Format("#VALX\n#VALY {0}",
                                                                            "Registrations".TranslateA());
            NewUsersSearch nuSearch = new NewUsersSearch();
            nuSearch.ProfileReq = false;
            nuSearch.UsersSince = DateTime.Now.AddDays(-31);
            UserSearchResults nuResults = nuSearch.GetResults();

            List<string> xValues = new List<string>();
            List<int> yValues = new List<int>();
            List<int> newUsersCount = new List<int>(30);
            newUsersCount.AddRange(new int[30]);

            int max = 10;
            if (nuResults != null)
            {
                foreach (string username in nuResults.Usernames)
                {
                    User user = Classes.User.Load(username);
                    int dayIndex = 30 - DateTime.Now.Subtract(user.UserSince).Days;
                    if (dayIndex < 0 || dayIndex >= newUsersCount.Count) continue;
                    newUsersCount[dayIndex]++;
                }

                for (int i = 0; i < 30; i++)
                {
                    int registrations = newUsersCount[i];
                    xValues.Add(DateTime.Now.AddDays(i - 30).ToString("d MMM"));
                    yValues.Add(registrations);

                    if (max < registrations) max = registrations;
                }
            }

            ChartNewRegistrations.Series["Default"].Points.DataBindXY(xValues, yValues);

            #endregion

            #region Total users chart

            if (Config.Users.DisableGenderInformation)
            {
                ChartTotalRegistrations.Visible = false;
            }
            else
            {
                ChartTotalRegistrations.Titles["Title1"].Text = Lang.TransA("At-a-glance: Total Registrations");
                ChartTotalRegistrations.Series["Default"]["PieLabelStyle"] = "Outside";

                BasicSearch search = new BasicSearch();
                search.hasAnswer_isSet = false;
                search.hasPhoto_isSet = false;
                search.interestedIn_isSet = false;
                search.Gender = Classes.User.eGender.Male;
                UserSearchResults results = search.GetResults();
                int count = results == null ? 0 : results.Usernames.Length;

                xValues = new List<string>();
                yValues = new List<int>();

                xValues.Add(String.Format(Lang.TransA("{0} Males"), count));
                yValues.Add(count);

                search.Gender = Classes.User.eGender.Female;
                results = search.GetResults();
                count = results == null || results.Usernames == null ? 0 : results.Usernames.Length;
                xValues.Add(String.Format(Lang.TransA("{0} Females"), count));
                yValues.Add(count);

                if (Config.Users.CouplesSupport)
                {
                    search.Gender = Classes.User.eGender.Couple;
                    results = search.GetResults();
                    count = results == null || results.Usernames == null ? 0 : results.Usernames.Length;
                    if (count != 0)
                    {
                        xValues.Add(String.Format(Lang.TransA("{0} Couples"), count));
                        yValues.Add(count);
                    }
                }

                ChartTotalRegistrations.Series["Default"].Points.DataBindXY(xValues, yValues);
            }

            #endregion
        }