예제 #1
0
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            DataRow member = lw.Members.Security.User.LoggedInUser(this);

            int privacy = (int)member["Privacy"];
            int test    = 0;

            PrivacySettingsManager psMgr = new PrivacySettingsManager();

            DataView view = new DataView(psMgr.Table, "Property='" + For + "'", "", DataViewRowState.CurrentRows);

            if (view.Count > 0)
            {
                test = (int)view[0]["Value"];
            }

            writer.Write("<div class=\"privacy-lock\">");
            //	writer.Write("<a href=\"#privacy\">Privacy</a>");
            writer.Write("<ul>");

            foreach (PrivacyOptions option in Enum.GetValues(typeof(PrivacyOptions)))
            {
                writer.Write(string.Format("<li><input type=\"radio\" name=\"privacy_{2}\" value=\"{0}\" id=\"{2}_{0}\" {3}/>" +
                                           "<label for=\"{2}_{0}\">{1}</label></li>",
                                           option.ToString(),
                                           EnumHelper.GetDescription(option),
                                           For,
                                           IsSelected(option, test, privacy)? " checked": ""
                                           ));
            }
            writer.Write("</ul>");
            writer.Write("</div>");

            base.Render(writer);
        }
예제 #2
0
        public override void DataBind()
        {
            if (bound)
            {
                return;
            }
            bound = true;

            this.HRef = "";

            DataRow memberRow = DataBinder.Eval(this.NamingContainer, "DataItem") as DataRow;

            if (memberRow == null)
            {
                DataRowView drv = DataBinder.Eval(this.NamingContainer, "DataItem") as DataRowView;
                if (drv == null)
                {
                    this.HRef = "";
                    return;
                }
                memberRow = drv.Row;
            }

            int privacy  = (int)memberRow["Privacy"];
            int MemberId = (int)memberRow["MemberId"];

            PrivacySettingsManager psMgr = new PrivacySettingsManager();

            if (psMgr.CanAccess(memberRow, "VisitorsAccess", this))
            {
                Config cfg = new Config();

                this.HRef = string.Format("{0}/{1}/{2}",
                                          WebContext.Root,
                                          cfg.GetKey(MembersSettings.ProfilesDirectory),
                                          memberRow["UserName"]);
                this.Title = string.Format("{0}", memberRow["Name"]);
            }
            base.DataBind();
        }
예제 #3
0
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            if (!_bound)
            {
                this.DataBind();
            }



            if (memberRow == null)
            {
                return;
            }


            MembersManager mMgr = new MembersManager();


            //why we have to get the member row again??? i couldn't find a reason.
            //memberRow = mMgr.GetMemberProfile((int)memberRow["MemberId"]);


            string picture = "";

            if (memberRow["Picture"] != System.DBNull.Value &&
                !String.IsNullOrEmpty(memberRow["Picture"].ToString()))
            {
                picture = memberRow["Picture"].ToString();
            }
            int MemberId = (int)memberRow["MemberId"];
            int privacy  = 0;

            if (memberRow["Privacy"] != DBNull.Value)
            {
                privacy = (int)memberRow["Privacy"];
            }

            string image = "";

            PrivacySettingsManager psMgr = new PrivacySettingsManager();

            if (MemberId != WebContext.Profile.UserId)
            {
                switch (psMgr.CheckMemberProperty("ProfilePicture", privacy))
                {
                case PrivacyOptions.OnlyMe:
                    picture = "";
                    break;

                case PrivacyOptions.Friends:
                    lw.Base.CustomPage page = this.Page as lw.Base.CustomPage;

                    DataTable MyFriends = FriendsManager.GetMyFriends(page);

                    if (MyFriends.Select(string.Format("FriendId={0} and Status=1", memberRow["MemberId"])).Length == 0)
                    {
                        picture = "";
                    }
                    break;

                default:
                    break;
                }
                if (!Visible)
                {
                    return;
                }
            }

            if (picture != "")
            {
                if (useGUID)
                {
                    image = string.Format("{0}/{2}/{1}",
                                          MembersSettings.MemberPicturesFolder, picture, StringUtils.ToURL(memberRow["Geuid"]));
                }
                else
                {
                    image = string.Format("{0}/{2}/{1}",
                                          MembersSettings.MemberPicturesFolder, picture, StringUtils.ToURL(memberRow["UserName"]));
                }
            }
            else
            {
                if (NoPicture != "")
                {
                    image     = NoPicture;
                    this._Src = NoPicture;
                }

                else
                {
                    if (NoFPicture != "" && NoMPicture != "")
                    {
                        Gender?_gender = Gender.Male;
                        try
                        {
                            _gender = (lw.Members.Gender)Enum.Parse(typeof(lw.Members.Gender), memberRow["Gender"].ToString());
                        }
                        catch
                        {
                        }


                        if (_gender == lw.Members.Gender.Male)
                        {
                            image     = NoMPicture;
                            this._Src = NoMPicture;
                        }
                        else
                        {
                            image     = NoFPicture;
                            this._Src = NoFPicture;
                        }
                    }
                }
            }

            //this.Alt = memberRow["Name"].ToString();
            this.Alt = memberRow["FirstName"].ToString() + " " + memberRow["LastName"].ToString();

            switch (MemberImageType)
            {
            case ImageType.Crop:
            case ImageType.Resize:
                if (_width > 0)
                {
                    if (MemberImageType == ImageType.Resize)
                    {
                        this._Src = string.Format("{4}/prv/handlers/ImageResizer.ashx?src={0}&width={1}&height={2}&fillColor={3}",
                                                  image, _Width, _Height, FillColor.ToArgb(), WebContext.Root);
                    }
                    else
                    {
                        this._Src = string.Format("{4}/prv/handlers/ImageCropper.ashx?src={0}&width={1}&height={2}&fillColor={3}",
                                                  image, _Width, _Height, FillColor.ToArgb());
                    }
                }
                else
                {
                    this._Src = string.Format("{0}/{1}", WebContext.Root, image);
                }
                break;

            case ImageType.NewResize:
                this._Src = string.Format("{3}prv/handlers/ResizeImage.ashx?img={0}&w={1}&h={2}",
                                          image, _Width, _Height, WebContext.Root);
                break;

            case ImageType.Large:
                this._Src = image;
                break;

            case ImageType.Medium:
                if (picture != "")
                {
                    this._Src = image.ToLower().Replace(".jpg", "-m.jpg");
                }
                else
                {
                    this._Src = NoPicture;
                }
                break;

            case ImageType.Thumb:
                if (picture != "")
                {
                    this._Src = image.ToLower().Replace(".jpg", "-s.jpg?" + DateTime.Now.ToFileTime());                             // Datetime added to prevent cashing
                }
                else
                {
                    this._Src = NoPicture;
                }
                break;

            default:
                break;
            }
            if (this._Src != "")
            {
                this.Src = WebContext.Root + "/" + this._Src;
                base.Render(writer);
            }
        }
예제 #4
0
        public override void DataBind()
        {
            if (_bound)
            {
                return;
            }
            _bound = true;
            DataRow memberRow = DataBinder.Eval(this.NamingContainer, "DataItem") as DataRow;

            if (memberRow == null)
            {
                DataRowView memberRowView = DataBinder.Eval(this.NamingContainer, "DataItem") as DataRowView;
                if (memberRowView != null)
                {
                    memberRow = memberRowView.Row;
                }
            }
            if (memberRow == null)
            {
                return;
            }

            int privacy = (int)memberRow["Privacy"];

            if (memberRow == null)
            {
                DataRowView drv = DataBinder.Eval(this.NamingContainer, "DataItem") as DataRowView;
                if (drv == null)
                {
                    ErrorContext.Add("invalid-dataitem", "Invalid Container for: " + Property);
                    this.Visible = false;
                    return;
                }
                memberRow = drv.Row;
            }
            object obj = null;

            if (memberRow.Table.Columns.Contains(Property))
            {
                obj = memberRow[Property];
            }

            PrivacySettingsManager psMgr = new PrivacySettingsManager();

            this.Visible = psMgr.CanAccess(memberRow, Property, this);

            if (!this.Visible)
            {
                return;
            }

            int MemberId = (int)memberRow["MemberId"];

            switch (Property)
            {
            /*case "Network":
             *      MemberNetworksManager nMgr = new MemberNetworksManager();
             *      IQueryable<MemberNetworksView> networks = nMgr.GetMemberNetworksView((int)memberRow["MemberId"]);
             *      if (networks.Count() > 0)
             *      {
             *              obj = networks.First().Name;
             *      }
             *      break;
             */
            case "Gender":
                if (memberRow["Gender"] != DBNull.Value && memberRow["Gender"] != null)
                {
                    Gender gender = (Gender)Enum.Parse(typeof(Gender), memberRow["Gender"].ToString());
                    obj = gender.ToString();
                }
                break;

            case "Email":
                break;

            case "StudentID":
                if (MemberId != WebContext.Profile.UserId)
                {
                    this.Visible = false;
                }
                break;

            default:
                break;
            }

            if (obj != null && obj.ToString().Trim() != "")
            {
                obj = string.Format(Format, obj);

                this.Text = StringUtils.AddSup(obj.ToString());
            }
            base.DataBind();

            _iVisible = this.Visible && !String.IsNullOrWhiteSpace(this.Text);
        }