Beispiel #1
0
        private ModelNode ReverseModel(ModelNode deployedModel,
                                       IEnumerable <Type> reverseHandlers,
                                       ReverseOptions options)
        {
            ReverseResult reverseResut = null;

            WithCSOMContext(context =>
            {
                var reverseService = new StandardCSOMReverseService();

                if (reverseHandlers != null)
                {
                    reverseService.Handlers.Clear();

                    foreach (var reverseHandler in reverseHandlers)
                    {
                        var reverseHandlerInstance = Activator.CreateInstance(reverseHandler)
                                                     as CSOMReverseHandlerBase;

                        reverseService.Handlers.Add(reverseHandlerInstance);
                    }
                }

                if (deployedModel.Value.GetType() == typeof(FarmDefinition))
                {
                    throw new SPMeta2NotImplementedException(
                        string.Format("Runner does not support model of type: [{0}]", deployedModel.Value.GetType()));
                }
                else if (deployedModel.Value.GetType() == typeof(WebApplicationDefinition))
                {
                    throw new SPMeta2NotImplementedException(
                        string.Format("Runner does not support model of type: [{0}]", deployedModel.Value.GetType()));
                }
                else if (deployedModel.Value.GetType() == typeof(SiteDefinition))
                {
                    reverseResut = reverseService.ReverseSiteModel(context, options);
                }
                else if (deployedModel.Value.GetType() == typeof(WebDefinition))
                {
                    reverseResut = reverseService.ReverseWebModel(context, options);
                }
                else if (deployedModel.Value.GetType() == typeof(ListDefinition))
                {
                    throw new SPMeta2NotImplementedException(
                        string.Format("Runner does not support model of type: [{0}]", deployedModel.Value.GetType()));
                }
                else
                {
                    throw new SPMeta2NotImplementedException(
                        string.Format("Runner does not support model of type: [{0}]", deployedModel.Value.GetType()));
                }
            });

            return(reverseResut.Model);
        }
        public void StandardCSOMReverseService_Has_Handlers()
        {
            var service = new StandardCSOMReverseService();

            Assert.IsTrue(service.Handlers.Count > 0);
        }