|
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Device.Location;
using System.Diagnostics;
using MyLastFm.Model;
namespace MyLastFm.ViewModel
{
public class CalendarViewModel : DisplayableViewModel<User>
{
private ImmediateLocation _location;
private GeoCoordinate _coordinate;
public CalendarViewModel(User u)
: base(u)
{
ViewModels.Args["user"] = Item.Name;
ViewModels.Add<Event>(new ItemsSourceViewModel<User, Event>("CalendarEvents", item => new EventViewModel(item)));
ViewModels.Add<Event>(new ItemsSourceViewModel<User, Event>("RecommendedEvents", item => new EventViewModel(item)));
_location = new ImmediateLocation(SetLocation);
}
public override void Refresh()
{
_coordinate = null;
_location.GetLocation();
ViewModels.Args["user"] = Item.Name;
base.Refresh();
}
protected override void OnAuthenticationChanged()
{
if (Authenticated)
ViewModels.Args["user"] = Item.Name;
base.OnAuthenticationChanged();
}
public AppViewModel CalendarEvents
{
get
{
return ViewModels.GetViewModel<Event>("CalendarEvents", Item.CalendarEvents);
}
}
public AppViewModel RecommendedEvents
{
get
{
return ViewModels.GetViewModel<Event>("RecommendedEvents", Item.RecommendedEvents);
}
}
private ItemsSourceViewModel<User, Event> _NearbyEvents = new ItemsSourceViewModel<User, Event>("NearbyEvents", item => new EventViewModel(item));
public AppViewModel NearbyEvents
{
get
{
_location.GetLocation();
return _NearbyEvents;
}
}
private void RefreshNearby()
{
if (_coordinate != null)
{
Item.NearbyEvents.Clear();
var args = new Dictionary<string, string>();
args.Add("lat", _coordinate.Latitude.ToString());
args.Add("long", _coordinate.Longitude.ToString());
_NearbyEvents.Load(args, Item.NearbyEvents);
}
}
void SetLocation(GeoCoordinate coordinate)
{
_coordinate = coordinate;
RefreshNearby();
}
public override void Cleanup()
{
if (_location != null)
_location.Dispose();
base.Cleanup();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
The first computer program I ever wrote was in BASIC on a TRS-80 Model I and it looked something like:
10 PRINT "Don is cool"
20 GOTO 10
It only went downhill from there.
Hey look, I've got a blog