/// <summary> /// Creates service according to config info /// </summary> /// <param name="configInfo"></param> /// <returns></returns> public UserService LoadService(ElementHelper configInfo) { UserService service; Communicator communicator; IUserRepository repository = new UserRepository(); if (configInfo.ServerType == "master") { Sender <BllUser> sender = new Sender <BllUser>(); communicator = new Communicator(sender); service = new MasterUserService(repository); } else if (configInfo.ServerType == "slave") { Receiver <BllUser> receiver = new Receiver <BllUser>(configInfo.IpEndPoint.Address, configInfo.IpEndPoint.Port); communicator = new Communicator(receiver); service = new SlaveUserService(repository); } else { throw new ArgumentException("Wrong service type!"); } service.Communicator = communicator; return(service); }
public static void Main(string[] args) { var appSettings = ConfigurationManager.AppSettings; var myappSet = (dynamic)ConfigurationManager.GetSection("Slaves"); List <KeyValuePair <int, string> > PortsAndHosts = new List <KeyValuePair <int, string> >(); for (int i = 0; i < Int32.Parse(myappSet["slavesNum"]); i++) { var temp = myappSet[$"Slave{i}"].Split(' '); PortsAndHosts.Add(new KeyValuePair <int, string>(int.Parse(temp[1]), temp[0])); } var slaveServices = new List <SlaveUserService>(); int counter = 0; foreach (var slaveSettings in PortsAndHosts) { var slave = new SlaveUserService(slaveSettings.Value, slaveSettings.Key); slaveServices.Add(slave.CreateSlaveServiceInNewDomain($"Slave{counter}")); counter++; } Func <User, bool> searchEngine1 = SearchByPredicate; var service = new MasterUserService(PortsAndHosts, ConfigurationManager.AppSettings["pathToXML"]); var master = service.CreateMasterServiceInNewDomain("Master"); master.Unload(); Func <User, bool> searchEngine = SearchByPredicate; var foundValues = master.SearchByPredicate(searchEngine); var foundValues2 = slaveServices[0].SearchByPredicate(searchEngine); Console.ReadKey(); }
static void Main(string[] args) { XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.UTF8, Indent = true }; MasterUserService master = new MasterUserService(new XmlStorage("users.xml", settings), new DefaultIdGenerator()); master.OnStart(); /*User a = new User("artem", "one", DateTime.Today); * a.VisaRecords.Add(new Visa() { Country = "Belarus", End = DateTime.Now, Start = DateTime.Now }); * a.VisaRecords.Add(new Visa() { Country = "Usa", End = DateTime.Now, Start = DateTime.Now }); * storage.Add(a, new CustomValidation()); * storage.Add(new User("dmitry", "four", DateTime.Today), new CustomValidation());*/ while (true) { Console.WriteLine("Write command:"); string command = Console.ReadLine(); switch (command) { case "savestate": master.SaveState(); break; case "stop": master.OnStop(); break; case "add": master.Add(new User("abrakadabra", "four", DateTime.Today), new CustomValidation()); break; case "all": foreach (var user in master.GetAll()) { Console.WriteLine(user); } break; case "delete1": master.Delete(1); break; case "delete": master.Delete(new User("dmitry", "four", DateTime.Today)); break; default: Console.WriteLine("Wrong command"); break; } } }
public AccountManager( ILogger logger, MasterUserService masterUserService, ProductService productService, MT4Manager mt4Manager) { m_ptrLogger = new ServerLogger(logger, nameof(AccountManager)); _masterUserService = masterUserService; _productService = productService; _mt4Manager = mt4Manager; }
public void Add_NullLastnameUser_ExceptionThrown() { MasterUserService service = new MasterUserService(); var user = new User() { FirstName = "Ivan", DateOfBirth = DateTime.Now }; service.Add(user); }
public FollowingManager( ILogger logger, MasterUserSettingService masterSettingsService, FollowerService followerService, SignalService signalService, MT4Manager mt4Manager, MasterUserService masterUserService) { m_ptrLogger = new ServerLogger(logger, nameof(FollowingManager)); _masterSettingsService = masterSettingsService; _followerService = followerService; _signalService = signalService; _mt4Manager = mt4Manager; _masterUserService = masterUserService; }
private static void Main(string[] args) { DomainInitialization.Load(); MasterUserService master = DomainInitialization.Master as MasterUserService; var slaves = DomainInitialization.Slaves.ToList().Select(a => a as SlaveUserService); RunMaster(master); RunSlaves(slaves); while (true) { var quit = Console.ReadKey(); if (quit.Key == ConsoleKey.Escape) { break; } } }
public void SearchByPredicate_UserNotFound_EmptyCollection() { MasterUserService service = new MasterUserService(); var user = new User() { FirstName = "Ivan", LastName = "Metelsky", DateOfBirth = DateTime.Now }; service.Add(user); var listUsers = service.SearchByPredicate((x) => { if (x == new User()) { return(true); } return(false); }); Assert.AreEqual(listUsers.Count(), 0); }
public void SearchByPredicate_UserExists_User() { MasterUserService service = new MasterUserService(); var user = new User() { FirstName = "Ivan", LastName = "Metelsky", DateOfBirth = DateTime.Now }; service.Add(user); var listUsers = service.SearchByPredicate((x) => { if (x == user) { return(true); } return(false); }); Assert.AreEqual(listUsers.First(), user); }
public void Delete_NullUser_ExceptionThrown() { MasterUserService service = new MasterUserService(); service.Delete(null); }
public void Add_NullUser_ExceptionThrown() { MasterUserService service = new MasterUserService(); service.Add(null); }
private static void RunMaster(MasterUserService master) { if (object.ReferenceEquals(master, null)) { return; } Random rand = new Random(); ThreadStart masterSearch = () => { while (true) { var serachresult = master.SearchForUsers(new Func <BllUser, bool>[] { u => u.FirstName != null }); Console.Write("Master search results: "); foreach (var result in serachresult) { Console.Write(result + " "); } Console.WriteLine(); Thread.Sleep(rand.Next(1000, 5000)); } }; ThreadStart masterAddDelete = () => { var users = new List <BllUser> { new BllUser { FirstName = "User1", LastName = "User1" }, new BllUser { FirstName = "User2", LastName = "User2" }, new BllUser { FirstName = "User3", LastName = "User3" } }; BllUser userToDelete = null; while (true) { foreach (var user in users) { int addChance = rand.Next(0, 5); if (addChance == 0) { master.Add(user); } Thread.Sleep(rand.Next(1000, 5000)); if (userToDelete != null) { int deleteChance = rand.Next(0, 5); if (deleteChance == 0) { master.Delete(userToDelete); } } userToDelete = user; Thread.Sleep(rand.Next(1000, 5000)); Console.WriteLine(); } } }; Thread masterSearchThread = new Thread(masterSearch) { IsBackground = true }; Thread masterAddThread = new Thread(masterAddDelete) { IsBackground = true }; Thread masterSearchThread1 = new Thread(masterSearch) { IsBackground = true }; Thread masterAddThread1 = new Thread(masterAddDelete) { IsBackground = true }; masterAddThread.Start(); masterSearchThread.Start(); masterAddThread1.Start(); masterSearchThread1.Start(); }