public ActionResult BundleViewer(string authorName, string bundleName, string mode = null, string trackingID = null) { var url = this.GenerateItemPageUrl(authorName.OptimizedUrl(), bundleName.OptimizedUrl(), BillingEnums.ePurchaseItemTypes.BUNDLE, trackingID); return(RedirectPermanent(url)); return(RedirectToAction("Index", "Item", new { area = "Widget", type = BillingEnums.ePurchaseItemTypes.BUNDLE, author = authorName.OptimizedUrl(), itemName = bundleName.OptimizedUrl(), trackingId = trackingID })); var pageToken = new BundleViewerPageToken(); var baseDto = _widgetCourseServices.FindBundleByUrlName(authorName, bundleName); if (baseDto == null) { pageToken.IsValid = false; pageToken.Message = "Bundle not found"; return(View(pageToken)); } pageToken.IsValid = true; pageToken.Bundle = baseDto; var itemState = _widgetCourseServices.GetBundleAccessState4User(CurrentUserId, baseDto.BundleId); itemState.IsPreview = (!String.IsNullOrEmpty(mode) && mode == Core.Utils.Constants.QS_COURSE_PREVIEW_PREFIX); pageToken.ItemState = itemState; var loadViewer = !itemState.IsPreview && (itemState.IsOwnedByUser || (itemState.IsAccessAllowed && itemState.IsPublished)); pageToken.Author = _userPortalServices.GetUserProfileDto(baseDto.AuthorId); if (loadViewer) { pageToken.BundleCourses = _widgetCourseServices.GetBundleCoursesList(baseDto.BundleId); } pageToken.TrackingID = trackingID; return(View(pageToken)); }
public UserProfilePageToken GetUserProfileDto(int id, int pageSize) { try { var dto = new UserProfilePageToken { LearnerCourses = _userPortalServices.GetLearnerCourses(id, CurrentUserId).Select(x => x.SetCoursePageUrl(null)).OrderByDescending(x => x.LearnerCount).ThenBy(x => x.Name).ToList(), AuthorCourses = _userPortalServices.GetAuthorCourses(id, CurrentUserId).Select(x => x.SetCoursePageUrl(null)).OrderByDescending(x => x.LearnerCount).ThenBy(x => x.Name).ToList(), PageSize = pageSize }; var token = _userPortalServices.GetUserProfileDto(id); var profile = new UserProfileCartToken { Profile = token , TotalLearn = dto.LearnerCourses.Count , TotalTeach = dto.AuthorCourses.Count }; dto.ProfileCart = profile; dto.IsValid = true; return(dto); } catch (Exception ex) { Logger.Error("Get User profile Dto", ex, id, CommonEnums.LoggerObjectTypes.UserAccount); return(new UserProfilePageToken { IsValid = false , Message = Utils.FormatError(ex) }); } }