コード例 #1
0
 public ActionResult Create(FormCollection collection)
 {
     try
     {
         AppWebHelper hlp = new AppWebHelper(
             HttpContext.Request.QueryString[Constants.SPAppWebUrl] as string);
         hlp.AddAdministrator(collection["LoginName"] as string);
         return(View("Index", hlp.GetAdministrators()));
     }
     catch (Exception ex)
     {
         LogHelper.Log(ex.Message + ex.StackTrace, LogSeverity.Error);
         throw;
     }
 }
コード例 #2
0
 /// <summary>
 /// The RER are a little buggy. Depending on the event triggered, using this:
 /// TokenHelper.CreateAppEventClientContext(properties, true) returns a null appweb although the
 /// app web exists...Therefore, as I know the name of my App and since the AppWeb's url corresponds to it
 /// I assume that the default appweb location is https://hostweb/appweb. This isn't valid when the App is deployed
 /// trough the AppCatalog. That's why I record the URL of the AppCatalog in case the App gets installed in the
 /// AppCatalog since this info isn't available from CSOM.
 /// </summary>
 /// <param name="properties"></param>
 void AppInstalled(SPRemoteEventProperties properties)
 {
     LogHelper.Log("The application was installed on " + properties.AppEventProperties.HostWebFullUrl);
     using (ClientContext ctx = TokenHelper.CreateAppEventClientContext(properties, false))
     {
         ctx.Load(ctx.Web);
         ctx.Load(ctx.Web.CurrentUser);
         ctx.ExecuteQuery();
         if (ctx.Web.WebTemplate == Constants.AppCatalogTemplate)
         {
             LogHelper.Log("Writing app catalog url", LogSeverity.Error);
             using (StreamWriter sw = new StreamWriter(HttpContext.Current.Server.MapPath("~/App_Data/AppCataLog.xml")))
             {
                 sw.Write(ctx.Web.Url);
             }
         }
         AppWebHelper hlp = new AppWebHelper(properties.AppEventProperties.AppWebFullUrl.AbsoluteUri, true);
         hlp.AddAdministrator(ctx.Web.CurrentUser.LoginName);
     }
 }