From 3be6eccab55ca90a060cb56882c5675a7ad875ce Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Fri, 29 Mar 2013 13:21:34 +0400 Subject: there is no need to implement INotifyPropertyChanged on post item --- Juick/ViewModels/MessageListViewModelBase.cs | 118 --------------------------- 1 file changed, 118 deletions(-) delete mode 100644 Juick/ViewModels/MessageListViewModelBase.cs (limited to 'Juick/ViewModels/MessageListViewModelBase.cs') diff --git a/Juick/ViewModels/MessageListViewModelBase.cs b/Juick/ViewModels/MessageListViewModelBase.cs deleted file mode 100644 index 3eb1842..0000000 --- a/Juick/ViewModels/MessageListViewModelBase.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.ComponentModel; -using System.Net; -using System.Windows; -using System.Windows.Media.Imaging; -using Juick.Classes; -using JuickApi; -using RestSharp; - -namespace Juick.ViewModels -{ - public class MessageListViewModelBase : INotifyPropertyChanged - { - static readonly string IsDataLoadingPropertyName = ExpressionHelper.GetPropertyName(x => x.IsDataLoading); - bool isDataLoading; - - public MessageListViewModelBase() - { - Items = new ObservableCollection(); - LoadMessagesPageCommand = new DelegateCommand(LoadData, () => !IsDataLoading); - } - - public string RestUri { get; set; } - public virtual string Caption { get { return "juick"; } } - - /// - /// A collection for MessageViewModel objects. - /// - public ObservableCollection Items { get; private set; } - - public DelegateCommand LoadMessagesPageCommand { get; private set; } - - public bool IsDataLoading - { - get { return isDataLoading; } - set - { - isDataLoading = value; - NotifyPropertyChanged(IsDataLoadingPropertyName); - LoadMessagesPageCommand.NotifyCanExecuteChanged(); - } - } - - /// - /// Creates and adds a few MessageViewModel objects into the Items collection. - /// - public void LoadData() - { - if (IsDataLoading) { - return; - } - - const int PageSize = 1; - - if (string.IsNullOrEmpty(RestUri)) - { - RestUri = "/home?1=1"; - } - - // super-костыли - // todo: rewrite - else if (RestUri.StartsWith("/home?", StringComparison.InvariantCulture) && Items.Count > 0) - { - var lastItem = Items[Items.Count - 1]; - RestUri = string.Format("/home?before_mid={0}&page={1}", lastItem.MID, PageSize); - } - else if (RestUri.StartsWith("/messages?", StringComparison.InvariantCulture) && Items.Count > 0) - { - var lastItem = Items[Items.Count - 1]; - RestUri = string.Format("/messages?before_mid={0}&page={1}", lastItem.MID, PageSize); - } - - var request = new RestRequest(RestUri + "&rnd=" + Environment.TickCount); - App.Client.Authenticator = new HttpBasicAuthenticator(App.Account.Credentials.UserName, App.Account.Credentials.Password); - App.Client.ExecuteAsync>(request, ProcessResponse); - IsDataLoading = true; - } - - void ProcessResponse(IRestResponse> response) - { - IsDataLoading = false; - if (response.StatusCode != HttpStatusCode.OK) - { - MessageBox.Show(response.StatusCode.ToString()); - return; - } - - //Items.Clear(); - foreach (var post in response.Data) - { - var status = string.Format("Posted on: {0}, replies: {1}", post.Timestamp, post.Replies); - var item = new MessageViewModel(post) - { - Status = status, - AvatarUri = new Uri(string.Format("http://i.juick.com/as/{0}.png", post.User.Uid), UriKind.Absolute) - }; - if (post.Photo != null) - { - item.Attachment = new Uri(post.Photo.Small, UriKind.Absolute) ; - } - Items.Add(item); - } - } - - - public event PropertyChangedEventHandler PropertyChanged; - - public void NotifyPropertyChanged(string propertyName) - { - if (PropertyChanged != null) - { - PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); - } - } - } -} -- cgit v1.2.3