public void Initialize() { HTTPConfigurationProvider configurationProvider = new HTTPConfigurationProvider(); _community = new Community(IsolatedStorageStorageStrategy.Load()) .AddAsynchronousCommunicationStrategy(new BinaryHTTPAsynchronousCommunicationStrategy(configurationProvider) .SetNotificationStrategy(new WindowsPhoneNotificationStrategy(configurationProvider))) .Register<CorrespondenceModel>() .Subscribe(() => _individual) .Subscribe(() => _individual.MessageBoards) ; _individual = _community.AddFact(new Individual(GetAnonymousUserId())); configurationProvider.Individual = _individual; // Synchronize whenever the user has something to send. _community.FactAdded += delegate { Synchronize(); }; // Synchronize when the network becomes available. System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged += (sender, e) => { if (NetworkInterface.GetIsNetworkAvailable()) Synchronize(); }; // And synchronize on startup or resume. Synchronize(); }
public void Initialize() { HTTPConfigurationProvider configurationProvider = new HTTPConfigurationProvider(); string correspondenceDatabase = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "CorrespondenceApp", "Multichat", "Correspondence.sdf"); _community = new Community(new SSCEStorageStrategy(correspondenceDatabase)) .AddAsynchronousCommunicationStrategy(new BinaryHTTPAsynchronousCommunicationStrategy(configurationProvider)) .Register<CorrespondenceModel>() .Subscribe(() => _individual) .Subscribe(() => _individual.MessageBoards) ; _individual = _community.LoadFact<Individual>(ThisIndividual); if (_individual == null) { string randomId = Punctuation.Replace(Guid.NewGuid().ToString(), String.Empty).ToLower(); _individual = _community.AddFact(new Individual(randomId)); _community.SetFact(ThisIndividual, _individual); } // Synchronize whenever the user has something to send. _community.FactAdded += delegate { _community.BeginSending(); }; // Periodically resume if there is an error. DispatcherTimer synchronizeTimer = new DispatcherTimer(); synchronizeTimer.Tick += delegate { _community.BeginSending(); _community.BeginReceiving(); }; synchronizeTimer.Interval = TimeSpan.FromSeconds(60.0); synchronizeTimer.Start(); // And synchronize on startup. _community.BeginSending(); _community.BeginReceiving(); }