public static void InitIoC(AssetManager assetManagerssets) { if (AppSettings.Container == null) { var builder = new ContainerBuilder(); var saverService = new SaverService(); var dataProvider = new DataProvider(saverService); var appInfo = new AppInfo(); var assetsHelper = new AssetsHelper(assetManagerssets); var connectionService = new ConnectionService(); var localization = dataProvider.SelectLocalization("en-us") ?? assetsHelper.GetLocalization("en-us"); var localizationManager = new LocalizationManager(localization); builder.RegisterInstance(assetsHelper).As <IAssetsHelper>().SingleInstance(); builder.RegisterInstance(appInfo).As <IAppInfo>().SingleInstance(); builder.RegisterInstance(saverService).As <ISaverService>().SingleInstance(); builder.RegisterInstance(dataProvider).As <IDataProvider>().SingleInstance(); builder.RegisterInstance(connectionService).As <IConnectionService>().SingleInstance(); builder.RegisterInstance(connectionService).As <IConnectionService>().SingleInstance(); builder.RegisterInstance(localizationManager).As <LocalizationManager>().SingleInstance(); var configInfo = assetsHelper.GetConfigInfo(); var reporterService = new ReporterService(appInfo, configInfo.RavenClientDsn); builder.RegisterInstance(reporterService).As <IReporterService>().SingleInstance(); AppSettings.Container = builder.Build(); } }
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { var builder = new ContainerBuilder(); var saverService = new SaverService(); var dataProvider = new DataProvider(saverService); var appInfo = new AppInfo(); var connectionService = new ConnectionService(); var assetsHelper = new AssetsHelper(); var localization = dataProvider.SelectLocalization("en-us") ?? assetsHelper.GetLocalization("en-us"); var localizationManager = new LocalizationManager(localization); var ravenClientDSN = assetsHelper.GetConfigInfo().RavenClientDsn; var reporterService = new ReporterService(appInfo, ravenClientDSN); builder.RegisterInstance(localizationManager).As <LocalizationManager>().SingleInstance(); builder.RegisterInstance(assetsHelper).As <IAssetsHelper>().SingleInstance(); builder.RegisterInstance(appInfo).As <IAppInfo>().SingleInstance(); builder.RegisterInstance(saverService).As <ISaverService>().SingleInstance(); builder.RegisterInstance(dataProvider).As <IDataProvider>().SingleInstance(); builder.RegisterInstance(reporterService).As <IReporterService>().SingleInstance(); builder.RegisterInstance(connectionService).As <IConnectionService>().SingleInstance(); AppSettings.Container = builder.Build(); AppDomain.CurrentDomain.UnhandledException += (object sender, UnhandledExceptionEventArgs e) => { //AppSettings.Reporter.SendCrash((Error)e.ExceptionObject); }; TaskScheduler.UnobservedTaskException += (object sender, UnobservedTaskExceptionEventArgs e) => { //AppSettings.Reporter.SendCrash(e.Error); }; Window = new UIWindow(UIScreen.MainScreen.Bounds); UIViewController initialViewController; if (BasePresenter.User.IsAuthenticated) { initialViewController = new MainTabBarController(); } else { initialViewController = new PreSearchViewController(); } if (BasePresenter.User.IsAuthenticated && !BasePresenter.User.IsNeedRewards) { BasePresenter.User.IsNeedRewards = true; // for ios users set true by default } Window.RootViewController = new InteractivePopNavigationController(initialViewController); Window.MakeKeyAndVisible(); return(true); }
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { var builder = new ContainerBuilder(); var saverService = new SaverService(); var dataProvider = new DataProvider(saverService); var appInfo = new AppInfo(); var connectionService = new ConnectionService(); var ravenClientDSN = DebugHelper.GetRavenClientDSN(); var reporterService = new ReporterService(appInfo, ravenClientDSN); builder.RegisterInstance(appInfo).As <IAppInfo>().SingleInstance(); builder.RegisterInstance(saverService).As <ISaverService>().SingleInstance(); builder.RegisterInstance(dataProvider).As <IDataProvider>().SingleInstance(); builder.RegisterInstance(reporterService).As <IReporterService>().SingleInstance(); builder.RegisterInstance(connectionService).As <IConnectionService>().SingleInstance(); AppSettings.Container = builder.Build(); AppDomain.CurrentDomain.UnhandledException += (object sender, UnhandledExceptionEventArgs e) => { //AppSettings.Reporter.SendCrash((Exception)e.ExceptionObject); }; TaskScheduler.UnobservedTaskException += (object sender, UnobservedTaskExceptionEventArgs e) => { //AppSettings.Reporter.SendCrash(e.Exception); }; Window = new UIWindow(UIScreen.MainScreen.Bounds); if (BasePresenter.User.IsAuthenticated) { InitialViewController = new MainTabBarController(); } else { InitialViewController = new PreSearchViewController(); } var navController = new UINavigationController(InitialViewController); Window.RootViewController = navController; Window.MakeKeyAndVisible(); return(true); }
static void Main(string[] args) { var callHandler = new CallHandlerService(); var reporter = new ReporterService(); //Populate stations. var stations = new List <IStation>(); IStation station = new Station(callHandler); stations.Add(station); // Populate tariff plans var tariffPlans = new List <ITariffPlan>() { new TariffPlanModel(cost: 4), new TariffPlanModel(cost: 10), new StandartTariffPlanModel() }; IBillingSystem billingSystem = new BillingSystemModel(tariffPlans); IOperator phoneOperator = new Operator(stations, billingSystem, reporter); reporter.RegisterStation(station); reporter.RegisterBillingSystem(billingSystem); reporter.RegisterOperator(phoneOperator); callHandler.RegisterStation(station); callHandler.RegisterBillingSystem(billingSystem); callHandler.RegisterOperator(phoneOperator); // Populate clients. var clients = new List <IClient>(); IClient client1 = new ClientModel(); IClient client2 = new ClientModel(); clients.Add(client1); clients.Add(client2); // Register clients foreach (var client in clients) { var(contract, terminal) = phoneOperator .SignContract( billingSystem .TariffPlans .ToList()[new Random().Next(0, billingSystem.TariffPlans.Count() - 1)], client ); client.Contracts.Add(contract); client.Terminals.Add(terminal); terminal.Connect(); } var randomTerminal = client2.Terminals.ToList()[new Random().Next(0, client2.Terminals.Count - 1)]; client1.Terminals.ToList()[new Random().Next(0, client1.Terminals.Count - 1)].Call(randomTerminal.Number); randomTerminal.Respond(); Thread.Sleep(1000); randomTerminal.Reject(); var report = phoneOperator.GetReport(client1); foreach (var r in report) { Console.WriteLine("/////////////////////////////////////////////////"); Console.WriteLine($"{r.CallerNumber} called {r.TargetNumber} at {r.StartedAt}"); Console.WriteLine($"Cost: {r.Cost}, Duration: {r.CallDuration.Seconds}"); Console.WriteLine("/////////////////////////////////////////////////"); } }