public VideoPage() { this.InitializeComponent(); if (videoCategoryViewModel == null) { if (!SimpleIoc.Default.IsRegistered <VideoCategoryViewModel>()) { SimpleIoc.Default.Register <VideoCategoryViewModel>(); } videoCategoryViewModel = SimpleIoc.Default.GetInstance <VideoCategoryViewModel>(); } this.DataContext = videoCategoryViewModel; this.navigationHelper = new NavigationHelper(this); if (AppEnvironment.IsPhone) { this.hub.Visibility = Visibility.Collapsed; this.gridPI.Visibility = Visibility.Visible; } else { this.hub.Visibility = Visibility.Visible; this.gridPI.Visibility = Visibility.Collapsed; } }
public ActionResult ListByVideoTag(string id, int page = 1, int page_size = 15) { if (id.Contains("_")) { return(RedirectToActionPermanent("ListByVideoTag", new { id = id.Replace("_", "-") })); } //If first page redirect to correct url without page parameter if (page <= 1 && Request.RawUrl.Contains(id + "/" + page.ToString())) { return(RedirectToActionPermanent("ListByVideoTag", new { id = id, page = "" })); } VideoCategoryViewModel view_model = servicesManager.VideoFrontService.GetVideosTag(id, page < 1 ? 1 : page, page_size, VideoService.VideoThumbWidth7, VideoService.VideoThumbHeight7, 100); view_model.LinkTemplate = "/تصنيف-فيديو/" + id + "/{page}"; if (view_model == null) { throw new HttpException(404, "Page Not Found"); } //Get Current User Info if (WebSecurity.IsAuthenticated) { ViewBag.CurrentUser = servicesManager.AccountFrontService.GetSimpleUserById(WebSecurity.CurrentUserId); } view_model.URL = id; //Get latest articles list ViewBag.LatestArticlesLeft = servicesManager.ArticleFrontService.GetLatestArticles(5, ArticleService.ArticleThumbWidth3, ArticleService.ArticleThumbHeight3); //Fill Bread Crumb BreadCrumbViewModel bread_crumb = new BreadCrumbViewModel(); bread_crumb.Items = new List <BreadCrumbItemViewModel>(); bread_crumb.Items.Add(new BreadCrumbItemViewModel() { Text = "الرئيسية", URL = "/" }); bread_crumb.Items.Add(new BreadCrumbItemViewModel() { Text = "فيديو", URL = "/فيديو" }); bread_crumb.Items.Add(new BreadCrumbItemViewModel() { Text = view_model.Name, URL = Url.Action("ListByVideoTag", "Category", new { id = id, page = "" }) }); ViewBag.BreadCrumb = bread_crumb; return(View(view_model)); }
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); }