Skip to content

Commit

Permalink
Migrated to Unity 5.8
Browse files Browse the repository at this point in the history
  • Loading branch information
PawelTroka committed Nov 2, 2018
1 parent 6f26048 commit 6296afa
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 42 deletions.
38 changes: 26 additions & 12 deletions Computator.NET.Core/Bootstrapping/CoreBootstrapper.cs
Expand Up @@ -7,9 +7,23 @@
using Computator.NET.Core.Services.ErrorHandling;
using Unity;
using Unity.Lifetime;
using Unity.Registration;

namespace Computator.NET.Core.Bootstrapping
{
public static class ContainerExtensions
{
public static void RegisterTypeLegacy<TFrom, TTo>(this IUnityContainer container, params InjectionMember[] injectionMembers) where TTo : TFrom
{
container.RegisterTypeLegacy<TFrom, TTo>(null, injectionMembers);
}

public static void RegisterTypeLegacy<TFrom, TTo>(this IUnityContainer container, LifetimeManager lifetimeManager, params InjectionMember[] injectionMembers) where TTo : TFrom
{
container.RegisterType<TTo>(lifetimeManager);
container.RegisterType<TFrom, TTo>();
}
}
public class CoreBootstrapper
{
public IUnityContainer Container { get; }
Expand Down Expand Up @@ -39,30 +53,30 @@ public void RegisterInstance<TInterface>(TInterface instance)
private void RegisterModel()
{
//models and business objects
Container.RegisterType<IModeDeterminer, ModeDeterminer>(new ContainerControlledLifetimeManager());
Container.RegisterType<ITslCompiler, TslCompiler>(new ContainerControlledLifetimeManager());
Container.RegisterType<IScriptEvaluator, ScriptEvaluator>(new ContainerControlledLifetimeManager());
Container.RegisterType<IExpressionsEvaluator, ExpressionsEvaluator>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IModeDeterminer, ModeDeterminer>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<ITslCompiler, TslCompiler>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IScriptEvaluator, ScriptEvaluator>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IExpressionsEvaluator, ExpressionsEvaluator>(new ContainerControlledLifetimeManager());

Container.RegisterType<IFunctionsDetailsFileSource, FunctionsDetailsFileSource>(new ContainerControlledLifetimeManager());
Container.RegisterType<IAutocompleteReflectionSource, AutocompleteReflectionSource>(new ContainerControlledLifetimeManager());
Container.RegisterType<IAutocompleteProvider, AutocompleteProvider>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IFunctionsDetailsFileSource, FunctionsDetailsFileSource>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IAutocompleteReflectionSource, AutocompleteReflectionSource>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IAutocompleteProvider, AutocompleteProvider>(new ContainerControlledLifetimeManager());

Container.RegisterType<IProcessRunnerService, ProcessRunnerService>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IProcessRunnerService, ProcessRunnerService>(new ContainerControlledLifetimeManager());
}

private void RegisterHandlers()
{
//singleton handlers
Container.RegisterType<IErrorHandler, SimpleErrorHandler>(new ContainerControlledLifetimeManager());
Container.RegisterType<IExceptionsHandler, ExceptionsHandler>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IErrorHandler, SimpleErrorHandler>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IExceptionsHandler, ExceptionsHandler>(new ContainerControlledLifetimeManager());
}

private void RegisterSharedObjects()
{
//shared singletons
Container.RegisterType<ISharedViewState, SharedViewState>(new ContainerControlledLifetimeManager());
Container.RegisterType<ICommandLineHandler, CommandLineHandler>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<ISharedViewState, SharedViewState>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<ICommandLineHandler, CommandLineHandler>(new ContainerControlledLifetimeManager());
}
}
}
Expand Up @@ -33,7 +33,7 @@ public FuzzyMatchingParameterOverrideWithFallback(Dictionary<string,T> parameter
}
}

public override IDependencyResolverPolicy GetResolver(IBuilderContext context, Type dependencyType)
public override IResolverPolicy GetResolver(IBuilderContext context, Type dependencyType)
{
Guard.ArgumentNotNull(context, nameof(context));

Expand Down
2 changes: 1 addition & 1 deletion Computator.NET.Core/Computator.NET.Core.csproj
Expand Up @@ -89,7 +89,7 @@
<PackageReference Include="Guards" Version="2.0.18298.2" />
<PackageReference Include="MathNet.Numerics" Version="4.6.0" />
<PackageReference Include="Meta.Numerics" Version="3.1.0" />
<PackageReference Include="Unity" Version="5.2.0" />
<PackageReference Include="Unity" Version="5.8.11" />
<PackageReference Include="Microsoft.Bcl.Async" Version="1.0.168" Condition="'$(TargetFramework)' == 'net40'" />
<ProjectReference Include="..\Computator.NET.DataTypes\Computator.NET.DataTypes.csproj" />
</ItemGroup>
Expand Down
56 changes: 28 additions & 28 deletions Computator.NET.Desktop/Bootstrapping/WinFormsBootstrapper.cs
Expand Up @@ -33,17 +33,17 @@ public WinFormsBootstrapper() : this(new UnityContainer())

public WinFormsBootstrapper(IUnityContainer coreContainer) : base(coreContainer)
{
Container.RegisterType<IApplicationManager, ApplicationManager>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IApplicationManager, ApplicationManager>(new ContainerControlledLifetimeManager());
RegisterWinFormsServices();
RegisterViews();
RegisterControls();
}

private void RegisterWinFormsServices()
{
Container.RegisterType<IMessagingService, MessagingService>();
Container.RegisterType<IShowFunctionDetails, WebBrowserForm>(new ContainerControlledLifetimeManager());
Container.RegisterType<IDialogFactory, WinFormsDialogFactory>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IMessagingService, MessagingService>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IShowFunctionDetails, WebBrowserForm>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IDialogFactory, WinFormsDialogFactory>(new ContainerControlledLifetimeManager());
}

public override T Create<T>()
Expand All @@ -70,40 +70,40 @@ private void CreatePresenters()
private void RegisterViews()
{
//views
Container.RegisterType<IMainView, MainView>(new ContainerControlledLifetimeManager());
Container.RegisterType<IExpressionView, ExpressionView>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IMainView, MainView>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IExpressionView, ExpressionView>(new ContainerControlledLifetimeManager());

// container.RegisterType<IMenuStripView, MenuStripView>(new ContainerControlledLifetimeManager());
// container.RegisterType<IToolbarView, ToolBarView>(new ContainerControlledLifetimeManager());
// container.RegisterTypeLegacy<IMenuStripView, MenuStripView>(new ContainerControlledLifetimeManager());
// container.RegisterTypeLegacy<IToolbarView, ToolBarView>(new ContainerControlledLifetimeManager());

Container.RegisterType<IChartingView, ChartingView>(new ContainerControlledLifetimeManager());
Container.RegisterType<IChartAreaValuesView, ChartAreaValuesView>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IChartingView, ChartingView>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IChartAreaValuesView, ChartAreaValuesView>(new ContainerControlledLifetimeManager());

Container.RegisterType<ICalculationsView, CalculationsView>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<ICalculationsView, CalculationsView>(new ContainerControlledLifetimeManager());

Container.RegisterType<INumericalCalculationsView, NumericalCalculationsView>(
Container.RegisterTypeLegacy<INumericalCalculationsView, NumericalCalculationsView>(
new ContainerControlledLifetimeManager());

Container.RegisterType<IScriptingView, ScriptingView>(new ContainerControlledLifetimeManager());
Container.RegisterType<ISolutionExplorerView, SolutionExplorerView>();
Container.RegisterTypeLegacy<IScriptingView, ScriptingView>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<ISolutionExplorerView, SolutionExplorerView>();

Container.RegisterType<ICustomFunctionsView, CustomFunctionsView>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<ICustomFunctionsView, CustomFunctionsView>(new ContainerControlledLifetimeManager());
}

private void RegisterControls()
{
//components and controls
//charts
Container.RegisterType<IChart2D, Chart2D>(new ContainerControlledLifetimeManager());
Container.RegisterType<IComplexChart, ComplexChart>(new ContainerControlledLifetimeManager());
Container.RegisterType<IChart3D, Chart3DControl>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IChart2D, Chart2D>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IComplexChart, ComplexChart>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IChart3D, Chart3DControl>(new ContainerControlledLifetimeManager());


//ExpressionTextBox
Container.RegisterType<IExpressionTextBox, ExpressionTextBox>(new ContainerControlledLifetimeManager());
Container.RegisterTypeLegacy<IExpressionTextBox, ExpressionTextBox>(new ContainerControlledLifetimeManager());
Container.RegisterType<ITextProvider>(new InjectionFactory(c => Container.Resolve<ExpressionTextBox>()));
Container.RegisterType<IOpenFileDialog, OpenFileDialogWrapper>();
Container.RegisterType<IClickedMouseButtonsProvider, MouseButtonsProvider>();
Container.RegisterTypeLegacy<IOpenFileDialog, OpenFileDialogWrapper>();
Container.RegisterTypeLegacy<IClickedMouseButtonsProvider, MouseButtonsProvider>();

//Scripting and CustomFunctions
Container.RegisterType<CodeEditorControlWrapper>("scripting");
Expand All @@ -117,19 +117,19 @@ private void RegisterControls()

//container.RegisterType<ICodeEditorView, CodeEditorControlWrapper>();//check
Container.RegisterType<ICodeEditorView>(
new InjectionFactory(c => Container.Resolve<CodeEditorControlWrapper>(_resolver)));
new InjectionFactory(c => c.Resolve<CodeEditorControlWrapper>(_resolver)));
Container.RegisterType<ICodeDocumentsEditor>(
new InjectionFactory(c => Container.Resolve<CodeEditorControlWrapper>(_resolver)));
new InjectionFactory(c => c.Resolve<CodeEditorControlWrapper>(_resolver)));
Container.RegisterType<IDocumentsEditor>(
new InjectionFactory(c => Container.Resolve<CodeEditorControlWrapper>(_resolver)));
new InjectionFactory(c => c.Resolve<CodeEditorControlWrapper>(_resolver)));
Container.RegisterType<ICanFileEdit>(
new InjectionFactory(c => Container.Resolve<CodeEditorControlWrapper>(_resolver)));
new InjectionFactory(c => c.Resolve<CodeEditorControlWrapper>(_resolver)));
Container.RegisterType<ICanOpenFiles>(
new InjectionFactory(c => Container.Resolve<CodeEditorControlWrapper>(_resolver)));
new InjectionFactory(c => c.Resolve<CodeEditorControlWrapper>(_resolver)));
Container.RegisterType<IScriptProvider>(
new InjectionFactory(c => Container.Resolve<CodeEditorControlWrapper>(_resolver)));
new InjectionFactory(c => c.Resolve<CodeEditorControlWrapper>(_resolver)));
Container.RegisterType<ISupportsExceptionHighliting>(
new InjectionFactory(c => Container.Resolve<CodeEditorControlWrapper>(_resolver)));
new InjectionFactory(c => c.Resolve<CodeEditorControlWrapper>(_resolver)));
}
}
}

0 comments on commit 6296afa

Please sign in to comment.