Beispiel #1
0
        private static async Task MainAsync()
        {
            SyncConfiguration.SetFeatureToken(Constants.FeatureToken);

            var credentials = Credentials.UsernamePassword(Constants.RosUsername, Constants.RosPassword, createUser: false);
            var admin       = await User.LoginAsync(credentials, new Uri($"http://{Constants.RosUrl}"));

            // Hack to create synchronized Realm the first time it's used
            var syncConfig = new SyncConfiguration(admin, new Uri($"realm://{Constants.RosUrl}/{Constants.FeedbackRealm}"));

            using (var realm = Realm.GetInstance(syncConfig))
            {
                if (!realm.All <Foo>().Any())
                {
                    realm.Write(() => realm.Add(new Foo()));
                    await realm.GetSession().WaitForUploadAsync();

                    await admin.ApplyPermissionsAsync(PermissionCondition.Default, syncConfig.ServerUri.ToString(), AccessLevel.Write);
                }
            }

            var config = new NotifierConfiguration(admin)
            {
                Handlers         = { new FeedbackHandler() },
                WorkingDirectory = Path.Combine(Directory.GetCurrentDirectory(), Constants.NotifierDirectory)
            };

            using (var notifier = await Notifier.StartAsync(config))
            {
                do
                {
                    Console.WriteLine("Type in 'exit' to quit the app.");
                }while (Console.ReadLine() != "exit");
            }
        }