private static void ConfigureAutofac(HttpConfiguration config, IIssueStore issueStore) { var builder = new ContainerBuilder(); if (issueStore == null) { builder.RegisterType<InMemoryIssueStore>() .As<IIssueStore>() .InstancePerLifetimeScope(); } else { builder.RegisterInstance(issueStore); } builder.RegisterType<IssueStateFactory>() .As<IStateFactory<Issue, IssueState>>() .InstancePerLifetimeScope(); builder.RegisterType<IssueLinkFactory>() .InstancePerLifetimeScope(); builder.RegisterHttpRequestMessage(config); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); var container = builder.Build(); var resolver = new AutofacWebApiDependencyResolver(container); config.DependencyResolver = resolver; }
public static void Configure(HttpConfiguration config, IIssueStore issueStore = null) { config.Routes.MapHttpRoute("DefaultApi", "{controller}/{id}", new { id = RouteParameter.Optional }); ConfigureFormatters(config); ConfigureAutofac(config, issueStore); EnableCors(config); }
public IssueController(IIssueStore store, IStateFactory<Issue, IssueState> stateFactory, IssueLinkFactory linkFactory) { _store = store; _stateFactory = stateFactory; _linkFactory = linkFactory; }
public static void Configure(HttpConfiguration config, IIssueStore issueStore = null) { config.Routes.MapHttpRoute( "DefaultApi", "{controller}/{id}", new {id = RouteParameter.Optional}); ConfigureFormatters(config); ConfigureAutofac(config, issueStore); }
/// <summary> /// Get the current IIssueStore for this session /// </summary> /// <returns>The current IIssueStore object</returns> public static IIssueStore GetInstance() { // Note: this would just be a Lazy, except for the future need to reset the contents if reading a saved baseline IIssueStore store; if ((store = Store) == null) { lock (LockObject) { if ((store = Store) == null) { store = Store = new InMemoryIssueStore(); } } } return(store); }
/// <summary> /// Merge the contents of an enumerable IIssueStore into this IIssueStore /// </summary> /// <param name="sourceStore">The IssueStore that will provide the data</param> /// <returns>The number of issues merged/added</returns> /// <exception cref="InvalidOperationException">Thrown if the incompatible stores are chosen</exception> public static int MergeIssuesFromStore(this IIssueStore targetStore, IIssueStore sourceStore) { sourceStore.ArgumentIsNotNull(nameof(sourceStore)); targetStore.ArgumentIsNotNull(nameof(targetStore)); if (!sourceStore.IsEnumerable) { throw new InvalidOperationException("The Source store is not enumerable!"); } if (!targetStore.IsUpdatable) { throw new InvalidOperationException("The Target store is not updatable!"); } int issuesMergedOrAdded = 0; foreach (Issue sourceIssue in sourceStore.Issues) { bool updated = false; if (targetStore.TryFindIssue(sourceIssue.Fingerprint, out Issue existingIssue)) { foreach (ILocation newLocation in sourceIssue.Locations) { updated |= (existingIssue.AddLocation(newLocation) == AddResult.ExistingItemUpdated); } } else { updated |= (targetStore.AddIssue(sourceIssue) == AddResult.ItemAdded); } if (updated) { issuesMergedOrAdded++; } } return(issuesMergedOrAdded); }
public static void Configure(HttpConfiguration config, IIssueStore issueStore = null) { //api自描述接口路由 config.Routes.MapHttpRoute("Root", "", new { controller = "Home" }); //默认路由 uri中api对应RoutePrefix特性,{controller}对应Route特性 config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", new { id = RouteParameter.Optional }); //支持基于属性的路由 config.MapHttpAttributeRoutes(); //开启自定义操作筛选器 config.Filters.Add(new MyFilters.MyActionFilter()); //开启自定义授权筛选器 config.Filters.Add(new MyFilters.MyAuthorizationFilter()); ConfigureFormatters(config); ConfigureAutofac(config, issueStore); EnableCors(config); }
public static void ConfigureAutofac(HttpConfiguration config, IIssueStore issueStore) { var builder = new ContainerBuilder(); builder.RegisterApiControllers(typeof(IssueController).Assembly); if (issueStore == null) { builder.RegisterType <InMemoryIssueStore>().As <IIssueStore>().SingleInstance(); } else { builder.RegisterInstance(issueStore); } builder.RegisterType <IssueStateFactory>().As <IStateFactory <Issue, IssueState> >().InstancePerLifetimeScope(); builder.RegisterType <IssueLinkFactory>().InstancePerLifetimeScope(); builder.RegisterHttpRequestMessage(config); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); }
public IssueController(IIssueStore store, IStateFactory <Issue, IssueState> stateFactory, IssueLinkFactory linkFactory) { _store = store; _stateFactory = stateFactory; _linkFactory = linkFactory; }
public IssueProcessorController(IIssueStore issueStore) { _issueStore = issueStore; }
public JiraStateWriter(TeamMap teamMap, IIssueStore issueStore, IChangelogStore changelogStore) { _teamMap = teamMap; _issueStore = issueStore; _changelogStore = changelogStore; }
public JiraStateWriter(JiraConfig jiraConfig, TeamMap map) { _issueStore = new IssueStore(jiraConfig); _changelogStore = new ChangelogStore(jiraConfig); _teamMap = map; }