public async Task StartInitializationModeAsync() { _logger.LogDebug("StartInitializationMode"); _initEntityStore = new InMemoryEntityStore(new OptionsWrapper <InMemoryEntityStoreOptions>( new InMemoryEntityStoreOptions()), new InMemoryEntityStoreConnectionProvider(), _loggerFactory, NullCacheClient.Instance, new OptionsWrapper <CacheOptions>( new CacheOptions { CachingDisabled = true } ) ); IsInitializing = true; IsLiveProcessing = false; IsReady = false; Status = new ProjectionStatus(); Status.SetEntityId(ProjectorId); Status.LastCheckPoint = -1; Status.ProjectorId = ProjectorId; Status.StreamName = StreamName; await EntityStore.InsertItemAsync(Status, _cancellationToken).ConfigureAwait(false); }
ProjectionStatus CreateStatusFromInfo(ProjectionInfo info, TenantId tenant = null) { var status = new ProjectionStatus { Alias = info.Alias, Copies = _definitionConverter.ToContractsCopySpecification(info.Definition.Copies), InitialState = info.Definition.InitialState, ScopeId = info.Definition.Scope.ToProtobuf(), ProjectionId = info.Definition.Projection.ToProtobuf(), }; status.Events.AddRange(_definitionConverter.ToContractsEventSelectors(info.Definition.Events)); status.Tenants.AddRange(CreateScopedStreamProcessorStatus(info, tenant)); return(status); }
public ProjectionVersion Parse(string columnFamily) { var parts = columnFamily.Split('_'); if (parts.Length < 3) { throw new ArgumentException($"Unable to parse '{nameof(ProjectionVersion)}' from '{columnFamily}'.", nameof(columnFamily)); } if (int.TryParse(parts[1], out var revision) == false) { throw new ArgumentException($"Invalid projection revision '{parts[1]}'.", nameof(columnFamily)); } return(new ProjectionVersion(parts[0], ProjectionStatus.Create("unknown"), revision, parts[2])); }
protected override void Seed(CinemaReserveDbContext context) { FreeSeatStatus = context.SeatStatus.FirstOrDefault(st => st.Status == "free") ?? new SeatStatus() { Status = "free" }; UpcomingReservationStatus = context.ProjectionStatuses.FirstOrDefault(st => st.Status == "upcoming") ?? new ProjectionStatus() { Status = "upcoming" }; for (int i = 0; i < 5; i++) { Cinema newCinema = this.GetCinema(i); context.Cinemas.Add(newCinema); } context.SaveChanges(); }
public async Task StartInitializationModeAsync() { _logger.LogDebug("StartInitializationMode"); _initEntityStore = new InMemoryEntityStore(new InMemoryEntityStoreOptions { CachingDisabled = true, CacheClient = NullCacheClient.Instance, LoggerFactory = _loggerFactory }, new InMemoryEntityStoreConnectionProvider()); InitializationMode = true; IsLiveProcessing = false; IsReady = false; Status = new ProjectionStatus(); Status.SetEntityId(ProjectorId); Status.LastCheckPoint = -1; await _initEntityStore.InsertItemAsync(Status); }
public IActionResult Finalize([FromBody] RequestModel model) { var version = new Projections.ProjectionVersion(model.ProjectionContractId, ProjectionStatus.Create(model.Version.Status), model.Version.Revision, model.Version.Hash); var command = new FinalizeProjectionVersionRequest(new ProjectionVersionManagerId(model.ProjectionContractId, context.Tenant), version); if (_publisher.Publish(command)) { return(new OkObjectResult(new ResponseResult())); } return(new BadRequestObjectResult(new ResponseResult <string>($"Unable to publish command '{nameof(FinalizeProjectionVersionRequest)}'"))); }