Beispiel #1
0
        private static List <Thread> Threads(ManualResetEventSlim mres, DataSpreaderService service, string name)
        {
            var threads = new List <Thread>();

            threads.AddRange(CreateWorkers(mres, () =>
            {
                try
                {
                    var result = service.GetAll();

                    Console.WriteLine($"Service {name}: has {result.Count} users");
                }
                catch (Exception)
                {
                }
            }, 5, 20));

            threads.AddRange(CreateWorkers(mres, () =>
            {
                try
                {
                    var result = service.GetByPredicate(new GenderCriteria {
                        Gender = GenderEnum.Male
                    });

                    Console.WriteLine($"Service {name}: has {result?.Count} males");
                }
                catch (Exception)
                {
                }
            }, 5, 20));

            threads.AddRange(CreateWorkers(mres, () =>
            {
                try
                {
                    var result = service.GetByPredicate(new PersonalIdCriteria {
                        PersonalId = "PiterSaint"
                    });

                    Console.WriteLine($"Service {name}: has {result?.Count} personal ids");
                }
                catch (Exception)
                {
                }
            }, 5, 20));

            return(threads);
        }
        public void Initialize()
        {
            this.master = new DataSpreaderService(
                new MasterService(
                    new BasicUserService(
                        new UserMemoryRepository(new IdGenerator(), new XmlUserRepositorySaver()),
                        new UserValidator())));

            this.slave  = new DataSpreaderService(new SlaveService(new BasicUserService()));
            this.slave1 = new DataSpreaderService(new SlaveService(new BasicUserService()));

            var sender   = new OneAppDataSender("1", this.slave, this.slave1);
            var receiver = new OneAppDataReceiver("2", this.master);

            this.master.AddDataSpreader(sender);
            this.slave.AddDataSpreader(receiver);
            this.slave1.AddDataSpreader(receiver);
        }
Beispiel #3
0
        public void AddDataSpreaders(ServiceConfiguration serviceElement, DataSpreaderService service)
        {
            var spreaders = new List <IDataSpreader <Message <User> > >();

            foreach (var spreaderElement in serviceElement.DataSpreaders)
            {
                var endPoints = spreaderElement.EndPoints
                                .Select(end => new IPEndPoint(IPAddress.Parse(end.Ip), int.Parse(end.Port))).ToArray();

                var spreader = Activator.CreateInstance(Type.GetType(spreaderElement.DataSpreaderType, true, true), spreaderElement.Name, endPoints) as IDataSpreader <Message <User> >;

                if (spreader != null)
                {
                    spreaders.Add(spreader);
                }
            }

            foreach (var item in spreaders)
            {
                service.AddDataSpreader(item);
            }
        }