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); }