Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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("/////////////////////////////////////////////////");
            }
        }