Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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;
     }
 }
Esempio n. 5
0
        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();
     }
 }
Esempio n. 7
0
        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));
            }
        }
Esempio n. 8
0
        /// <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);
        }
Esempio n. 9
0
        public static string AttributeToString(MediaTag attribute)
        {
            string tag_string = attribute.ToString();

            if (tag_string.Contains("_"))
            {
                tag_string = tag_string.Replace('_', '/');
            }

            return(tag_string);
        }
Esempio n. 10
0
        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);
            }
        }
Esempio n. 11
0
        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);
            }
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        /// <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());
        }
Esempio n. 15
0
        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());
        }
Esempio n. 16
0
        /// <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);
            }
        }
Esempio n. 17
0
        /// <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();
        }
Esempio n. 18
0
        /// <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);
        }
Esempio n. 19
0
        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);
            }
        }
Esempio n. 20
0
 /// <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);
      }
Esempio n. 22
0
        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);
      }
Esempio n. 24
0
 public MediaAttribute(MediaTag attribute, string attribute_value)
 {
     this.AttributeType  = attribute;
     this.AttributeValue = attribute_value == null ? "" : attribute_value;
 }
Esempio n. 25
0
 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);
 }
Esempio n. 30
0
        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;
                        }
                    }
                }
            }
        }
Esempio n. 31
0
        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);
            }
        }
 private void UpdateModifiedInformation(MediaTag mediaTag)
 {
     UpdateModifiedInformation(mediaTag.Media);
 }
Esempio n. 33
0
        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));
        }
Esempio n. 34
0
        /// <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);
            }
        }
Esempio n. 35
0
        /// <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);
            }
        }
Esempio n. 36
0
 private void UpdateModifiedInformation(MediaTag mediaTag)
 {
     var media = mediaTag.Media;
     media.ModifiedOn = DateTime.Now;
     media.ModifiedByUser = securityService.CurrentPrincipalName;
     unitOfWork.Session.SaveOrUpdate(media);
 }
Esempio n. 37
0
 /// <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));
 }
Esempio n. 38
0
        /// <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;
      }