Beispiel #1
0
        public ActionResult CourseViewer(string authorName, string courseName, string mode = null, string trackingID = null)
        {
            //return RedirectToRoute("UserPortal2Widget_Course", new { type = BillingEnums.ePurchaseItemTypes.COURSE, author = authorName.OptimizedUrl(), itemName = courseName.OptimizedUrl(), trackingId = trackingID });

            var url = this.GenerateItemPageUrl(authorName.OptimizedUrl(), courseName.OptimizedUrl(), BillingEnums.ePurchaseItemTypes.COURSE, trackingID);

            return(RedirectPermanent(url));

            return(RedirectToAction("Index", "Item", new { area = "Widget", type = BillingEnums.ePurchaseItemTypes.COURSE, author = authorName.OptimizedUrl(), itemName = courseName.OptimizedUrl(), trackingId = trackingID }));

            var pageToken = new CourseViewerPageToken();

            var baseDto = _widgetCourseServices.FindCourseByUrlName(authorName, courseName);

            if (baseDto == null)
            {
                pageToken.IsValid = false;

                pageToken.Message = "Course not found";

                return(View(pageToken));
            }

            pageToken.IsValid    = true;
            pageToken.CourseId   = baseDto.id;
            pageToken.CourseName = baseDto.name;

            var courseState = _widgetCourseServices.GetCourseAccessState4User(CurrentUserId, baseDto.id);

            courseState.IsPreview = (!String.IsNullOrEmpty(mode) && mode == Core.Utils.Constants.QS_COURSE_PREVIEW_PREFIX);

            var loadViewer = !courseState.IsPreview && (courseState.IsOwnedByUser || (courseState.IsAccessAllowed && courseState.IsPublished));

            // ReSharper disable once RedundantArgumentName
            pageToken.CourseViewerDTO = _widgetCourseServices.GetLearnerCourseViewerDTO(baseDto.id, CurrentUserId, loadBasicInfo: !loadViewer);

            pageToken.ItemState = courseState;

            pageToken.TrackingID = trackingID;

            return(View(pageToken));
        }
Beispiel #2
0
        private ItemPurchaseDataToken _GetPurchaseDataToken(int?id, string trackingId)
        {
            if (id == null)
            {
                var token = new ItemPurchaseDataToken
                {
                    IsValid   = false
                    , Message = "Required param ID missing"
                };

                return(token);
            }
            string error;

            var dto = _widgetCourseServices.GetItemPurchaseDtoByPriceLineId((int)id, out error);

            if (dto == null)
            {
                var token = new ItemPurchaseDataToken
                {
                    IsValid   = false
                    , Message = String.IsNullOrEmpty(error) ? "Item not found" : error
                };

                return(token);
            }

            ItemAccessStateToken itemState;

            switch (dto.Type)
            {
            case BillingEnums.ePurchaseItemTypes.COURSE:
                itemState = _widgetCourseServices.GetCourseAccessState4User(CurrentUserId, dto.ItemId);
                break;

            case BillingEnums.ePurchaseItemTypes.BUNDLE:
                itemState = _widgetCourseServices.GetBundleAccessState4User(CurrentUserId, dto.ItemId);
                break;

            default:
                var token = new ItemPurchaseDataToken
                {
                    IsValid   = false
                    , Message = "Unknown Item type"
                };

                return(token);
            }

            //var itemState = !String.IsNullOrEmpty(courseName) ? _courseServices.GetCourseAccessState4User(CurrentUserId, dto.ItemId) : _courseServices.GetBundleAccessState4User(CurrentUserId, dto.ItemId);

            dto.IsPurchased = itemState.IsAccessAllowed || itemState.IsOwnedByUser;
            dto.TrackingID  = trackingId;

            dto.BillingAddresses = _userAccountServices.GetUserBillingAddresses(CurrentUserId).Where(x => x.IsActive).ToList();
            dto.UserSavedCards   = _userAccountServices.GetUserSavedCardsLOV(CurrentUserId);

            EventLoggerService.Report(new ReportToken
            {
                UserId             = CurrentUserId,
                EventType          = CommonEnums.eUserEvents.BUY_PAGE_ENTERED,
                NetSessionId       = Session.SessionID,
                AdditionalMiscData = string.Format("item ID: {0}, itemType {1}", dto.ItemId, dto.Type == BillingEnums.ePurchaseItemTypes.BUNDLE ? "Bundle" : "Course"),
                TrackingID         = trackingId,
                CourseId           = dto.Type == BillingEnums.ePurchaseItemTypes.COURSE ? dto.ItemId : (int?)null,
                BundleId           = dto.Type == BillingEnums.ePurchaseItemTypes.BUNDLE ? dto.ItemId : (int?)null,
                HostName           = GetReferrer()
            });

            return(dto);
        }