Ejemplo n.º 1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(Data.DeviceType))
            {
                Response.Redirect($"get_device_info?url={Request.Url.PathAndQuery.Substring(1)}");
            }
            //If there is an access token, get the token & it's data.
            //If there is no access token, check that the user is logged in.
            var mediaShareId = Request.QueryString["share"];

            mediaView            = new MediaView();
            NewMenu.SelectedPage = PageIndex.View;
            NewMenu.Share        = true;

            if (Request.QueryString["id"] == null)
            {
                if (Request.QueryString["share"] == null)
                {
                    Response.Redirect("home");
                }
                else
                {
                    myMediaShare = new MediaShare(new MediaShareId(Request.QueryString["share"].ToString()));
                    shareId      = myMediaShare.Id;
                    try
                    {
                        myMediaShare.Select();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }

                    if (myMediaShare.MediaId == null)
                    {
                        if (Request.QueryString["alert"] == null)
                        {
                            Response.Redirect($"view?share={mediaShareId}&alert=P101");
                        }
                    }

                    myUser = Account.PublicPage(this, myMediaShare, mediaView, Data.DeviceType);
                }
            }
            else
            {
                myUser = Account.SecurePage(this, Data.DeviceType, Request, mediaView);
                if (myUser != null)
                {
                    if (mediaView.Media != null)
                    {
                        if (mediaView.Media.MyMediaShare != null)
                        {
                            myMediaShare = mediaView.Media.MyMediaShare;

                            if (myMediaShare == null)
                            {
                                myMediaShare = new MediaShare(mediaView.Media.Id, myUser.Id);
                                myMediaShare.Insert();
                            }
                        }

                        mediaView.Media.View(myUser);
                    }
                }
            }

            if (mediaView.Media == null)
            {
                if (Request.QueryString["alert"] == null)
                {
                    Response.Redirect($"view?id={Request.QueryString["id"]}&alert=P101");
                }
                else
                {
                    MediaContainer.Visible    = false;
                    MediaTagContainer.Visible = false;
                }
            }
            else
            {
                viewCount.InnerText = $"{mediaView.Media.ViewCount} view(s)";
                ShareLink.Value     = Request.Url.GetLeftPart(UriPartial.Authority) + "/view?share=" +
                                      myMediaShare.Id;
            }

            NewMenu.LoggedInUser = myUser;
            NewMenu.HighlightButtonsForPage(PageIndex.Tag, "View");

            //Get the image which the user is trying to access, and display it on the screen.
            if (mediaView.Media == null || string.IsNullOrEmpty(mediaView.Media.Compressed))
            {
                //ShareLinkContainer.Visible = false;
                Button_ViewAlbum.Visible = false;
                if (ShareUserSuspendedError.Visible == false)
                {
                    UploadUserSuspendedError.Visible = true;
                }
            }
            else
            {
                List <ViewTagControl> ViewTagControls = new List <ViewTagControl>();
                Page httpHandler = (Page)HttpContext.Current.Handler;
                foreach (MediaTagPair mediaTagPair in mediaView.Media.MediaTagPairs)
                {
                    ViewTagControl mediaTagPairViewControl = (ViewTagControl)httpHandler.LoadControl("~/Custom_Controls/Media/ViewTagControl.ascx");
                    mediaTagPairViewControl.MyMedia   = mediaView.Media;
                    mediaTagPairViewControl.MyTagPair = mediaTagPair;
                    mediaTagPairViewControl.UpdateLink();
                    ViewTagControls.Add(mediaTagPairViewControl);
                }

                foreach (MediaUserPair mediaUserPair in mediaView.Media.MediaUserPairs)
                {
                    ViewTagControl mediaUserPairViewControl = (ViewTagControl)httpHandler.LoadControl("~/Custom_Controls/Media/ViewTagControl.ascx");
                    mediaUserPairViewControl.MyMedia    = mediaView.Media;
                    mediaUserPairViewControl.MyUserPair = mediaUserPair;
                    mediaUserPairViewControl.UpdateLink();
                    ViewTagControls.Add(mediaUserPairViewControl);
                }

                foreach (ViewTagControl control in ViewTagControls.OrderBy(x => x.Name))
                {
                    MediaTagContainer.Controls.Add(control);
                }

                if (mediaView.Media.AlbumId == 0)
                {
                    Button_ViewAlbum.Visible = false;
                }

                ImageTitle.InnerText = mediaView.Media.Title;
                Page.Title           = mediaView.Media.Title;

                if (mediaView.Media.Type == "image")
                {
                    ImagePreview.Src = mediaView.Media.Compressed;
                }

                Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:title\" content=\"{0}\" />", mediaView.Media.Title)));
                //This will break youtube videos which have not had their thumbnail regenerated
                Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:image\" content=\"{0}\" />", mediaView.Media.Compressed.Contains("https://lh3.googleusercontent.com") ? mediaView.Media.Compressed : string.Format("{0}/{1}", Request.Url.GetLeftPart(UriPartial.Authority), mediaView.Media.Compressed))));
                Page.Header.Controls.Add(new LiteralControl("<meta property=\"og:type\" content=\"website\" />"));
                Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:url\" content=\"{0}\" />", Request.Url.ToString())));
                Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:description\" content=\"{0}\" />", mediaView.Media.Description)));
                Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:alt\" content=\"{0}\" />", mediaView.Media.Alt)));
                Page.Header.Controls.Add(new LiteralControl("<meta property=\"fb:app_id\" content=\"521313871968697\" />"));

                if (Request.QueryString["share"] == null)
                {
                    Button_ViewAlbum.Visible = false;

                    MediaShare myMediaShare;


                    myMediaShare = mediaView.Media.MyMediaShare;
                    if (myMediaShare == null)
                    {
                        myMediaShare = new MediaShare(mediaView.Media.Id, myUser.Id);
                        myMediaShare.Insert();
                    }
                }
            }

            if (mediaView.Video != null)
            {
                if (mediaView.Video.VideoData.XScale != default && mediaView.Video.VideoData.YScale != default && mediaView.Video.IsPortrait())
                {
                    video_container.Attributes.Remove("class");
                    video_container.Attributes.Add("class", "media-viewer-portrait");

                    TitleContainer.Attributes.Remove("class");
                    TitleContainer.Attributes.Add("class", "media-viewer-title-portrait background-lightest");
                    //TitleContainer.Attributes.Add("class", "background-lightest");
                }
            }

            if (mediaView.Image != null)
            {
                if (mediaView.Image.IsPortrait())
                {
                    ImagePreview.Attributes.Remove("class");
                    ImagePreview.Attributes.Add("class", "media-viewer-portrait");

                    //MediaContainer.Attributes.Remove("class");
                    //MediaContainer.Attributes.Add("class", "media-viewer-portrait");

                    TitleContainer.Attributes.Remove("class");
                    TitleContainer.Attributes.Add("class", "media-viewer-title-portrait background-lightest");
                    //TitleContainer.Attributes.Add("class", "background-lightest");
                }
            }
        }
Ejemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //If there is an access token, get the token & it's data.
            //If there is no access token, check that the user is logged in.
            var accessToken = Request.QueryString["share"];



            if (Request.QueryString["id"] == null)
            {
                if (Request.QueryString["share"] == null)
                {
                    Response.Redirect("home");
                }
                else
                {
                    myUser       = ParsnipData.Accounts.User.LogIn();
                    myMediaShare = new MediaShare(new MediaShareId(Request.QueryString["share"].ToString()));
                    shareId      = myMediaShare.Id;
                    try
                    {
                        myMediaShare.Select();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }

                    if (string.IsNullOrEmpty(myMediaShare.MediaId.ToString()))
                    {
                        new LogEntry(Log.Debug)
                        {
                            text = $"Someone tried to access share {myMediaShare.Id}. Access was denied because the person who created this link has been suspended."
                        };
                        ShareUserSuspendedError.Visible = true;
                    }
                    else
                    {
                        if (!IsPostBack)
                        {
                            myMediaShare.TimesUsed++;
                            myMediaShare.View(myUser);
                        }

                        User createdBy = ParsnipData.Accounts.User.Select(myMediaShare.UserId);

                        var myUserId = myUser == null ? default : myUser.Id;
                                       myImage        = ParsnipData.Media.Image.Select(myMediaShare.MediaId, myUserId);
                                       myVideo        = Video.Select(myMediaShare.MediaId, myUserId);
                                       myYoutubeVideo = Youtube.Select(myMediaShare.MediaId, myUserId);


                                       new LogEntry(Log.Debug)
                                       {
                                           text = string.Format("{0}'s link to {1} got another hit! Now up to {2}", createdBy.FullName, MyMedia.Title, myMediaShare.TimesUsed)
                                       };
                    }
                }
            }
            else
            {
                myUser = Account.SecurePage("view?id=" + Request.QueryString["id"], this, Data.DeviceType);

                myVideo        = Video.Select(new MediaId(Request.QueryString["id"]), myUser.Id);
                myYoutubeVideo = Youtube.Select(new MediaId(Request.QueryString["id"]), myUser.Id);

                myImage = ParsnipData.Media.Image.Select(new MediaId(Request.QueryString["id"].ToString()), myUser == null ? default : myUser.Id);


                if (MyMedia != null && MyMedia.MyMediaShare != null)
                {
                    myMediaShare = MyMedia.MyMediaShare;

                    if (myMediaShare == null)
                    {
                        myMediaShare = new MediaShare(MyMedia.Id, myUser.Id);
                        myMediaShare.Insert();
                    }
                }
            }

            ShareLink.Value = Request.Url.GetLeftPart(UriPartial.Authority) + "/view?share=" +
                              myMediaShare.Id;



            //Get the image which the user is trying to access, and display it on the screen.
            if (MyMedia == null || string.IsNullOrEmpty(MyMedia.Compressed))
            {
                //ShareLinkContainer.Visible = false;
                if (ShareUserSuspendedError.Visible == false)
                {
                    UploadUserSuspendedError.Visible = true;
                }
            }
            else
            {
                ImageTitle.InnerText = MyMedia.Title;
                Page.Title           = MyMedia.Title;

                if (MyMedia.Type == "image")
                {
                    ImagePreview.Src = MyMedia.Compressed;
                }

                Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:title\" content=\"{0}\" />", MyMedia.Title)));
                //This will break youtube videos which have not had their thumbnail regenerated
                Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:image\" content=\"{0}\" />", MyMedia.Compressed.Contains("https://lh3.googleusercontent.com") ? MyMedia.Compressed : string.Format("{0}/{1}", Request.Url.GetLeftPart(UriPartial.Authority), MyMedia.Compressed))));
                Page.Header.Controls.Add(new LiteralControl("<meta property=\"og:type\" content=\"website\" />"));
                Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:url\" content=\"{0}\" />", Request.Url.ToString())));
                Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:description\" content=\"{0}\" />", MyMedia.Description)));
                Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:alt\" content=\"{0}\" />", MyMedia.Alt)));
                Page.Header.Controls.Add(new LiteralControl("<meta property=\"fb:app_id\" content=\"521313871968697\" />"));

                if (Request.QueryString["share"] == null)
                {
                    MediaShare myMediaShare;


                    myMediaShare = MyMedia.MyMediaShare;
                    if (myMediaShare == null)
                    {
                        myMediaShare = new MediaShare(MyMedia.Id, myUser.Id);
                        myMediaShare.Insert();
                    }
                }
            }
        }