summaryrefslogtreecommitdiff
path: root/Juick/ViewModels/MainViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Juick/ViewModels/MainViewModel.cs')
-rw-r--r--Juick/ViewModels/MainViewModel.cs76
1 files changed, 60 insertions, 16 deletions
diff --git a/Juick/ViewModels/MainViewModel.cs b/Juick/ViewModels/MainViewModel.cs
index a504658..23ff020 100644
--- a/Juick/ViewModels/MainViewModel.cs
+++ b/Juick/ViewModels/MainViewModel.cs
@@ -2,10 +2,13 @@
using System.ComponentModel;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Net;
using System.Runtime.Serialization.Json;
using System.Collections.ObjectModel;
using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media.Imaging;
using Juick.Api;
using RestSharp;
@@ -52,16 +55,36 @@ namespace Juick.ViewModels
var ser = new DataContractJsonSerializer(typeof (List<Message>));
var messages =
- (List<Message>)ser.ReadObject(new MemoryStream(response.RawBytes));
+ ser.ReadObject(new MemoryStream(response.RawBytes)) as List<Message>;
MyFeed.Clear();
- messages.ForEach(post => MyFeed.Add(new MessageViewModel(post)
- {
- Status =
- string.Format(
- "Posted on: {0}, replies: {1}",
- post.timestamp,
- post.replies)
- }));
+ messages.ForEach(post =>
+ {
+ var item = new MessageViewModel(post)
+ {
+ Status =
+ string.Format(
+ "Posted on: {0}, replies: {1}",
+ post.
+ timestamp,
+ post.
+ replies)
+ };
+ MyFeed.Add(item);
+ var imageRequest =
+ new RestRequest(
+ string.Format("/as/{0}.png",
+ post.user.uid));
+ App.AvatarClient.ExecuteAsync(
+ imageRequest, restResponse =>
+ {
+ item.UserAvatar = new BitmapImage
+ ();
+ item.UserAvatar.SetSource(new MemoryStream(restResponse.RawBytes));
+ item.
+ NotifyPropertyChanged
+ ("UserAvatar");
+ });
+ });
NotifyPropertyChanged("MyFeed");
});
@@ -75,13 +98,34 @@ namespace Juick.ViewModels
(List<Message>)ser.ReadObject(ms);
if (messages == null) return;
Last.Clear();
- messages.ForEach(post => Last.Add(new MessageViewModel(post)
+ messages.ForEach(post =>
{
- Status = string.Format(
- "Posted on: {0}, replies: {1}",
- post.timestamp, post.replies
- )
- }));
+ var item = new MessageViewModel(post)
+ {
+ Status =
+ string.Format(
+ "Posted on: {0}, replies: {1}",
+ post.
+ timestamp,
+ post.
+ replies)
+ };
+ Last.Add(item);
+ var imageRequest =
+ new RestRequest(
+ string.Format("/as/{0}.png",
+ post.user.uid));
+ App.AvatarClient.ExecuteAsync(
+ imageRequest, restResponse =>
+ {
+ item.UserAvatar = new BitmapImage
+ ();
+ item.UserAvatar.SetSource(new MemoryStream(restResponse.RawBytes));
+ item.
+ NotifyPropertyChanged
+ ("UserAvatar");
+ });
+ });
NotifyPropertyChanged("Last");
}
});
@@ -89,7 +133,7 @@ namespace Juick.ViewModels
public event PropertyChangedEventHandler PropertyChanged;
- private void NotifyPropertyChanged(String propertyName)
+ public void NotifyPropertyChanged(String propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (null != handler)