using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autofac;
using Autofac.Integration.Mvc;
using GreenTree.Nachtragsmanagement.Data;
using GreenTree.Nachtragsmanagement.Services.DbContext;
namespace GreenTree.Nachtragsmanagement.Web.Framework
{
public class ApplicationContext
{
#region Statics
///
/// Current ApplicationContext
///
private static ApplicationContext _current;
///
/// Returns the current ApplicationContext or creates one if doesn't exist already
///
public static ApplicationContext Current
{
get
{
if (_current == null)
{
_current = new ApplicationContext();
}
return _current;
}
}
#endregion
#region Fields
///
/// Returns the application wide container builder
///
private static IContainer _appContainer;
#endregion
#region Services
///
/// Returns the generel DbContextService
///
public DbContextService DbContextService { get; set; }
#endregion
#region Ctor
///
/// Initializes a new instance of the ApplicationContext class
///
public ApplicationContext()
{
DbContextService = new DbContextService(_appContainer.Resolve());
}
#endregion
#region Initialization
///
/// Registers all ressources needed by the ApplicationContext
///
public static void Init()
{
var appBuilder = new ContainerBuilder();
appBuilder
.RegisterInstance(new AppendixObjectContext("Server=localhost\\SQLEXPRESS;Database=Nachtragsmanagement;User Id=nachtragdat;Password=nachtragdat;"))
.As()
.SingleInstance();
_appContainer = appBuilder.Build();
}
#endregion
}
}