summaryrefslogtreecommitdiff
path: root/Juick/ViewModels/MessageListViewModelBase.cs
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2013-03-29 13:21:34 +0400
committerGravatar Vitaly Takmazov2013-03-29 13:21:34 +0400
commit3be6eccab55ca90a060cb56882c5675a7ad875ce (patch)
tree9fe780d5ed3067b7e55aaec691e360066182778b /Juick/ViewModels/MessageListViewModelBase.cs
parente20d55789c6ab0c2c6324eb6806c12cc96723eca (diff)
there is no need to implement INotifyPropertyChanged on post item
Diffstat (limited to 'Juick/ViewModels/MessageListViewModelBase.cs')
-rw-r--r--Juick/ViewModels/MessageListViewModelBase.cs118
1 files changed, 0 insertions, 118 deletions
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<MessageListViewModelBase>(x => x.IsDataLoading);
- bool isDataLoading;
-
- public MessageListViewModelBase()
- {
- Items = new ObservableCollection<MessageViewModel>();
- LoadMessagesPageCommand = new DelegateCommand(LoadData, () => !IsDataLoading);
- }
-
- public string RestUri { get; set; }
- public virtual string Caption { get { return "juick"; } }
-
- /// <summary>
- /// A collection for MessageViewModel objects.
- /// </summary>
- public ObservableCollection<MessageViewModel> Items { get; private set; }
-
- public DelegateCommand LoadMessagesPageCommand { get; private set; }
-
- public bool IsDataLoading
- {
- get { return isDataLoading; }
- set
- {
- isDataLoading = value;
- NotifyPropertyChanged(IsDataLoadingPropertyName);
- LoadMessagesPageCommand.NotifyCanExecuteChanged();
- }
- }
-
- /// <summary>
- /// Creates and adds a few MessageViewModel objects into the Items collection.
- /// </summary>
- 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<List<Message>>(request, ProcessResponse);
- IsDataLoading = true;
- }
-
- void ProcessResponse(IRestResponse<List<Message>> 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));
- }
- }
- }
-}