コード例 #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            ContentItemTool contentitemtool = ConsumerContext.ContentItemTools.Find(id);

            ConsumerContext.ContentItemTools.Remove(contentitemtool);
            ConsumerContext.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #2
0
 public ActionResult Edit([Bind(Include = "ContentItemToolId,ConsumerKey,ConsumerSecret,CustomParameters,Description,Name,Url")] ContentItemTool contentitemtool)
 {
     if (ModelState.IsValid)
     {
         ConsumerContext.Entry(contentitemtool).State = EntityState.Modified;
         ConsumerContext.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(contentitemtool));
 }
コード例 #3
0
        public ActionResult Create([Bind(Include = "ContentItemToolId,ConsumerKey,ConsumerSecret,CustomParameters,Description,Name,Url")] ContentItemTool contentitemtool)
        {
            if (ModelState.IsValid)
            {
                contentitemtool.Owner = UserManager.FindById(User.Identity.GetUserId());
                ConsumerContext.ContentItemTools.Add(contentitemtool);
                ConsumerContext.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(contentitemtool));
        }
コード例 #4
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ContentItemTool contentitemtool = ConsumerContext.ContentItemTools.Find(id);

            if (contentitemtool == null)
            {
                return(HttpNotFound());
            }
            return(View(contentitemtool));
        }
コード例 #5
0
        public static LtiRequestViewModel CreateContentItemSelectionRequestViewModel(HttpRequestBase request, ContentItemTool contentItemTool, Course course, ApplicationUser user, string returnUrl)
        {
            var ltiRequest = new LtiRequest(LtiConstants.ContentItemSelectionRequestLtiMessageType)
            {
                ConsumerKey = contentItemTool.ConsumerKey,
                Url         = new Uri(contentItemTool.Url)
            };

            // Tool Consumer
            ltiRequest.ToolConsumerInfoProductFamilyCode = Assembly.GetExecutingAssembly().GetName().Name;
            ltiRequest.ToolConsumerInfoVersion           = Assembly.GetExecutingAssembly().GetName().Version.ToString();

            // Context
            ltiRequest.ContextId    = course.CourseId.ToString(CultureInfo.InvariantCulture);
            ltiRequest.ContextTitle = course.Name;
            ltiRequest.ContextType  = course.EnrolledUsers.Any(u => u.Id == user.Id)
                ? LisContextType.CourseSection
                : LisContextType.CourseTemplate;
            ltiRequest.LisCourseSectionSourcedId = course.CourseId.ToString(CultureInfo.InvariantCulture);

            // Instance
            ltiRequest.ToolConsumerInstanceGuid = "~/".ToAbsoluteUrl();
            var title = Assembly.GetExecutingAssembly().GetCustomAttributes <AssemblyTitleAttribute>().FirstOrDefault();

            ltiRequest.ToolConsumerInstanceName = title == null ? null : title.Title;

            // User
            if (user.SendEmail.GetValueOrDefault(true))
            {
                ltiRequest.LisPersonEmailPrimary = user.Email;
            }
            if (user.SendName.GetValueOrDefault(true))
            {
                ltiRequest.LisPersonNameFamily = user.LastName;
                ltiRequest.LisPersonNameGiven  = user.FirstName;
            }
            ltiRequest.UserId   = user.Id;
            ltiRequest.UserName = user.UserName;
            ltiRequest.SetRoles(GetLtiRolesForUser(user));

            // Presentation
            ltiRequest.LaunchPresentationDocumentTarget = DocumentTarget.iframe;

            // Content Item Tool
            ltiRequest.AcceptMediaTypes = LtiConstants.LtiLinkMediaType; // Only accept LTI Link
            ltiRequest.AcceptMultiple   = true;
            ltiRequest.AcceptPresentationDocumentTargets = "iframe";
            ltiRequest.AcceptUnsigned       = false;
            ltiRequest.ContentItemReturnUrl = returnUrl;
            //ltiRequest.ContentItemServiceUrl = "about:blank";
            ltiRequest.Data = JsonConvert.SerializeObject(new ContentItemData
            {
                ContentItemToolId = contentItemTool.ContentItemToolId,
                CourseId          = course.CourseId
            });

            // Add the custom parameters.
            var customParameters = contentItemTool.CustomParameters;

            // This tool consumer supports 3 non-spec custom parameters
            if (!string.IsNullOrWhiteSpace(customParameters))
            {
                ltiRequest.AddCustomParameters(customParameters);
            }

            return(ltiRequest.GetViewModel(contentItemTool.ConsumerSecret));
        }