public int UpdateTag(TagViewModel tag)
        {
            TagOfVideo old_tag = DAManager.TagOfVideoRepository.Get(t => t.TagId == tag.TagId).FirstOrDefault();

            if (old_tag != null)
            {
                old_tag.MetaDescription  = tag.MetaDescription;
                old_tag.MetaTitle        = tag.MetaTitle;
                old_tag.TagId            = tag.TagId;
                old_tag.TagName          = tag.TagName;
                old_tag.FrontTitle       = tag.FrontTitle;
                old_tag.FrontDescription = tag.FrontDescription;
            }
            else
            {
                return(-1);
            }
            try
            {
                DAManager.Save();
                return(old_tag.TagId);
            }
            catch (Exception ex)
            {
                logService.WriteError(ex.Message, ex.Message, ex.StackTrace, ex.Source);
                return(-1);
            }
        }
        public bool IsTagExist(string tag, int tag_id = 0)
        {
            TagOfVideo db_tag = DAManager.TagOfVideoRepository.Get(t => t.TagName == tag).FirstOrDefault();

            if (db_tag == null || (tag_id != 0 && tag_id == db_tag.TagId))
            {
                return(false);
            }

            return(true);
        }
        public VideoCategoryViewModel GetVideosTag(string tag, int page, int page_size, int image_width, int image_height, int description_length = 40)
        {
            tag = tag.Replace("-", "_");
            TagOfVideo db_tag = DAManager.TagOfVideoRepository.Get(t => t.TagName == tag).FirstOrDefault();

            if (db_tag == null)
            {
                return(null);
            }

            VideoCategoryViewModel result_viewmodel = new VideoCategoryViewModel()
            {
                Name = db_tag.FrontTitle, MetaDescription = db_tag.MetaDescription, MetaTitle = db_tag.MetaTitle
            };
            List <ListVideoViewModel> result = new List <ListVideoViewModel>();

            IQueryable <VideoTag> tag_videos = DAManager.VideoTagsRepository.Get(at => at.Tag == tag && at.Video.IsPublished == true && DbFunctions.CreateDateTime(at.Video.PublishDate.Year, at.Video.PublishDate.Month, at.Video.PublishDate.Day, at.Video.PublishDate.Hour, at.Video.PublishDate.Minute, at.Video.PublishDate.Second) <= DateTime.Now, a => a.OrderByDescending(ar => ar.Video.PublishDate), "Video.VideoImages.Image").Skip((page - 1) * page_size).Take(page_size);

            foreach (VideoTag AC in tag_videos.ToList())
            {
                ListVideoViewModel video = new ListVideoViewModel()
                {
                    Title = AC.Video.Title, URL = AC.Video.URL
                };
                video.Description = StringsUtility.StripHTML(AC.Video.Description);
                if (video.Description.Length > description_length)
                {
                    video.Description = video.Description.Substring(0, description_length);
                }
                if (AC.Video.VideoImages.Count() > 0)
                {
                    video.ImageURL = ImageService.GenerateImageFullPath(AC.Video.VideoImages.First().Image.URL, image_width.ToString(), image_height.ToString());
                }

                result.Add(video);
            }



            result_viewmodel.Videos = result;

            int total_videos = DAManager.VideoTagsRepository.Get(at => at.Tag == tag && at.Video.IsPublished == true && DbFunctions.CreateDateTime(at.Video.PublishDate.Year, at.Video.PublishDate.Month, at.Video.PublishDate.Day, at.Video.PublishDate.Hour, at.Video.PublishDate.Minute, at.Video.PublishDate.Second) <= DateTime.Now).Count();

            //Set pagination properties
            result_viewmodel.PageNumber = page;
            result_viewmodel.PageSize   = page_size;
            result_viewmodel.TotalItems = total_videos;

            return(result_viewmodel);
        }
        public int AddNewTag(TagViewModel tag)
        {
            TagOfVideo db_tag = new TagOfVideo()
            {
                MetaDescription = tag.MetaDescription, TagName = tag.TagName, MetaTitle = tag.MetaTitle, FrontTitle = tag.FrontTitle, FrontDescription = tag.FrontDescription
            };

            DAManager.TagOfVideoRepository.Insert(db_tag);

            try
            {
                DAManager.Save();
            }
            catch (Exception ex)
            {
                logService.WriteError(ex.Message, ex.Message, ex.StackTrace, ex.Source);
                return(-1);
            }

            return(db_tag.TagId);
        }