private async void Load() { var t = TaskStarted("dialogs"); try { var vkDialogs = await ServiceLocator.Vkontakte.Messages.GetDialogs(); if (!vkDialogs.Items.IsNullOrEmpty()) { var dialogs = await ProcessDialogs(vkDialogs.Items); _totalCount = vkDialogs.TotalCount; Dialogs = new IncrementalLoadingCollection <Dialog>(dialogs); Dialogs.HasMoreItemsRequested = () => _totalCount > Dialogs.Count; Dialogs.OnMoreItemsRequested = LoadMoreDialogs; if (((App)Application.Current).LaunchArgs != null) { var args = ((App)Application.Current).LaunchArgs; if (args != null && args.ContainsKey("uid")) { long uid = long.Parse(args["uid"]); var activeDialog = Dialogs.FirstOrDefault(d => d.User.Profile.Id == uid); SelectedDialog = activeDialog; } } } else { t.Error = Localizator.String("Errors/DialogsEmptyError"); } } catch (VkInvalidTokenException) { Messenger.Default.Send(new LoginStateChangedMessage() { IsLoggedIn = false }); Navigator.Main.Navigate(typeof(LoginView), clearHistory: true); } catch (Exception ex) { Logger.Error(ex, "Unable to load dialogs"); t.Error = Localizator.String("Errors/DialogsCommonError"); } t.Finish(); }