/// <summary> /// Adds a tag to the media. /// </summary> public MediaTag AddMediaTag(Media media, Page page, MediaTagType type = MediaTagType.DepictedEntity, string coords = null) { var ptype = page.Type; if (type == MediaTagType.DepictedEntity) { if (ptype != PageType.Person && ptype != PageType.Pet && ptype != PageType.Other) { throw new ArgumentException("Only Pet, Person and Other types can be marked as DepictedEntity."); } } if (type == MediaTagType.Location && ptype != PageType.Location) { throw new ArgumentException("Only Location page can be marked as Location."); } if (type == MediaTagType.Event && ptype != PageType.Event) { throw new ArgumentException("Only Event page can be marked as Event."); } var tag = new MediaTag { Id = Guid.NewGuid(), Media = media, Object = page, Type = type, Coordinates = coords }; _db.MediaTags.Add(tag); return(tag); }
public mpInterface.IMediaAttribute GetAttribute(MediaTag attribute) { int attribute_index = -1; string attribute_name = null; for (int i = 0; i < this.media_item.attributeCount; i++) { string attname = this.media_item.getAttributeName(i); if (attname == MediaAttribute.AttributeToString(attribute)) { attribute_index = i; attribute_name = attname; } } if (attribute_name == null) { new MediaAttribute(attribute, null); } string attribute_value = this.media_item.getItemInfo(attribute_name); MediaTag media_att = MediaTag.AcquisitionTime; return(MediaAttribute.StringToAttribute(attribute_name, out media_att) ? new MediaAttribute(attribute, attribute_value) : new MediaAttribute(attribute, null)); }
public static bool StringToAttribute(string att_str, out MediaTag attribute) { if (att_str != null) { if (att_str.Contains('/')) { att_str = att_str.Replace('/', '_'); } //try parsing MediaTag[] all_media_tags = Enum.GetValues(typeof(MediaTag)) as MediaTag[]; if (all_media_tags != null) { foreach (var media_tag in all_media_tags) { if (media_tag.ToString() == att_str) { attribute = media_tag; return(true); } } } } attribute = MediaTag.AcquisitionTime; return(false); }
public MediaTagViewModel(MediaTag tag, EventHandler deleted = null) { Tag = tag; if (deleted != null) { Deleted += deleted; } }
private void UpdateModifiedInformation(MediaTag mediaTag) { var media = mediaTag.Media; media.ModifiedOn = DateTime.Now; media.ModifiedByUser = securityService.CurrentPrincipalName; unitOfWork.Session.SaveOrUpdate(media); }
public void Initialise(User loggedInUser, MediaTag myMediaTag, Page page) { myPage = page; LoggedInUser = loggedInUser; MyMediaTag = myMediaTag; if (LoggedInUser.AccountType == "admin" || LoggedInUser.AccountType == "member") { UploadDiv.Style.Clear(); } }
protected void BtnDeleteUploads_Click(object sender, EventArgs e) { //if(selectedUserId != 0) //MediaTag.DeleteCreatedByUser(selectedUserId); if ((Convert.ToInt32(SelectUser.SelectedValue) != 0)) { MediaTag.DeleteCreatedByUser(Convert.ToInt32(SelectUser.SelectedValue)); } }
/// <summary> /// Сохранить данные из Instagram в базу /// </summary> public static int SaveMediaTagsToDataBase(int user_id, string hashtag, AppEnums.UpdateHashTagType updtype = AppEnums.UpdateHashTagType.Recent30) { int res = 0; if (string.IsNullOrEmpty(hashtag)) { return(res); } List <MediaTag> SavedMediaTagResults = GetDataBaseMediaTags(user_id, hashtag, AppEnums.SelectMediaAttr.HideNothing); //использовать max_tag_id для добовления к основному запросу &max_tag_id= , чтобы уменьшить кол-во загружаемых элементов int min_tag_id = 0; if (updtype == AppEnums.UpdateHashTagType.FromLast30) { min_tag_id = (SavedMediaTagResults.Count == 0 ? 0 : SavedMediaTagResults.OrderBy(x => x.MEDIA_ID).Last().MEDIA_ID); } //instagram_media_id = next_max_id+'_'+instagram_user_id //TODO если у hashtag в табл HASHTAG есть непустое поле NEXT_MAX_ID(добавить)? т.е. уже сохр в базу(если 1-ый раз , то null), то в LoadMediaByHashTag доб-ть это поле и там формир-ть соотв запрос + &max_tag_id= List <Media> NewMediaTagResult = LoadMediaByHashTag(hashtag, min_tag_id); foreach (var mr in NewMediaTagResult) { var MediaExists = (SavedMediaTagResults.Count == 0 ? null : SavedMediaTagResults.FirstOrDefault(x => (x.INSTAGRAM_MEDIA_ID == mr.Id))); if (MediaExists == null) { try { var NewMediaTag = new MediaTag() { INSTAGRAM_MEDIA_ID = mr.Id, INSTAGRAM_MEDIA_CREATED_TIME = mr.CreatedTime, INSTAGRAM_MEDIA_LOW_RES_URL = mr.Images.LowResolution.Url, INSTAGRAM_MEDIA_STANDARD_RES_URL = mr.Images.StandardResolution.Url, INSTAGRAM_MEDIA_THUMBNAIL_URL = mr.Images.Thumbnail.Url, INSTAGRAM_USER_ID = mr.User.Id.ToString(), INSTAGRAM_USER_NAME = mr.User.Username, INSTAGRAM_USER_PROFILEPICTURE = mr.User.ProfilePicture, INSTAGRAM_CAPTION = AppUtils.ConvertToString(mr.Caption.Text), USER_ID = user_id, TAG_CAPTION = hashtag, ORDER_ID = 0, BAN = (InstagramMVC.DataManagers.UserManager.CanUserModerateShow(user_id)), DELETED = false }; InsertMediaTag(NewMediaTag); res += 1; } catch { } } } return(res); }
public static string AttributeToString(MediaTag attribute) { string tag_string = attribute.ToString(); if (tag_string.Contains("_")) { tag_string = tag_string.Replace('_', '/'); } return(tag_string); }
protected void Page_Load(object sender, EventArgs e) { if (string.IsNullOrEmpty(Request.QueryString["id"]) && string.IsNullOrEmpty(Request.QueryString["user"])) { Response.Redirect("home"); } else { myTag = MediaTag.Select(Convert.ToInt32(Request.QueryString["id"])); myTagUser = ParsnipData.Accounts.User.Select(Convert.ToInt32(Request.QueryString["user"])); string focus = Request.QueryString["focus"]; if (myTagUser == null) { if (string.IsNullOrEmpty(focus)) { myUser = Account.SecurePage($"tag?id={myTag.Id}", this, Data.DeviceType, "admin"); } else { myUser = Account.SecurePage($"tag?id={myTag.Id}&{focus}", this, Data.DeviceType, "admin"); } } else { if (string.IsNullOrEmpty(focus)) { myUser = Account.SecurePage($"tag?user={myTagUser.Id}", this, Data.DeviceType, "admin"); } else { myUser = Account.SecurePage($"tag?user={myTagUser.Id}&{focus}", this, Data.DeviceType, "admin"); } } } if (myTagUser == null) { Page.Title = $"Tag: {myTag.Name}"; } else { Page.Title = $"Tag: {myTagUser.Forename}"; } TagName.InnerText = string.IsNullOrEmpty(myTag.Name) ? myTagUser.FullName : myTag.Name; if (myTag != null) { UploadMediaControl.Initialise(myUser, this); } }
protected void AddMediaTagPair_Click(object sender, EventArgs e) { int selectedTag = Convert.ToInt16(Request["NewAlbumsDropDown"]); if (selectedTag != default) { MediaTag myMediaTag = new MediaTag(selectedTag); MediaTagPair newMediaTagPair = new MediaTagPair(MyMedia, myMediaTag, myUser); newMediaTagPair.Insert(); Response.Redirect(Page.Request.Url.ToString(), true); } }
public static MediaTag GetMediaTagByID(int media_id) { MediaTag res = new MediaTag(); using (var con = new SqlConnection(AppConst.ConnStr)) { using (var cmd = new SqlCommand("SELECT * FROM MEDIATAG WHERE MEDIA_ID=@media_id", con)) { cmd.Parameters.AddWithValue("@media_id", media_id); con.Open(); try { var rdr = cmd.ExecuteReader(); if (rdr.HasRows) { rdr.Read(); res.MEDIA_ID = Convert.ToInt32(rdr["MEDIA_ID"]); res.USER_ID = Convert.ToInt32(rdr["USER_ID"]); res.ORDER_ID = Convert.ToInt32(rdr["ORDER_ID"]); res.TAG_CAPTION = Convert.ToString(rdr["TAG_CAPTION"]); res.INSTAGRAM_MEDIA_ID = Convert.ToString(rdr["INSTAGRAM_MEDIA_ID"]); res.INSTAGRAM_MEDIA_CREATED_TIME = (rdr["INSTAGRAM_MEDIA_CREATED_TIME"] == DBNull.Value ? DateTime.Now : Convert.ToDateTime(rdr["INSTAGRAM_MEDIA_CREATED_TIME"])); res.INSTAGRAM_MEDIA_LOW_RES_URL = Convert.ToString(rdr["INSTAGRAM_MEDIA_LOW_RES_URL"]); res.INSTAGRAM_MEDIA_STANDARD_RES_URL = Convert.ToString(rdr["INSTAGRAM_MEDIA_STANDARD_RES_URL"]); res.INSTAGRAM_MEDIA_THUMBNAIL_URL = Convert.ToString(rdr["INSTAGRAM_MEDIA_THUMBNAIL_URL"]); res.INSTAGRAM_USER_ID = Convert.ToString(rdr["INSTAGRAM_USER_ID"]); res.INSTAGRAM_USER_NAME = Convert.ToString(rdr["INSTAGRAM_USER_NAME"]); res.INSTAGRAM_USER_PROFILEPICTURE = Convert.ToString(rdr["INSTAGRAM_USER_PROFILEPICTURE"]); res.INSTAGRAM_CAPTION = Convert.ToString(rdr["INSTAGRAM_CAPTION"]); res.BAN = Convert.ToBoolean(rdr["BAN"]); res.DELETED = Convert.ToBoolean(rdr["DELETED"]); } else { res = null; } } catch (Exception ex) { res = null; } con.Close(); } } return(res); }
/// <summary> /// Maps a media tag to a page description. /// </summary> private PageTitleVM GetPageTitle(MediaTag tag) { if (tag == null) { return(null); } return(new PageTitleVM { Id = tag.ObjectId, Title = tag.Object?.Title ?? tag.ObjectTitle, Key = tag.Object?.Key, Type = tag.Object?.Type ?? PageType.Other }); }
public static List <MediaControl> GetAlbumAsMediaControls(MediaTag mediaTag) { var mediaControls = new List <MediaControl>(); Page httpHandler = (Page)HttpContext.Current.Handler; int loggedInUserId = ParsnipData.Accounts.User.LogIn().Id; foreach (ParsnipData.Media.Media temp in mediaTag.GetAllMedia(loggedInUserId)) { MediaControl myMediaControl = (MediaControl)httpHandler.LoadControl("~/Custom_Controls/Media/MediaControl.ascx"); myMediaControl.MyMediaTag = mediaTag; myMediaControl.MyMedia = temp; mediaControls.Add(myMediaControl); } return(mediaControls.OrderByDescending(mediaControl => mediaControl.MyMedia.DateTimeCaptured).ToList()); }
public mpInterface.IMediaAttribute[] GetAllAttributes() { List <mpInterface.IMediaAttribute> temp = new List <mpInterface.IMediaAttribute>(); for (int i = 0; i < this.media_item.attributeCount; i++) { string attribute_name = this.media_item.getAttributeName(i); MediaTag media_att = MediaTag.AcquisitionTime; if (MediaAttribute.StringToAttribute(attribute_name, out media_att)) { string attribute_value = this.media_item.getItemInfo(attribute_name); temp.Add(new MediaAttribute(media_att, attribute_value)); } } return(temp.ToArray()); }
/// <summary> /// Creates event \ location tags for the uploaded media. /// </summary> private async Task <List <MediaTag> > GetTagsForUploadedMedia(MediaUploadRequestVM vm) { var result = new List <MediaTag>(); var locId = vm.Location.TryParse <Guid>(); var evtId = vm.Event.TryParse <Guid>(); var tagIds = new[] { locId, evtId } .Where(x => x != Guid.Empty) .ToList(); var existing = tagIds.Any() ? await _db.Pages .Where(x => tagIds.Contains(x.Id) && !x.IsDeleted) .ToHashSetAsync(x => x.Id) : null; TryAddTag(vm.Location, locId, MediaTagType.Location); TryAddTag(vm.Event, evtId, MediaTagType.Event); return(result); void TryAddTag(string title, Guid id, MediaTagType type) { if (string.IsNullOrEmpty(title)) { return; } var tag = new MediaTag { Type = type }; if (existing?.Contains(id) == true) { tag.ObjectId = id; } else { tag.ObjectTitle = title; } result.Add(tag); } }
/// <summary> /// TODO ---> DOES NOT HANDLE FOLLOWING USERS YET!! /// method for seeding db with SeedData dummy data /// </summary> /// <param name="context"></param> public void SeedDb() { SeedData seedData = new SeedData(); //first add all the users foreach (var user in seedData.Users) { _context.Users.Add(user); } _context.SaveChanges(); //next all the medias for (int i = 0; i < seedData.Medias.Count; i++) { _context.Medias.Add(seedData.Medias[i]); } _context.SaveChanges(); //then add all the tags for (int i = 0; i < seedData.Tags.Count; i++) { _context.Tags.Add(seedData.Tags[i]); } _context.SaveChanges(); //then use tags and medias to add all the mediatags for (int i = 0; i < seedData.Medias.Count; i++) { MediaTag m = new MediaTag(seedData.Tags[i], seedData.Medias[i]); _context.MediaTags.Add(m); } _context.SaveChanges(); //grab the newly added users var u = _context.Users.ToList(); //add the media and users to the blurbs and add the blurbs for (int i = 0; i < seedData.Blurbs.Count; i++) { seedData.Blurbs[i].Media = seedData.Medias[i]; seedData.Blurbs[i].User = u[i]; _context.Blurbs.Add(seedData.Blurbs[i]); } _context.SaveChanges(); }
/// <summary> /// Добавить медиатег в базу /// </summary> public static SQLReturnResult InsertMediaTag(MediaTag mediatag) { SQLReturnResult res = new SQLReturnResult(); using (var con = new SqlConnection(AppConst.ConnStr)) { using (var cmd = new SqlCommand(@"INSERT MEDIATAG ([USER_ID], ORDER_ID, TAG_CAPTION, INSTAGRAM_MEDIA_ID, INSTAGRAM_MEDIA_CREATED_TIME, INSTAGRAM_MEDIA_LOW_RES_URL, INSTAGRAM_MEDIA_STANDARD_RES_URL, INSTAGRAM_MEDIA_THUMBNAIL_URL, INSTAGRAM_USER_ID, INSTAGRAM_USER_NAME, INSTAGRAM_USER_PROFILEPICTURE, INSTAGRAM_CAPTION, BAN, DELETED) VALUES (@user_id, @order_id, @hashtag, @i_media_id, @i_media_created_time, @i_media_low_res_url, @i_media_standard_res_url, @i_media_thumnail_res_url, @i_user_id, @i_user_name, @i_user_profilepicture, @i_caption, @ban, @deleted)", con)) { cmd.Parameters.AddWithValue("@user_id", mediatag.USER_ID); cmd.Parameters.AddWithValue("@order_id", mediatag.ORDER_ID); cmd.Parameters.AddWithValue("@hashtag", mediatag.TAG_CAPTION); cmd.Parameters.AddWithValue("@i_media_id", mediatag.INSTAGRAM_MEDIA_ID); cmd.Parameters.AddWithValue("@i_media_created_time", mediatag.INSTAGRAM_MEDIA_CREATED_TIME); cmd.Parameters.AddWithValue("@i_media_low_res_url", mediatag.INSTAGRAM_MEDIA_LOW_RES_URL); cmd.Parameters.AddWithValue("@i_media_standard_res_url", mediatag.INSTAGRAM_MEDIA_STANDARD_RES_URL); cmd.Parameters.AddWithValue("@i_media_thumnail_res_url", mediatag.INSTAGRAM_MEDIA_THUMBNAIL_URL); cmd.Parameters.AddWithValue("@i_user_id", mediatag.INSTAGRAM_USER_ID); cmd.Parameters.AddWithValue("@i_user_name", mediatag.INSTAGRAM_USER_NAME); cmd.Parameters.AddWithValue("@i_user_profilepicture", mediatag.INSTAGRAM_USER_PROFILEPICTURE); cmd.Parameters.AddWithValue("@i_caption", mediatag.INSTAGRAM_CAPTION); cmd.Parameters.AddWithValue("@ban", mediatag.BAN); cmd.Parameters.AddWithValue("@deleted", mediatag.DELETED); con.Open(); try { cmd.ExecuteNonQuery(); } catch (Exception ex) { res.Result = AppEnums.SQLExecResult.SyntaxError; res.Message = ex.Message; } con.Close(); } } return(res); }
public void UpdateObjectFromFields() { IEnumerable <Tag> tags = TagsSelector.GetTags(); selectedItem.Media.MediaTags.Clear(); var counter = 0; foreach (Tag tag in tags) { if (!selectedItem.Media.MediaTags.Select(i => i.Tag).Contains(tag)) { if (tag.ID == 0) { TagsMapper.Insert(tag); } if (tag.ID != 0) { var newMediaTag = new MediaTag(); newMediaTag.MediaID = selectedItem.MediaID; newMediaTag.TagID = tag.ID; newMediaTag.OrderIndex = counter; selectedItem.Media.MediaTags.Add(newMediaTag); } counter++; } } if (selectedItem.Media != null) { TagsSelector.SetMedia(selectedItem.Media); } }
/// <summary> /// Checks whether the specified tag lies within this instance of coupled tags. /// </summary> /// <param name="tag">The tag to verify.</param> /// <returns>True if the tag is present in this coupled tag.</returns> public bool Satisfies(MediaTag tag) { return(Satisfies(tag.Name)); }
public void UpdateMediaTag(MediaItem mediaItem, MediaTag tag) { string relativePath = GenerateRelativeMediaTagUrl(mediaItem.Url); relativePath = relativePath + "/" + tag.TagId.ToString(); QueryParameterList paramaters = new QueryParameterList(); paramaters.Add(new QueryParameter(_format, "xml")); if (tag.TopLeftX == -1) { paramaters.Add(new QueryParameter("topleftx", tag.TopLeftX.ToString())); } if (tag.TopLeftY == -1) { paramaters.Add(new QueryParameter("toplefty", tag.TopLeftY.ToString())); } if (tag.BottomRightX == -1) { paramaters.Add(new QueryParameter("bottomrightx", tag.BottomRightX.ToString())); } if (tag.BottomRightY == -1) { paramaters.Add(new QueryParameter("bottomrighty", tag.BottomRightY.ToString())); } if (string.IsNullOrEmpty(tag.Name) == false) { paramaters.Add(new QueryParameter("tag", tag.Name)); } if (string.IsNullOrEmpty(tag.Contact) == false) { paramaters.Add(new QueryParameter("contact", tag.Contact)); } if (string.IsNullOrEmpty(tag.Url) == false) { paramaters.Add(new QueryParameter("tagurl", tag.Url)); } string updateMediaTagUrl = OAuth.GenerateURL(ApiUrl, relativePath, _updateMediaTagMethod, Token, paramaters); XmlResponseMessage updateMediaTagResponseMessage = GetXmlResponseMessageFromUrl(updateMediaTagUrl, _updateMediaTagMethod); }
protected void Page_Load(object sender, EventArgs e) { if (string.IsNullOrEmpty(Request.QueryString["id"]) && string.IsNullOrEmpty(Request.QueryString["user"])) { Response.Redirect("home"); } else { var tagId = Convert.ToInt32(Request.QueryString["id"]); var taggedUserId = Convert.ToInt32(Request.QueryString["user"]); if (tagId != default) { myTag = MediaTag.Select(tagId); } if (taggedUserId != default) { myTaggedUser = ParsnipData.Accounts.User.Select(taggedUserId); } string focus = Request.QueryString["focus"]; if (myTag != null) { if (string.IsNullOrEmpty(focus)) { myUser = Account.SecurePage(this, Data.DeviceType, "user", $"#{myTag.Name}"); } else { myUser = Account.SecurePage(this, Data.DeviceType, "user", $"#{myTag.Name}"); } } else if (myTaggedUser != null) { if (string.IsNullOrEmpty(focus)) { myUser = Account.SecurePage(this, Data.DeviceType, "user", $"@{myTaggedUser.Username}"); } else { myUser = Account.SecurePage(this, Data.DeviceType, "user", $"@{myTaggedUser.Username}"); } } else { var param = ""; if (tagId != default) { param = $"id={tagId}"; } if (taggedUserId != default) { param = $"user={taggedUserId}"; } myUser = Account.SecurePage(this, Data.DeviceType, "user", $"No tag found"); param += string.IsNullOrEmpty(param) ? "" : "&"; if (string.IsNullOrEmpty(Request.QueryString["alert"])) { Response.Redirect($"tag?{param}alert=P104"); } } if (myTag != null) { TagName.InnerText = $"#{myTag.Name}"; TagDescription.InnerText = myTag.Description; } else if (myTaggedUser != null) { TagName.InnerText = $"@{myTaggedUser.Username}"; TagDescription.InnerText = $"Everything {myTaggedUser.Forename} has been tagged in"; } NewMenu.LoggedInUser = myUser; NewMenu.Upload = true; if (myTag != null || myTaggedUser != null) { var tagText = myTag == null ? $"@{myTaggedUser.Username}" : $"#{myTag.Name}"; NewMenu.HighlightButtonsForPage(PageIndex.Tag, tagText); } else { NewMenu.SelectedPage = PageIndex.Tag; } } if (myTag != null) { Page.Header.Controls.Add(new LiteralControl($"<meta property=\"og:title\" content=\"{myTag.Name}\" />")); Page.Header.Controls.Add(new LiteralControl($"<meta property=\"og:description\" content=\"{myTag.Description}\" />")); //Page.Header.Controls.Add(new LiteralControl($"<meta property=\"og:image\" content=\"{Request.Url.GetLeftPart(UriPartial.Authority)}/Resources/Media/Images/Local/Dirt_On_You.jpg\" />")); Page.Header.Controls.Add(new LiteralControl(string.Format("<meta property=\"og:alt\" content=\"{0}\" />", myTag.Description))); Page.Title = $"Tag: {myTag.Name}"; } else if (myTaggedUser != null) { Page.Header.Controls.Add(new LiteralControl($"<meta property=\"og:title\" content=\"{myTaggedUser.FullName} was tagged in...\" />")); Page.Header.Controls.Add(new LiteralControl($"<meta property=\"og:description\" content=\"See pictures and videos which {myTaggedUser.FullName} has been tagged in!\" />")); //Page.Header.Controls.Add(new LiteralControl($"<meta property=\"og:image\" content=\"{Request.Url.GetLeftPart(UriPartial.Authority)}/Resources/Media/Images/Local/Dirt_On_You.jpg\" />")); Page.Header.Controls.Add(new LiteralControl(string.Format($"<meta property=\"og:alt\" content=\"See pictures and videos which {myTaggedUser.FullName} has been tagged in!\" />"))); Page.Title = $"Tag: {myTaggedUser.Forename}"; } //This will break youtube videos which have not had their thumbnail regenerated 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("<meta property=\"fb:app_id\" content=\"521313871968697\" />")); if (myTag != null) { UploadMediaControl.Initialise(myUser, myTag, this); } else if (myTaggedUser != null) { UploadMediaControl.Initialise(myUser, myTaggedUser.Id, this); } else { UploadMediaControl.Initialise(myUser, this); } }
public void DeleteMediaTag(MediaItem mediaItem, MediaTag tag) { string relativePath = GenerateRelativeMediaTagUrl(mediaItem.Url); relativePath = relativePath + "/" + tag.TagId.ToString(); QueryParameterList paramaters = new QueryParameterList(); paramaters.Add(new QueryParameter(_format, "xml")); string deleteMediaTagUrl = OAuth.GenerateURL(ApiUrl, relativePath, _deleteMediaTagMethod, Token, paramaters); XmlResponseMessage deleteMediaTagResponseMessage = GetXmlResponseMessageFromUrl(deleteMediaTagUrl, _deleteMediaTagMethod); }
public MediaAttribute(MediaTag attribute, string attribute_value) { this.AttributeType = attribute; this.AttributeValue = attribute_value == null ? "" : attribute_value; }
private void UpdateModifiedInformation(MediaTag mediaTag) { UpdateModifiedInformation(mediaTag.Media); }
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"); } }
public void Initialise(User loggedInUser, Page page, MediaTag myMediaTag) { MyMediaTag = myMediaTag; Initialise(loggedInUser, page); }
public void Should_Swap_Original_And_Reuploaded_Entities_Correctly() { var original = TestDataProvider.CreateNewMediaFile(); var newVersion = TestDataProvider.CreateNewMediaFile(); var origTitle = original.Title; var newVersionTitle = newVersion.Title; var cat11 = TestDataProvider.CreateNewCategory(new CategoryTree()); var cat12 = TestDataProvider.CreateNewCategory(new CategoryTree()); var cat21 = TestDataProvider.CreateNewCategory(new CategoryTree()); var mcCat11 = new MediaCategory {Category = cat11, Media = original}; var mcCat12 = new MediaCategory {Category = cat12, Media = original}; var mcCat21 = new MediaCategory { Category = cat21, Media = newVersion }; var tag11 = TestDataProvider.CreateNewTag(); var tag12 = TestDataProvider.CreateNewTag(); var tag21 = TestDataProvider.CreateNewTag(); var mtTag11 = new MediaTag { Tag = tag11, Media = newVersion }; var mtTag12 = new MediaTag { Tag = tag12, Media = newVersion }; var mtTag21 = new MediaTag { Tag = tag21, Media = original }; original.Categories = new List<MediaCategory>(); newVersion.Categories = new List<MediaCategory>(); original.MediaTags = new List<MediaTag>(); newVersion.MediaTags = new List<MediaTag>(); original.Categories.Add(mcCat11); original.Categories.Add(mcCat12); newVersion.Categories.Add(mcCat21); newVersion.MediaTags.Add(mtTag11); newVersion.MediaTags.Add(mtTag12); original.MediaTags.Add(mtTag21); var service = GetMediaFileService(false); service.SwapOriginalMediaWithVersion(original, newVersion); // Ensure etity properies are switched Assert.AreNotEqual(original.Title, newVersion.Title); Assert.AreEqual(origTitle, newVersion.Title); Assert.AreEqual(newVersionTitle, original.Title); // Ensure original entity is set correctly Assert.AreEqual(newVersion.Original, original); // Ensure categories are switched correctly Assert.AreEqual(original.Categories.Count, 1); Assert.AreEqual(newVersion.Categories.Count, 2); Assert.IsTrue(newVersion.Categories.Contains(mcCat11)); Assert.IsTrue(newVersion.Categories.Contains(mcCat12)); Assert.IsTrue(original.Categories.Contains(mcCat21)); // Ensure tags are switched correctly Assert.AreEqual(original.MediaTags.Count, 2); Assert.AreEqual(newVersion.MediaTags.Count, 1); Assert.IsTrue(original.MediaTags.Contains(mtTag11)); Assert.IsTrue(original.MediaTags.Contains(mtTag12)); Assert.IsTrue(newVersion.MediaTags.Contains(mtTag21)); }
public MediaItemList GetAllCurrentUsersMediaWithTag(MediaTag mediaTag) { return GetAllUsersMediaWithTag(CurrentUser.Username, mediaTag); }
protected void Page_Load(object sender, EventArgs e) { var tagParam = Request.QueryString["tag"]; var userTagParam = Request.QueryString["user"]; var Search = Request.QueryString["search"]; Login(); GetMedia(); //CheckPermissions() is dependent on this for CreatedByUserId NewMenu.LoggedInUser = myUser; NewMenu.HighlightButtonsForPage(PageIndex.Tag, "Edit"); MediaTag OriginalTag = string.IsNullOrEmpty(tagParam) ? null : new MediaTag(Convert.ToInt32(tagParam)); GetOriginalRedirect(); CheckPermissions(); string id = Request.QueryString["id"]; if (!string.IsNullOrEmpty(id)) { //REQUIRED TO VIEW POSTBACK form1.Action = Request.RawUrl; if (Request.QueryString["delete"] != null) { DoDeleteMedia(); Response.Redirect(OriginalAlbumRedirect); } CheckForThumbnailUpload(); PopulateTags(); PopulateTagDropDowns(); DisplayMediaAttributes(); if (!IsPostBack) { InputTitleTwo.Focus(); } } else { Response.Redirect("home"); } void Login() { myUser = Account.SecurePage(this, Data.DeviceType); NewMenu.SelectedPage = PageIndex.EditMedia; NewMenu.LoggedInUser = myUser; NewMenu.Share = true; 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?id={Request.QueryString["id"]}"); } else { Response.Redirect($"edit?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?id={Request.QueryString["id"]}"); } else { Response.Redirect($"edit?id={Request.QueryString["id"]}&userid={Request.QueryString["userid"]}"); } } } void GetMedia() { if (!string.IsNullOrWhiteSpace(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; thumbnail.Src = MyYoutubeVideo.Compressed; input_date_media_captured.Value = MyYoutubeVideo.DateTimeCaptured.ToString(); a_play_video.HRef = string.Format("../../view?id={0}", MyYoutubeVideo.Id); a_play_video.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"; if (MyVideo.Thumbnails.Count() > 0) { ThumbnailSelectorContainer.Visible = true; foreach (var control in VideoThumbnailControl.GetVideoAsVideoThumbnailControls(MyVideo)) { control.VideoThumbnailClick += new EventHandler(VideoThumbnail_ButtonClick); ThumbnailSelector.Controls.Add(control); } } } 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(); ImagePreviewContainer.HRef = string.Format("../../view?id={0}", MyImage.Id); ImagePreviewContainer.Visible = true; Page.Title = "Edit Image"; } else { Response.Redirect("myuploads"); } } void PopulateTags() { 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); } foreach (MediaUserPair mediaUserPair in MyMedia.MediaUserPairs) { MediaUserPairControl mediaUserPairControl = (MediaUserPairControl)httpHandler.LoadControl("~/Custom_Controls/Media/MediaUserPairControl.ascx"); mediaUserPairControl.MyMedia = MyMedia; mediaUserPairControl.MyPair = mediaUserPair; UserTagContainer.Controls.Add(mediaUserPairControl); } } void GetOriginalRedirect() { if (OriginalTag == null && tagParam == null && userTagParam == null && MyMedia.AlbumId == default && MyMedia.MediaTagPairs.Count == default && !string.IsNullOrEmpty(OriginalAlbumRedirect)) { OriginalAlbumRedirect = "myuploads?focus=" + MyMedia.Id.ToString(); } else if (!string.IsNullOrEmpty(Search)) { OriginalAlbumRedirect = $"search?text={Search}&focus={MyMedia.Id}"; } else if (OriginalTag != null) { switch (OriginalTag.Id) { case (int)Data.MediaTagIds.Photos: OriginalAlbumRedirect = "photos?focus=" + MyMedia.Id.ToString(); break; case (int)Data.MediaTagIds.Memes: OriginalAlbumRedirect = "memes?focus=" + MyMedia.Id.ToString(); break; case (int)Data.MediaTagIds.Krakow: OriginalAlbumRedirect = "krakow?focus=" + MyMedia.Id.ToString(); break; case (int)Data.MediaTagIds.Videos: OriginalAlbumRedirect = "videos?focus=" + MyMedia.Id.ToString(); break; case (int)Data.MediaTagIds.Portugal: OriginalAlbumRedirect = "portugal?focus=" + MyMedia.Id.ToString(); break; case (int)Data.MediaTagIds.Amsterdam: OriginalAlbumRedirect = "amsterdam?focus=" + MyMedia.Id.ToString(); break; 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 { if (userTagParam != null) { OriginalAlbumRedirect = $"tag?user={userTagParam}&focus={MyMedia.Id}"; } else if (tagParam != null) { OriginalAlbumRedirect = $"tag?id={tagParam}&focus={MyMedia.Id}"; } else { OriginalAlbumRedirect = $"myuploads?focus={MyMedia.Id}"; } //else if (MyMedia.MediaTagPairs.Count != default) // OriginalAlbumRedirect = $"tag?id={MyMedia.MediaTagPairs[0].MediaTag.Id}&focus={MyMedia.Id}"; } } void PopulateTagDropDowns() { NewAlbumsDropDown.Items.Clear(); 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 }); } DropDown_SelectUser.Items.Clear(); foreach (User user in ParsnipData.Accounts.User.GetAllUsers()) { DropDown_SelectUser.Items.Add(new ListItem() { Value = Convert.ToString(user.Id), Text = user.FullName }); } } void DoDeleteMedia() { 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; } } void CheckPermissions() { 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}&alert=P100"); } } } void DisplayMediaAttributes() { if (MyMedia.Title != null && !string.IsNullOrEmpty(MyMedia.Title) && !string.IsNullOrWhiteSpace(MyMedia.Title)) { InputTitleTwo.Text = MyMedia.Title; } if (myUser.AccountType == "admin") { btn_AdminDelete.Visible = true; } if (MyMedia.SearchTerms != null && !string.IsNullOrEmpty(MyMedia.SearchTerms) && !string.IsNullOrWhiteSpace(MyMedia.SearchTerms)) { SearchTerms_Input.Text = MyMedia.SearchTerms; } } void CheckForThumbnailUpload() { if (MyVideo != null) { if (ThumbnailUpload.PostedFile != null && ThumbnailUpload.PostedFile.ContentLength > 0) { var thumbnail = new VideoThumbnail(MyVideo, myUser, ThumbnailUpload.PostedFile); thumbnail.Insert(); Response.Redirect(Page.Request.Url.ToString(), true); } if (MyVideo.Thumbnails.Count > 0 || !MyVideo.Status.Equals(MediaStatus.Complete)) { ThumbnailUploadControl.Visible = true; if (MyVideo.Thumbnails.Count == 0) { ThumbnailsAreProcessing.Visible = true; } } } } }
protected void Page_Load(object sender, EventArgs e) { MOTD.InnerHtml = System.Configuration.ConfigurationManager.AppSettings["MOTD"]; if (string.IsNullOrEmpty(Data.DeviceType)) { Response.Redirect("get_device_info?url=home"); } myUser = Account.PublicPage(this, Data.DeviceType); NewMenu.SelectedPage = PageIndex.Home; if (myUser != null) { NewMenu.LoggedInUser = myUser; NewMenu.Upload = true; } Page httpHandler = (Page)HttpContext.Current.Handler; if (myUser == null) { } //LoginNudge.Visible = true; else { UploadMediaControl.Initialise(myUser, this); if (myUser.AccountType == "admin" || myUser.AccountType == "member" || myUser.AccountType == "media") { uploadForm.Visible = true; UploadButtonPadding.Visible = true; } } new LogEntry(Log.Debug) { Text = string.Format("The home page was accessed by {0} from {1} {2} device.", myUser == null ? "someone who was not logged in" : myUser.Forename, myUser == null ? "their" : myUser.PosessivePronoun, Data.DeviceType) }; //WelcomeLabel.Text = // string.Format("Hiya {0} to the parsnip website!", myUser == null ? // "stranger, welcome" : myUser.Forename + ", welcome back"); if (myUser == null) { MediaTagContainer.InnerHtml = "<label style=\"color:red \">You must <a href=\"login\" style=\"color:blue\">login</a> to see tags!</label>"; } else { List <ViewTagControl> ViewTagControls = new List <ViewTagControl>(); foreach (MediaTag mediaTag in MediaTag.GetAllTags()) { ViewTagControl mediaTagPairViewControl = (ViewTagControl)httpHandler.LoadControl("~/Custom_Controls/Media/ViewTagControl.ascx"); mediaTagPairViewControl.MyTag = mediaTag; mediaTagPairViewControl.UpdateLink(); MediaTagContainer.Controls.Add(mediaTagPairViewControl); ViewTagControls.Add(mediaTagPairViewControl); } foreach (ParsnipData.Accounts.User user in ParsnipData.Accounts.User.GetAllUsers()) { ViewTagControl mediaUserPairViewControl = (ViewTagControl)httpHandler.LoadControl("~/Custom_Controls/Media/ViewTagControl.ascx"); mediaUserPairViewControl.MyUser = user; mediaUserPairViewControl.UpdateLink(); MediaTagContainer.Controls.Add(mediaUserPairViewControl); ViewTagControls.Add(mediaUserPairViewControl); } foreach (ViewTagControl control in ViewTagControls.OrderBy(x => x.Name)) { MediaTagContainer.Controls.Add(control); } } var myImage = new ParsnipData.Media.Image(); myImage.Id = MediaId.NewMediaId(); myImage.Compressed = "Resources/Media/Images/Local/Dirt_On_You.jpg"; myImage.Placeholder = "Resources/Media/Images/Local/Dirt_On_You.jpg"; if (myUser != null) { myImage.Title = $"Hey {myUser.Forename}, what DIRT do we have on YOU? 😜"; } else { myImage.Title = $"What DIRT do we have on YOU? 😜"; } var MySeeYourselfControl = (MediaControl)Page.LoadControl("~/Custom_Controls/Media/MediaControl.ascx"); MySeeYourselfControl.MyMedia = myImage; MySeeYourselfControl.AnchorLink = $"{Request.Url.GetLeftPart(UriPartial.Authority)}/me"; //seeYourself.Controls.Add(MySeeYourselfControl); //seeYourself.Visible = true; int userId = myUser == null ? 0 : myUser.Id; Media latestVideo = Media.SelectLatestVideo(userId); if (latestVideo != null) { var MyVideoControl = (MediaControl)Page.LoadControl("~/Custom_Controls/Media/MediaControl.ascx"); latestVideo.Title = "LATEST VIDEO: " + latestVideo.Title; MyVideoControl.MyMedia = latestVideo; //LatestVideo.Controls.Add(MyVideoControl); } }
public void Should_Swap_Original_And_Reuploaded_Entities_Correctly() { var original = TestDataProvider.CreateNewMediaFile(); var newVersion = TestDataProvider.CreateNewMediaFile(); var origTitle = original.Title; var newVersionTitle = newVersion.Title; var cat11 = TestDataProvider.CreateNewCategory(new CategoryTree()); var cat12 = TestDataProvider.CreateNewCategory(new CategoryTree()); var cat21 = TestDataProvider.CreateNewCategory(new CategoryTree()); var mcCat11 = new MediaCategory { Category = cat11, Media = original }; var mcCat12 = new MediaCategory { Category = cat12, Media = original }; var mcCat21 = new MediaCategory { Category = cat21, Media = newVersion }; var tag11 = TestDataProvider.CreateNewTag(); var tag12 = TestDataProvider.CreateNewTag(); var tag21 = TestDataProvider.CreateNewTag(); var mtTag11 = new MediaTag { Tag = tag11, Media = newVersion }; var mtTag12 = new MediaTag { Tag = tag12, Media = newVersion }; var mtTag21 = new MediaTag { Tag = tag21, Media = original }; original.Categories = new List <MediaCategory>(); newVersion.Categories = new List <MediaCategory>(); original.MediaTags = new List <MediaTag>(); newVersion.MediaTags = new List <MediaTag>(); original.Categories.Add(mcCat11); original.Categories.Add(mcCat12); newVersion.Categories.Add(mcCat21); newVersion.MediaTags.Add(mtTag11); newVersion.MediaTags.Add(mtTag12); original.MediaTags.Add(mtTag21); var service = GetMediaFileService(false); service.SwapOriginalMediaWithVersion(original, newVersion); // Ensure etity properies are switched Assert.AreNotEqual(original.Title, newVersion.Title); Assert.AreEqual(origTitle, newVersion.Title); Assert.AreEqual(newVersionTitle, original.Title); // Ensure original entity is set correctly Assert.AreEqual(newVersion.Original, original); // Ensure categories are switched correctly Assert.AreEqual(original.Categories.Count, 1); Assert.AreEqual(newVersion.Categories.Count, 2); Assert.IsTrue(newVersion.Categories.Contains(mcCat11)); Assert.IsTrue(newVersion.Categories.Contains(mcCat12)); Assert.IsTrue(original.Categories.Contains(mcCat21)); // Ensure tags are switched correctly Assert.AreEqual(original.MediaTags.Count, 2); Assert.AreEqual(newVersion.MediaTags.Count, 1); Assert.IsTrue(original.MediaTags.Contains(mtTag11)); Assert.IsTrue(original.MediaTags.Contains(mtTag12)); Assert.IsTrue(newVersion.MediaTags.Contains(mtTag21)); }
/// <summary> /// Saves the media tags. /// </summary> /// <param name="media">The media.</param> /// <param name="tags">The tags.</param> /// <param name="newTags">The new tags.</param> public void SaveMediaTags(Media media, IList <string> tags, out IList <Tag> newTags) { var trimmedTags = new List <string>(); if (tags != null) { foreach (var tag in tags) { trimmedTags.Add(tag.Trim()); } } newTags = new List <Tag>(); Tag tagAlias = null; // Tags merge: var mediaTags = unitOfWork.Session .QueryOver <MediaTag>() .Where(t => !t.IsDeleted && t.Media.Id == media.Id) .JoinQueryOver(t => t.Tag, JoinType.InnerJoin) .Where(t => !t.IsDeleted) .List <MediaTag>(); // Remove deleted tags: for (var i = mediaTags.Count - 1; i >= 0; i--) { var tag = trimmedTags.FirstOrDefault(s => s.ToLower() == mediaTags[i].Tag.Name.ToLower()); if (tag == null) { UpdateModifiedInformation(mediaTags[i]); unitOfWork.Session.Delete(mediaTags[i]); } } // Add new tags: List <string> tagsInsert = new List <string>(); foreach (var tag in trimmedTags) { var existMediaTag = mediaTags.FirstOrDefault(mediaTag => mediaTag.Tag.Name.ToLower() == tag.ToLower()); if (existMediaTag == null) { tagsInsert.Add(tag); } } if (tagsInsert.Count <= 0) { return; } // Get existing tags: var existingTags = unitOfWork.Session.QueryOver(() => tagAlias) .Where(t => !t.IsDeleted) .Where(Restrictions.In(Projections.Property(() => tagAlias.Name), tagsInsert)) .List <Tag>(); foreach (var tag in tagsInsert) { var mediaTag = new MediaTag { Media = media }; var existTag = existingTags.FirstOrDefault(t => t.Name.ToLower() == tag.ToLower()); if (existTag != null) { mediaTag.Tag = existTag; } else { var newTag = new Tag { Name = tag }; unitOfWork.Session.SaveOrUpdate(newTag); newTags.Add(newTag); mediaTag.Tag = newTag; } UpdateModifiedInformation(mediaTag); unitOfWork.Session.SaveOrUpdate(mediaTag); } }
/// <summary> /// Saves the media tags. /// </summary> /// <param name="media">The media.</param> /// <param name="tags">The tags.</param> /// <param name="newTags">The new tags.</param> public void SaveMediaTags(Media media, IList<string> tags, out IList<Tag> newTags) { var trimmedTags = new List<string>(); if (tags != null) { foreach (var tag in tags) { trimmedTags.Add(tag.Trim()); } } newTags = new List<Tag>(); Tag tagAlias = null; // Tags merge: var mediaTags = unitOfWork.Session .QueryOver<MediaTag>() .Where(t => !t.IsDeleted && t.Media.Id == media.Id) .JoinQueryOver(t => t.Tag, JoinType.InnerJoin) .Where(t => !t.IsDeleted) .List<MediaTag>(); // Remove deleted tags: for (var i = mediaTags.Count - 1; i >= 0; i--) { var tag = trimmedTags.FirstOrDefault(s => s.ToLower() == mediaTags[i].Tag.Name.ToLower()); if (tag == null) { unitOfWork.Session.Delete(mediaTags[i]); } } // Add new tags: List<string> tagsInsert = new List<string>(); foreach (var tag in trimmedTags) { var existMediaTag = mediaTags.FirstOrDefault(mediaTag => mediaTag.Tag.Name.ToLower() == tag.ToLower()); if (existMediaTag == null) { tagsInsert.Add(tag); } } if (tagsInsert.Count <= 0) { return; } // Get existing tags: var existingTags = unitOfWork.Session.QueryOver(() => tagAlias) .Where(t => !t.IsDeleted) .Where(Restrictions.In(Projections.Property(() => tagAlias.Name), tagsInsert)) .List<Tag>(); foreach (var tag in tagsInsert) { var mediaTag = new MediaTag { Media = media }; var existTag = existingTags.FirstOrDefault(t => t.Name.ToLower() == tag.ToLower()); if (existTag != null) { mediaTag.Tag = existTag; } else { var newTag = new Tag { Name = tag }; unitOfWork.Session.SaveOrUpdate(newTag); newTags.Add(newTag); mediaTag.Tag = newTag; } unitOfWork.Session.SaveOrUpdate(mediaTag); } }
/// <summary> /// Adds a media tag relation to the db and returns it /// </summary> /// <param name="mediaTag"></param> /// <returns></returns> public async Task <MediaTag> AddMediaTagToDbAsync(MediaTag mediaTag) { _context.Add(mediaTag); _context.SaveChanges(); return(await _context.MediaTags.Include(m => m.Tag).Include(m => m.Media).FirstOrDefaultAsync(t => t == mediaTag)); }
/// <summary> /// Saves the media tags. /// </summary> /// <param name="media">The media.</param> /// <param name="tags">The tags.</param> /// <param name="newCreatedTags">The new created tags.</param> public void SaveMediaTags(Media media, IEnumerable<string> tags, out IList<Tag> newCreatedTags) { var trimmedTags = new List<string>(); if (tags != null) { foreach (var tag in tags) { trimmedTags.Add(tag.Trim()); } } // remove tags who are equal (tags are case insensitive) for (int i = 0; i < trimmedTags.Count; i++) { for (int j = i + 1; j < trimmedTags.Count; j++) { if (i != j && trimmedTags[i].ToLowerInvariant() == trimmedTags[j].ToLowerInvariant()) { trimmedTags.RemoveAt(j); --j; } } } newCreatedTags = new List<Tag>(); Tag tagAlias = null; // Tags merge: var mediaTags = unitOfWork.Session.QueryOver<MediaTag>() .Where(t => !t.IsDeleted && t.Media.Id == media.Id) .JoinQueryOver(t => t.Tag, JoinType.InnerJoin) .Where(t => !t.IsDeleted) .List<MediaTag>(); // Remove deleted tags: for (var i = mediaTags.Count - 1; i >= 0; i--) { var tag = trimmedTags.FirstOrDefault(s => s.ToLower() == mediaTags[i].Tag.Name.ToLower()); if (tag == null) { UpdateModifiedInformation(mediaTags[i]); unitOfWork.Session.Delete(mediaTags[i]); } } // Add new tags: var tagsInsert = new List<string>(); foreach (var tag in trimmedTags) { var existMediaTag = mediaTags.FirstOrDefault(mediaTag => mediaTag.Tag.Name.ToLower() == tag.ToLower()); if (existMediaTag == null) { tagsInsert.Add(tag); } } if (tagsInsert.Count > 0) { // Get existing tags: var existingTags = unitOfWork.Session.QueryOver(() => tagAlias) .Where(t => !t.IsDeleted) .Where(Restrictions.In(Projections.Property(() => tagAlias.Name), tagsInsert)) .List<Tag>(); foreach (var tag in tagsInsert) { var mediaTag = new MediaTag { Media = media }; var existTag = existingTags.FirstOrDefault(t => t.Name.ToLower() == tag.ToLower()); if (existTag != null) { mediaTag.Tag = existTag; } else { var newTag = new Tag { Name = tag }; unitOfWork.Session.SaveOrUpdate(newTag); newCreatedTags.Add(newTag); mediaTag.Tag = newTag; UpdateModifiedInformation(mediaTag); } unitOfWork.Session.SaveOrUpdate(mediaTag); } } }
public MediaItemList GetAllUsersMediaWithTag(string username, MediaTag mediaTag) { MediaItemList mediaList = new MediaItemList(); int curPageNum = 0; bool stillMoreToGet = true; while (stillMoreToGet) { curPageNum++; MediaItemList curPageMediaList = GetUsersMediaWithTag(username, mediaTag.Name, curPageNum, 200); mediaList.AddRange(curPageMediaList); if (curPageMediaList.Count < 200) { stillMoreToGet = false; } } return mediaList; }