protected void Page_Load(object sender, EventArgs e) { //REQUIRED TO VIEW POSTBACK form1.Action = Request.RawUrl; if (Request.QueryString["id"] == null) { myUser = Account.SecurePage("edit_media", this, Data.DeviceType); } else if (Request.QueryString["tag"] == null) { myUser = Account.SecurePage($"edit_media?id={Request.QueryString["id"]}", this, Data.DeviceType); } else { myUser = Account.SecurePage($"edit_media?id={Request.QueryString["id"]}&tag={Request.QueryString["tag"]}", this, Data.DeviceType); } if (Request.QueryString["removetag"] == "true") { MediaTagPair.Delete(new MediaId(Request.QueryString["id"]), Convert.ToInt32(Request.QueryString["tag"])); if (Request.QueryString["tag"] == null) { Response.Redirect($"edit_media?id={Request.QueryString["id"]}"); } else { Response.Redirect($"edit_media?id={Request.QueryString["id"]}&tag={Request.QueryString["tag"]}"); } } else if (Request.QueryString["removeusertag"] == "true") { MediaUserPair.Delete(new MediaId(Request.QueryString["id"]), Convert.ToInt32(Request.QueryString["userid"])); if (Request.QueryString["userid"] == null) { Response.Redirect($"edit_media?id={Request.QueryString["id"]}"); } else { Response.Redirect($"edit_media?id={Request.QueryString["id"]}&userid={Request.QueryString["userid"]}"); } } if (!IsPostBack) { InputTitleTwo.Focus(); } if (Request.QueryString["id"] != null) { string id = Request.QueryString["id"]; MyYoutubeVideo = ParsnipData.Media.Youtube.Select(new MediaId(Request.QueryString["id"]), myUser.Id); if (MyYoutubeVideo == null) { MyVideo = ParsnipData.Media.Video.Select(new MediaId(Request.QueryString["id"]), myUser.Id); } if (MyYoutubeVideo == null && MyVideo == null) { MyImage = ParsnipData.Media.Image.Select(new MediaId(Request.QueryString["id"]), myUser.Id); } if (MyYoutubeVideo != null) { MyYoutubeVideo = Youtube.Select(new MediaId(Request.QueryString["id"]), myUser.Id); MediaShare myMediaShare = MyYoutubeVideo.MyMediaShare; if (myMediaShare == null) { myMediaShare = new MediaShare(MyYoutubeVideo.Id, myUser.Id); myMediaShare.Insert(); } ShareLink.Value = Request.Url.GetLeftPart(UriPartial.Authority) + "/view?share=" + myMediaShare.Id; input_date_media_captured.Value = MyYoutubeVideo.DateTimeCaptured.ToString(); youtube_video.Attributes.Add("data-id", MyYoutubeVideo.DataId); youtube_video_container.Visible = true; Page.Title = "Edit Youtube Video"; } else if (MyVideo != null) { MyVideo = Video.Select(new MediaId(Request.QueryString["id"]), myUser.Id); MediaShare myMediaShare = MyVideo.MyMediaShare; if (myMediaShare == null) { myMediaShare = new MediaShare(MyVideo.Id, myUser.Id); myMediaShare.Insert(); } ShareLink.Value = Request.Url.GetLeftPart(UriPartial.Authority) + "/view?share=" + myMediaShare.Id; thumbnail.Src = MyVideo.Compressed; input_date_media_captured.Value = MyVideo.DateTimeCaptured.ToString(); a_play_video.HRef = string.Format("../../view?id={0}", MyVideo.Id); a_play_video.Visible = true; Page.Title = "Edit Video"; } else if (MyImage != null) { myMediaShare = MyImage.MyMediaShare; if (myMediaShare == null) { myMediaShare = new MediaShare(MyImage.Id, myUser.Id); myMediaShare.Insert(); } ShareLink.Value = Request.Url.GetLeftPart(UriPartial.Authority) + "/view?share=" + myMediaShare.Id; ImagePreview.ImageUrl = MyImage.Compressed; input_date_media_captured.Value = MyImage.DateTimeCaptured.ToString(); ImagePreview.Visible = true; Page.Title = "Edit Image"; } else { Response.Redirect("home"); } Page httpHandler = (Page)HttpContext.Current.Handler; foreach (MediaTagPair mediaTagPair in MyMedia.MediaTagPairs) { MediaTagPairControl mediaTagPairControl = (MediaTagPairControl)httpHandler.LoadControl("~/Custom_Controls/Media/MediaTagPairControl.ascx"); mediaTagPairControl.MyMedia = MyMedia; mediaTagPairControl.MyPair = mediaTagPair; MediaTagContainer.Controls.Add(mediaTagPairControl); } var tagParam = Request.QueryString["tag"]; var userTagParam = Request.QueryString["user"]; MediaTag OriginalTag = string.IsNullOrEmpty(tagParam) ? null : new MediaTag(Convert.ToInt32(tagParam)); if (OriginalTag == null && userTagParam == null) { OriginalAlbumRedirect = "home?focus=" + MyMedia.Id.ToString(); } else if (userTagParam == null) { switch (OriginalTag.Id) { case default(int): Debug.WriteLine(string.Format("The album id {0} was not recognised!", MyMedia.AlbumId)); OriginalAlbumRedirect = "home?error=nomediaalbum4"; break; default: OriginalAlbumRedirect = $"tag?id={OriginalTag.Id}&focus={MyMedia.Id}"; break; } } else { OriginalAlbumRedirect = $"tag?user={userTagParam}&focus={MyMedia.Id}"; } NewAlbumsDropDown.Items.Clear(); if (myUser.AccountType == "admin") { NewAlbumsDropDown.Items.Add(new ListItem() { Value = "0", Text = "(No tag selected)" }); } foreach (MediaTag tempMediaTag in MediaTag.GetAllTags()) { NewAlbumsDropDown.Items.Add(new ListItem() { Value = Convert.ToString(tempMediaTag.Id), Text = tempMediaTag.Name }); } var AlbumIds = MyMedia.SelectMediaTagIds(); if (Request.QueryString["delete"] != null) { bool deleteSuccess; if (myUser.AccountType == "admin") { MyMedia.Delete(); deleteSuccess = true; } else { new LogEntry(Log.General) { text = string.Format("{0} tried to delete media called \"{1}\", but {2} was not allowed " + "because {2} is not an admin", myUser.FullName, MyMedia.Title, myUser.SubjectiveGenderPronoun) }; deleteSuccess = false; } string Redirect; switch (Convert.ToInt16(NewAlbumsDropDown.SelectedValue)) { case default(int): Debug.WriteLine("No album selected. Must be none! Redirecting to manage photos..."); Redirect = "home"; break; default: Redirect = $"tag?id={OriginalTag.Id}&focus={MyMedia.Id}"; break; } if (deleteSuccess) { new LogEntry(Log.General) { text = string.Format("{0} deleted media called \"{1}\"", myUser.FullName, MyMedia.Title) }; Response.Redirect(Redirect); } else { if (Redirect.Contains("?")) { Response.Redirect(Redirect + "&error=access"); } else { Response.Redirect(Redirect + "?error=access"); } } } if (MyMedia.Title != null && !string.IsNullOrEmpty(MyMedia.Title) && !string.IsNullOrWhiteSpace(MyMedia.Title)) { Debug.WriteLine("Updating title from media object: " + MyMedia.Title); InputTitleTwo.Text = MyMedia.Title; } if (myUser.AccountType == "admin") { DateCapturedDiv.Visible = true; btn_AdminDelete.Visible = true; } if (MyMedia.CreatedById.ToString() != myUser.Id.ToString()) { if (myUser.AccountType == "admin" || myUser.AccountType == "media") { string accountType = myUser.AccountType == "admin" ? "admin" : "approved media editor"; new LogEntry(Log.General) { text = string.Format("{0} started editing media called \"{1}\". {2} does not own the " + "media but {3} is allowed since {3} is an {4}", myUser.FullName, MyMedia.Title, myUser.SubjectiveGenderPronoun.First().ToString().ToUpper() + myUser.SubjectiveGenderPronoun.Substring(1), myUser.SubjectiveGenderPronoun, accountType) }; } else { new LogEntry(Log.General) { text = string.Format("{0} attempted to edit media called \"{1}\" which {2} " + "did not own. Access was DENIED!", myUser.FullName, MyMedia.Title, myUser.SubjectiveGenderPronoun) }; Response.Redirect(OriginalAlbumRedirect + "&error=0"); } } Debug.WriteLine("Setting media directory to: " + MyMedia.Compressed); } else { Response.Redirect("home"); } }