public CoreProxy(ICoreController controller, IModelUpdater modelUpdater) { m_controller = controller; ModelUpdater = modelUpdater; m_controller.StartStateChecking(HandleKeepaliveStateResponse); modelUpdater.Start(); }
public Task UpdateEditorAsync(UpdateEditorContext context, IModelUpdater modelUpdater) { return _drivers.InvokeAsync(async driver => { var result = await driver.UpdateEditorAsync(context, modelUpdater); if (result != null) result.Apply(context); }, Logger); }
protected ModelUpdaterTestBase() { var coreControllerMock = new Mock <ICoreController>(); CoreController = coreControllerMock.Object; CoreLink = new DummyModelResponseCoreLink(); ModelDiffApplier = new DummyModelDiffApplier(); m_modelUpdater = SetupModelUpdater(); }
public async Task ConnectToCoreAsync(ICoreConnectionParams connectionParams) { EndPoint endPoint = connectionParams.EndPoint; if (CoreProxy != null) { Log.Error("Cannot connect to core, there is still a core proxy present"); throw new InvalidOperationException( "There is still a core proxy present"); } if (connectionParams.IsCoreLocal) { if (m_process == null) { await m_charmdRunner.StartIfNotRunningAndWaitAsync( Path.Combine(connectionParams.CoreProcessParams.WorkingDirectory, CharmdRelativePath), CharmdStartWaitMs); // TODO(HonzaS): Move this elsewhere when we have finer local process control. Log.Info("Starting a local core process"); m_process = m_coreProcessFactory.Create(connectionParams.CoreProcessParams); } endPoint = m_process.EndPoint; } if (endPoint == null) { Log.Error("Endpoint not set up, cannot connect to core"); throw new InvalidOperationException("Endpoint not set"); } m_isCoreLocal = connectionParams.IsCoreLocal; Log.Info("Connecting to Core running at {hostname:l}:{port}", endPoint.Hostname, endPoint.Port); ICoreLink coreLink = m_coreLinkFactory.Create(endPoint); // TODO(HonzaS): Check if the endpoint exists (handshake), await the response. // TODO(HonzaS): Move these inside the factory method. ICoreController coreController = m_coreControllerFactory.Create(coreLink); IModelUpdater modelUpdater = m_modelUpdaterFactory.Create(coreLink, coreController); CoreProxy = m_coreProxyFactory.Create(coreController, modelUpdater); RegisterCoreEvents(); }
public override async Task UpdateEditorAsync(UpdateEditorContext context, IModelUpdater updater) { var testContentPart = context.Content.As <TestContentPartA>(); if (testContentPart == null) { return; } if (await updater.TryUpdateModelAsync(testContentPart, "")) { context.Content.ContentItem.Weld(testContentPart); } return; }
public override async Task UpdateEditorAsync(UpdateEditorContext context, IModelUpdater updater) { var testContentPart = context.Content.As<TestContentPartA>(); if (testContentPart == null) { return; } if(await updater.TryUpdateModelAsync(testContentPart, "")) { context.Content.ContentItem.Weld(testContentPart); } return; }
//TODO при запуске проверяет наличие миграций. Пока в топку //public static bool AllMigrationsApplied(this DbContext context) //{ // var applied = context.GetService<IHistoryRepository>() // .GetAppliedMigrations() // .Select(m => m.MigrationId); // var total = context.GetService<IMigrationsAssembly>() // .Migrations // .Select(m => m.Key); // return !total.Except(applied).Any(); //} // Импровизированный Seed как в EF6 public static void EnsureSeeded(this IModelUpdater context) { //Ensure we have some Roles if (!context.Roles.Any()) { var roles = new List <RoleModel>() { new RoleModel(Guid.NewGuid()) { Name = "user", RolePermission = ";user;" }, new RoleModel(Guid.NewGuid()) { Name = "admin", RolePermission = ";admin;" }, }; context.Roles.AddRange(roles); context.SaveChangesAsync(); } }
public override async Task<DisplayResult> UpdateEditorAsync(UpdateEditorContext context, IModelUpdater updater) { var testContentPart = context.Content.As<TestContentPartA>(); if (testContentPart == null) { return null; } if (await updater.TryUpdateModelAsync(testContentPart, "")) { if (testContentPart.Line.EndsWith(" ")) { updater.ModelState.AddModelError(nameof(testContentPart.Line), "Value cannot end with a space"); } else { context.Content.ContentItem.Weld(testContentPart); } } return Shape("TestContentPartA_Edit", testContentPart).Location("Content"); }
public void WriteHeader(IModelUpdater worker) { Write("{0}", worker.GetType().Name); }
public CoreProxyTests() { var modelUpdaterMock = new Mock <IModelUpdater>(); m_modelUpdater = modelUpdaterMock.Object; }
public CityUpdater(IModelUpdater context) { _context = context; }
public WorkshopUpdater(IModelUpdater context) { _context = context; }
public UserUpdater(IModelUpdater context) { _context = context; }
public ProjectUpdater(IModelUpdater context) { _context = context; }
public JobUpdater(IModelUpdater context) { _context = context; }
public async Task<dynamic> UpdateEditorAsync(IContent content, IModelUpdater updater, string groupInfoId) { if (content == null || content.ContentItem == null) { throw new ArgumentNullException(nameof(content)); } var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(content.ContentItem.ContentType); JToken stereotype; if (!contentTypeDefinition.Settings.TryGetValue("Stereotype", out stereotype)) { stereotype = "Content"; } var actualShapeType = stereotype + "_Edit"; dynamic itemShape = CreateContentShape(actualShapeType); itemShape.ContentItem = content.ContentItem; var theme = await _themeManager.GetThemeAsync(); var shapeTable = _shapeTableManager.GetShapeTable(theme.Id); // adding an alternate for [Stereotype]_Edit__[ContentType] e.g. Content-Menu.Edit ((IShape)itemShape).Metadata.Alternates.Add(actualShapeType + "__" + content.ContentItem.ContentType); var context = new UpdateEditorContext(itemShape, content, groupInfoId, _shapeFactory); await BindPlacementAsync(context, null, stereotype.Value<string>()); await _handlers.InvokeAsync(handler => handler.UpdateEditorAsync(context, updater), Logger); return context.Shape; }
public CustomerUpdater(IModelUpdater context, IMessagePublisher messagePublisher) { _messagePublisher = messagePublisher; _context = context; }
public ICoreProxy Create(ICoreController controller, IModelUpdater modelUpdater) { return(InjectProperties(new CoreProxy(controller, modelUpdater))); }
public virtual Task UpdateEditorAsync(UpdateEditorContext context, IModelUpdater updater) { return(Task.CompletedTask); }
private ServiceTypeProvider() { var modelFactories = new IModelFactory[] { new SessionTimeFactory(), new MageKnightFactory(), new UserFactory(), new UserCollectionFactory(), new GameFactory(), new GamesFactory(), new DialFactory(), new StatFactory(), new ClickFactory(), }; this.modelFactoryResolver = new ModelFactoryResolver(modelFactories); this.defaultModel = new DefaultModel.DefaultModel(this.modelFactoryResolver); IEnumerable <IQueryFactory> queryFactories; queryFactories = new IQueryFactory[] { new SessionTimeQueryFactory(this.modelFactoryResolver, this.defaultModel), new MageKnightQueryFactory(this.modelFactoryResolver, this.defaultModel), new UserQueryFactory(this.modelFactoryResolver, this.defaultModel), new UserCollectionQueryFactory(this.modelFactoryResolver, this.defaultModel), new GameQueryFactory(this.modelFactoryResolver, this.defaultModel), new GamesQueryFactory(this.modelFactoryResolver, this.defaultModel), new DialQueryFactory(this.modelFactoryResolver, this.defaultModel), new ClickQueryFactory(this.modelFactoryResolver, this.defaultModel), new StatQueryFactory(this.modelFactoryResolver, this.defaultModel), }; this.queryFactoryResolver = new QueryFactoryResolver(queryFactories); var modelUpdaters = new IModelUpdater[] { new SessionTimeChangedUpdater(this.modelFactoryResolver, this.defaultModel), new MageKnightChangedUpdater(this.modelFactoryResolver, this.defaultModel), new UserChangedUpdater(this.modelFactoryResolver, this.defaultModel), new UserCollectionAddedUpdater(this.modelFactoryResolver, this.defaultModel), new UserInventoryAddUpdater(this.modelFactoryResolver, this.defaultModel), new UserArmyAddUpdater(this.modelFactoryResolver, this.defaultModel), new UserAddedMageToArmyUpdater(this.modelFactoryResolver, this.defaultModel), new GameChangedModelUpdater(this.modelFactoryResolver, this.defaultModel), new GamesChangedModelUpdater(this.modelFactoryResolver, this.defaultModel), new UserSignUpUpdater(this.modelFactoryResolver, this.defaultModel), new UserBoosterPackCountChangedUpdater(this.modelFactoryResolver, this.defaultModel), new UserSignInUpdater(this.modelFactoryResolver, this.defaultModel), new UserIsSignedInChangedUpdater(this.modelFactoryResolver, this.defaultModel), new GameJoinedUpdater(this.modelFactoryResolver, this.defaultModel), new MageKnightCoordinatesChangedUpdater(this.modelFactoryResolver, this.defaultModel), new UserSelectedMageChangedUpdater(this.modelFactoryResolver, this.defaultModel), new UserAddedMageToInventoryUpdater(this.modelFactoryResolver, this.defaultModel), }; this.modelUpdaterResolver = new ModelUpdaterResolver(modelUpdaters); var serverMessageHandlers = new IServerMessageHandler[] { new SessionTimeChangedHandler(this.modelUpdaterResolver), new MageKnightChangedHandler(this.modelUpdaterResolver), new UserChangedHandler(this.modelUpdaterResolver), new UserCollectionAddedHandler(this.modelUpdaterResolver), new UserInventoryAddHandler(this.modelUpdaterResolver), new UserAddedMageToArmyHandler(this.modelUpdaterResolver), new UserArmyAddHandler(this.modelUpdaterResolver), new GameChangedHandler(this.modelUpdaterResolver), new GamesChangedHandler(this.modelUpdaterResolver), new UserSignUpHandler(this.modelUpdaterResolver), new UserBoosterPackCountChangedHandler(this.modelUpdaterResolver), new UserSignInHandler(this.modelUpdaterResolver), new UserIsSignedInChangedHandler(this.modelUpdaterResolver), new GameJoinedHandler(this.modelUpdaterResolver), new MageKnightCoordinatesChangedHandler(this.modelUpdaterResolver), new UserSelectedMageChangedHandler(this.modelUpdaterResolver), new UserAddedMageToInventoryHandler(this.modelUpdaterResolver), }; var serverMessageHandlerResolver = new ServerMessageHandlerResolver(serverMessageHandlers); this.QueryHandlerCollectionFactory = new QueryHandlerCollectionFactory( this.queryFactoryResolver, serverMessageHandlerResolver); this.serviceClient = new Lazy <IServiceClient>( this.CreateServiceClient, LazyThreadSafetyMode.ExecutionAndPublication); this.sessionTimeProxyFactory = new Lazy <ISessionTimeProxyFactory>( this.CreateSessionTimeProxyFactory, LazyThreadSafetyMode.ExecutionAndPublication); this.sessionTime = new Lazy <ISessionTime>( this.CreateSessionTime, LazyThreadSafetyMode.ExecutionAndPublication); this.mageKnightProxyFactory = new Lazy <IMageKnightModelProxyFactory>( this.CreateMageKnightProxyFactory, LazyThreadSafetyMode.ExecutionAndPublication); this.mageKnight = new Lazy <IMageKnightModel>( this.CreateMageKnight, LazyThreadSafetyMode.ExecutionAndPublication); this.userProxyFactory = new Lazy <IUserModelProxyFactory>( this.CreateUserProxyFactory, LazyThreadSafetyMode.ExecutionAndPublication); this.user = new Lazy <IUserModel>( this.CreateUser, LazyThreadSafetyMode.ExecutionAndPublication); this.userCollectionProxyFactory = new Lazy <IUserCollectionProxyFactory>( this.CreateUserCollectionProxyFactory, LazyThreadSafetyMode.ExecutionAndPublication); this.userCollection = new Lazy <IUserCollection>( this.CreateUserCollection, LazyThreadSafetyMode.ExecutionAndPublication); this.gameProxyFactory = new Lazy <IGameModelProxyFactory>( this.CreateGameProxyFactory, LazyThreadSafetyMode.ExecutionAndPublication); this.game = new Lazy <IGameModel>( this.CreateGame, LazyThreadSafetyMode.ExecutionAndPublication); this.gamesProxyFactory = new Lazy <IGamesModelProxyFactory>( this.CreateGamesProxyFactory, LazyThreadSafetyMode.ExecutionAndPublication); this.games = new Lazy <IGameModels>( this.CreateGames, LazyThreadSafetyMode.ExecutionAndPublication); }