예제 #1
0
        public static void AsService()
        {
            //Bootstrap
            var settings = ConnectionSettings.Create()
                           .SetDefaultUserCredentials(new UserCredentials("admin", "changeit"))
                           .KeepReconnecting()
                           .KeepRetrying()
                           //.UseConsoleLogger()
                           .Build();
            var conn = EventStoreConnection.Create(settings, new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1113));

            conn.ConnectAsync().Wait();

            var eventNamespace = "Registration.Blueprint.Events";
            var eventAssembly  = "Registration";

            var repo = new SimpleRepo(conn, eventNamespace, eventAssembly);

            var rm = new RoomsReader(() => conn, repo.Deserialize);

            MainBus = new SimpleBus();

            var roomSvc = new RoomSvc(repo);

            MainBus.Subscribe <AddRoom>(roomSvc);

            rm.Start();
            RoomReadModel = rm;
        }
    static void Main(string[] args)
    {
        var m = new SecureModel <string>();

        m.Data = "test";
        IReadModel <object> genericRead = (IReadModel <object>)m;

        Console.WriteLine(genericRead.Data);
    }
예제 #3
0
            public Task Apply(IReadModel readModel, IReadModelContext context, IDomainEvent domainEvent,
                              CancellationToken cancellationToken)
            {
                if (_asyncMethod != null)
                {
                    return(_asyncMethod(readModel, context, domainEvent, cancellationToken));
                }

                _syncMethod(readModel, context, domainEvent);
                return(Task.FromResult(true));
            }
예제 #4
0
        public void Save(IReadModel readModel)
        {
            CloudBlob blob = container.GetBlobReference(GetName(readModel.GetType().FullName));

            //blob.DeleteIfExists();

            using (var blobS = blob.OpenWrite())
            {
                Serializer.Serialize(blobS, readModel);
            }
        }
예제 #5
0
파일: ModuleBuilder.cs 프로젝트: wh-ess/ess
        private static void BuildReadModels(Assembly[] assemblies)
        {
            ReadModels.Clear();
            var types = from a in assemblies
                        from t in a.GetTypes()
                        where (typeof(IReadModel).IsAssignableFrom(t)) && t.FullName.Contains("Domain")
                        select t;

            foreach (var t in types)
            {
                IReadModel model = (IReadModel)ObjectContainer.Resolve(t);
                ReadModels.Add(t.FullName.Replace('.', '_').Replace("ESS_Domain_", "").Replace("ReadModels", ""), model);
            }
        }
        public void Save(IReadModel readModel)
        {
            var sourcePath = string.Format("{0}{1}{2}{3}", BasePath, Path.DirectorySeparatorChar, readModel.GetType().FullName, _rdmdlExtension);

            if (!Directory.Exists(BasePath))
            {
                Directory.CreateDirectory(BasePath);
            }

            var fileMode = FileMode.Truncate;

            if (!File.Exists(sourcePath))
            {
                fileMode = FileMode.CreateNew;
            }

            using (FileStream fs = new FileStream(sourcePath, fileMode, FileAccess.Write, FileShare.Read))
            {
                Serializer.Serialize(fs, readModel);
            }
        }
예제 #7
0
 public GetSettlementHandler(IReadModel readModel, IDataContext dataContext) : base(readModel)
 {
     _dataContext = dataContext;
 }
예제 #8
0
 public UserController()
 {
     readModel = new EFReadModel(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
     bus = ServiceLocator.Bus;
 }
예제 #9
0
 public QueryHandler(IReadModel readModel)
 {
     _readModel = readModel;
 }
예제 #10
0
        /// <summary>
        ///     对readmodel进行重建
        /// </summary>
        /// <param name="readModel"></param>
        public void Repaly(IReadModel readModel)
        {
            var events = _eventStore.LoadEventsAll();

            readModel.Rebuild(events);
        }
예제 #11
0
 public GetProductsHandler(IReadModel readModel, IDataContext dataContext) : base(readModel)
 {
     _dataContext = dataContext;
 }
예제 #12
0
 public GetSpendingsHandler(IReadModel readModel, IDataContext dataContext) : base(readModel)
 {
     _dataContext = dataContext;
 }
예제 #13
0
 public BookingsClient(IBus bus, IReadModel readModel)
 {
     _bus       = bus;
     _readModel = readModel;
 }
예제 #14
0
 public void Publish(IReadModel readModel)
 {
     this.readModels.Add(readModel);
 }
예제 #15
0
 public GetCurrentOrdersHandler(IReadModel readModel, IDataContext dataContext) : base(readModel)
 {
     _dataContext = dataContext;
 }
예제 #16
0
 public GetTopTenHandler(IReadModel readModel, IDataContext dataContext) : base(readModel)
 {
     _dataContext = dataContext;
 }
예제 #17
0
 public GetOrdersOfSpendingHandler(IReadModel readModel, IDataContext dataContext) : base(readModel)
 {
     _dataContext = dataContext;
 }
예제 #18
0
 public GetConsumptionBetweenHandler(IReadModel readModel, IDataContext dataContext) : base(readModel)
 {
     _dataContext = dataContext;
 }