示例#1
0
        private static System.Dynamic.ExpandoObject PublishModelApiRequestBody(Guid uniqueId, string targetSiteUrl, string targetWebServerRelativeUrl, string targetLibraryServerRelativeUrl, MachineLearningPublicationViewOption viewOption)
        {
            /*
             * {
             *  "__metadata": {
             *      "type": "Microsoft.Office.Server.ContentCenter.SPMachineLearningPublicationsEntityData"
             *  },
             *  "Publications": {
             *      "results": [
             *          {
             *              "ModelUniqueId": "bb25a5be-aeed-436d-90e7-add975ac766e",
             *              "TargetSiteUrl": "https://m365x215748.sharepoint.com/sites/Mark8ProjectTeam",
             *              "TargetWebServerRelativeUrl": "/sites/Mark8ProjectTeam",
             *              "TargetLibraryServerRelativeUrl": "/sites/Mark8ProjectTeam/Shared Documents",
             *              "ViewOption": "NewViewAsDefault"
             *          }
             *      ]
             *  },
             *  "Comment": ""
             * }
             */

            return(new
            {
                __metadata = new { type = "Microsoft.Office.Server.ContentCenter.SPMachineLearningPublicationsEntityData" },
                Publications = new
                {
                    results = new List <SyntexModelPublication>()
                    {
                        new SyntexModelPublication()
                        {
                            ModelUniqueId = uniqueId,
                            TargetSiteUrl = targetSiteUrl,
                            TargetWebServerRelativeUrl = targetWebServerRelativeUrl,
                            TargetLibraryServerRelativeUrl = targetLibraryServerRelativeUrl,
                            ViewOption = viewOption
                        }
                    }
                },
                Comment = ""
            }.AsExpando());
        }
示例#2
0
 public IEnumerableBatchResult <ISyntexModelPublicationResult> PublishModelBatch(List <IList> libraries, MachineLearningPublicationViewOption viewOption = MachineLearningPublicationViewOption.NewViewAsDefault)
 {
     return(PublishModelBatchAsync(libraries, viewOption).GetAwaiter().GetResult());
 }
示例#3
0
        private async Task <ApiCallResponse> PublishModelApiRequestAsync(Guid uniqueId, string targetSiteUrl, string targetWebServerRelativeUrl,
                                                                         string targetLibraryServerRelativeUrl, MachineLearningPublicationViewOption viewOption)
        {
            System.Dynamic.ExpandoObject registerInfo = PublishModelApiRequestBody(uniqueId, targetSiteUrl, targetWebServerRelativeUrl, targetLibraryServerRelativeUrl, viewOption);

            return(await PublishModelApiCallAsync(registerInfo).ConfigureAwait(false));
        }
示例#4
0
        public async Task <IEnumerableBatchResult <ISyntexModelPublicationResult> > PublishModelBatchAsync(Batch batch, List <IList> libraries, MachineLearningPublicationViewOption viewOption = MachineLearningPublicationViewOption.NewViewAsDefault)
        {
            List <SyntexModelPublication> modelPublications = await BuildModelPublicationListAsync(libraries, viewOption).ConfigureAwait(false);

            return(await PublishModelBatchImplementationAsync(batch, modelPublications).ConfigureAwait(false));
        }
示例#5
0
 public async Task <IEnumerableBatchResult <ISyntexModelPublicationResult> > PublishModelBatchAsync(List <IList> libraries, MachineLearningPublicationViewOption viewOption = MachineLearningPublicationViewOption.NewViewAsDefault)
 {
     return(await PublishModelBatchAsync((ListItem as ListItem).PnPContext.CurrentBatch, libraries, viewOption).ConfigureAwait(false));
 }
示例#6
0
        public async Task <List <ISyntexModelPublicationResult> > PublishModelAsync(List <IList> libraries, MachineLearningPublicationViewOption viewOption = MachineLearningPublicationViewOption.NewViewAsDefault)
        {
            List <SyntexModelPublication> modelPublications = await BuildModelPublicationListAsync(libraries, viewOption).ConfigureAwait(false);

            return(ProcessModelPublishResponseMultiple(await PublishModelApiRequestAsync(modelPublications).ConfigureAwait(false)));
        }
示例#7
0
        private async Task <List <SyntexModelPublication> > BuildModelPublicationListAsync(List <IList> libraries, MachineLearningPublicationViewOption viewOption)
        {
            List <SyntexModelPublication> modelPublications = new List <SyntexModelPublication>();

            foreach (var library in libraries)
            {
                await(library as List).EnsurePropertiesAsync(p => p.RootFolder).ConfigureAwait(false);
                await library.PnPContext.Web.EnsurePropertiesAsync(p => p.ServerRelativeUrl).ConfigureAwait(false);

                modelPublications.Add(new SyntexModelPublication()
                {
                    ModelUniqueId = UniqueId,
                    TargetSiteUrl = library.PnPContext.Uri.AbsoluteUri.ToString(),
                    TargetWebServerRelativeUrl     = library.PnPContext.Web.ServerRelativeUrl,
                    TargetLibraryServerRelativeUrl = library.RootFolder.ServerRelativeUrl,
                    ViewOption = viewOption
                });
            }

            return(modelPublications);
        }
示例#8
0
 public IBatchSingleResult <ISyntexModelPublicationResult> PublishModelBatch(IList library, MachineLearningPublicationViewOption viewOption = MachineLearningPublicationViewOption.NewViewAsDefault)
 {
     return(PublishModelBatchAsync(library, viewOption).GetAwaiter().GetResult());
 }
示例#9
0
        private async Task <IBatchSingleResult <ISyntexModelPublicationResult> > PublishModelBatchImplementationAsync(Batch batch, Guid uniqueId, string targetSiteUrl, string targetWebServerRelativeUrl,
                                                                                                                      string targetLibraryServerRelativeUrl, MachineLearningPublicationViewOption viewOption)
        {
            System.Dynamic.ExpandoObject registerInfo = PublishModelApiRequestBody(uniqueId,
                                                                                   targetSiteUrl,
                                                                                   targetWebServerRelativeUrl,
                                                                                   targetLibraryServerRelativeUrl,
                                                                                   viewOption);

            string body = JsonSerializer.Serialize(registerInfo, PnPConstants.JsonSerializer_IgnoreNullValues_StringEnumConvertor);

            var apiCall = new ApiCall("_api/machinelearning/publications", ApiType.SPORest, body)
            {
                RawSingleResult   = new SyntexModelPublicationResult(),
                RawResultsHandler = (json, apiCall) =>
                {
                    List <SyntexModelPublicationResult> modelPublicationResults = ParseModelPublishResponse(json);
                    var firstModelPublicationResult = modelPublicationResults.First();
                    (apiCall.RawSingleResult as SyntexModelPublicationResult).ErrorMessage = firstModelPublicationResult.ErrorMessage;
                    (apiCall.RawSingleResult as SyntexModelPublicationResult).Publication  = firstModelPublicationResult.Publication;
                    (apiCall.RawSingleResult as SyntexModelPublicationResult).StatusCode   = firstModelPublicationResult.StatusCode;
                }
            };
            var batchRequest = await(ListItem as ListItem).RawRequestBatchAsync(batch, apiCall, HttpMethod.Post).ConfigureAwait(false);

            return(new BatchSingleResult <ISyntexModelPublicationResult>(batch, batchRequest.Id, apiCall.RawSingleResult as ISyntexModelPublicationResult));
        }
示例#10
0
        public async Task <IBatchSingleResult <ISyntexModelPublicationResult> > PublishModelBatchAsync(Batch batch, IList library, MachineLearningPublicationViewOption viewOption = MachineLearningPublicationViewOption.NewViewAsDefault)
        {
            // Ensure we have the needed data loaded
            await(library as List).EnsurePropertiesAsync(p => p.RootFolder).ConfigureAwait(false);
            await library.PnPContext.Web.EnsurePropertiesAsync(p => p.ServerRelativeUrl).ConfigureAwait(false);

            return(await PublishModelBatchImplementationAsync(batch, UniqueId,
                                                              library.PnPContext.Uri.AbsoluteUri.ToString(),
                                                              library.PnPContext.Web.ServerRelativeUrl,
                                                              library.RootFolder.ServerRelativeUrl,
                                                              viewOption).ConfigureAwait(false));
        }
示例#11
0
        public async Task <ISyntexModelPublicationResult> PublishModelAsync(IList library, MachineLearningPublicationViewOption viewOption = MachineLearningPublicationViewOption.NewViewAsDefault)
        {
            // Ensure we have the needed data loaded
            await(library as List).EnsurePropertiesAsync(p => p.RootFolder).ConfigureAwait(false);
            await library.PnPContext.Web.EnsurePropertiesAsync(p => p.ServerRelativeUrl).ConfigureAwait(false);

            return(ProcessModelPublishResponse(await PublishModelApiRequestAsync(UniqueId,
                                                                                 library.PnPContext.Uri.AbsoluteUri.ToString(),
                                                                                 library.PnPContext.Web.ServerRelativeUrl,
                                                                                 library.RootFolder.ServerRelativeUrl,
                                                                                 viewOption).ConfigureAwait(false)));
        }
示例#12
0
        public async Task <List <ISyntexModelPublicationResult> > PublishModelAsync(List <IList> libraries, MachineLearningPublicationViewOption viewOption = MachineLearningPublicationViewOption.NewViewAsDefault)
        {
            List <SyntexModelPublication> modelPublications = new List <SyntexModelPublication>();

            foreach (var library in libraries)
            {
                await(library as List).EnsurePropertiesAsync(p => p.RootFolder).ConfigureAwait(false);
                await library.PnPContext.Web.EnsurePropertiesAsync(p => p.ServerRelativeUrl).ConfigureAwait(false);

                modelPublications.Add(new SyntexModelPublication()
                {
                    ModelUniqueId = UniqueId,
                    TargetSiteUrl = library.PnPContext.Uri.ToString(),
                    TargetWebServerRelativeUrl     = library.PnPContext.Web.ServerRelativeUrl,
                    TargetLibraryServerRelativeUrl = library.RootFolder.ServerRelativeUrl,
                    ViewOption = viewOption
                });
            }
            return(ProcessModelPublishResponseMultiple(await PublishModelApiRequestAsync(modelPublications).ConfigureAwait(false)));
        }