static void Main() { using (ContainerAccessor.RegisterComponents()) using (var mutex = CreateApplicationSpecificMutex()) { Bootstrapper.BootstrapApplication(); ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12; Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException); AppDomain.CurrentDomain.UnhandledException += (sender, e) => LogManager.GetLogger("errorLog").Error((Exception)e.ExceptionObject); CompileDefinitions(); ContainerAccessor.Resolve <IComicStore>().InitializeComicCache(); var mainForm = new MainForm(); //the synchronization context only becomes available after creating the form SynchronizationContext = SynchronizationContext.Current; //the DownloadSupervisor needs the SynchronizationContext, so I resolve it only after initializing the context mainForm.Presenter = ContainerAccessor.Resolve <IMainPresenter>(); ContainerAccessor.Resolve <ITrayIconController>().DisplayIcon(); Application.Run(mainForm); GC.KeepAlive(mutex); } }
public App() : this( ContainerAccessor.Resolve <ISession>(), ContainerAccessor.Resolve <IQueryHelper <Transaction> >(), ContainerAccessor.Resolve <IQueryHelper <Donator> >()) { }
public ContextBuilder <T> WithSecurity() { var securityService = ContainerAccessor.Resolve <ISecurityService>(); this.context = new AuthorizedEntitiesOnlyContext(context, securityService); return(this); }
protected IEnumerable <object> InvokeExpression(string expressionName, object argument, Context context) { canceler.ThrowIfCancellationRequested(); var expression = ContainerAccessor.Resolve <IExpression>(expressionName); return(expression.Invoke(argument, context)); }
public void Should_invoke_the_same_expression_each_time() { var expression = (CountingVisitExpression)ContainerAccessor.Resolve <IExpression>("visit"); var assembly = Compile("visit.boo"); var visit = (Definition)assembly.CreateInstance("_visit"); visit.Run(); Assert.Equal(3, expression.ExecutionCount); }
public void Should_invoke_the_registered_visit_expression() { var expression = (CountingVisitExpression)ContainerAccessor.Resolve <IExpression>("visit"); var assembly = Compile("visit.boo"); var visit = (Definition)assembly.CreateInstance("_visit"); visit.Run(); Assert.True(0 < expression.ExecutionCount); }
public void Should_invoke_the_associated_expression() { var assembly = CompileReferencingTests("custom_keywords.boo"); var definition = (Definition)assembly.CreateInstance("_custom_keywords"); definition.ComicInstance = new Core.ComicManagement.Comic(); definition.Run(); var foo = (FooExpression)ContainerAccessor.Resolve <IExpression>("foo"); Assert.True(foo.TimesInvoked > 1); }
public ContextBuilder <T> WithAuditableEntity() { if (!typeof(T).IsSubclassOf(typeof(AuditableEntity))) { return(this); } var securityService = ContainerAccessor.Resolve <ISecurityService>(); this.context = new AuditableEntityContext(context, securityService); return(this); }
public void Should_pass_the_context_to_the_expression() { var assembly = CompileReferencingTests("custom_keywords.boo"); var definition = (Definition)assembly.CreateInstance("_custom_keywords"); definition.ComicInstance = new Core.ComicManagement.Comic(); definition.Run(); var foo = (FooExpression)ContainerAccessor.Resolve <IExpression>("foo"); Assert.NotNull(foo.Context); }
public void Should_pass_the_argument_to_the_expression() { var assembly = CompileReferencingTests("custom_keywords.boo"); var definition = (Definition)assembly.CreateInstance("_custom_keywords"); definition.ComicInstance = new Core.ComicManagement.Comic(); definition.Run(); var bar = (BarExpression)ContainerAccessor.Resolve <IExpression>("bar"); Assert.Equal("baz", bar.Argument); }
public void Run() { canceler.AllowResuming(); var context = new Context(Id, Comic, ComicInstance.CurrentPage ?? new Uri(StartAt)); try { RunImpl(context); ContainerAccessor.Resolve <IAppController>().Raise(new DownloadFinished(context.ComicId)); } catch (OperationCanceledException) { } }
public static bool IsCurrentUserAuthorized <T>(params Permissions[] requiredPermissions) where T : Entity { var securityService = ContainerAccessor.Resolve <ISecurityService>(); var aUser = securityService.GetCurrentUserPrincipal(); if (aUser == null) { return(false); } foreach (var permission in requiredPermissions) { if (!securityService.IsAuthorized <T>(aUser.UserId, aUser.CompanyId, permission)) { return(false); } } return(true); }
private static void CompileDefinitions() { var definitionStore = ContainerAccessor.Resolve <IDefinitionStore>(); var compilationErrorController = ContainerAccessor.Resolve <ICompilationErrorController>(); do { try { definitionStore.InitializeDefinitionCache(); return; } catch (CompilationException ex) { var shouldRetry = compilationErrorController.DisplayError(ex); if (!shouldRetry) { Environment.Exit(1); } } }while (true); }
public SecurityRepository() : base(ContainerAccessor.Resolve <IDBContext>()) { }
/// <summary> /// Used by the setup kit to determine if the app is running or not. /// </summary> private static Mutex CreateApplicationSpecificMutex() { var appSettings = ContainerAccessor.Resolve <IAppSettings>(); return(new Mutex(true, appSettings.ApplicationGuid.ToString())); }
public QueryHelper() : this(ContainerAccessor.Resolve <ISession>()) { }
public ContextBuilder() { this.context = ContainerAccessor.Resolve <IDBContext>(); }
public static void SaveChanges() { var context = ContainerAccessor.Resolve <IDBContext>(); context.SaveChanges(); }
public static ITransaction BeginTransaction() { var context = ContainerAccessor.Resolve <IDBContext>(); return(context.BeginTransaction()); }