1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
using System;
using System.Collections.Generic;
using QuickRoute.BusinessEntities.WinSplitsWebService;
namespace QuickRoute.BusinessEntities.ExternalLapDataSources.WinSplits
{
public class WinSplitsLapDataSource : IExternalLapDataSource
{
private readonly WebServices service = new WebServices();
public IEnumerable<Event> GetEvents(DateTime startDate, DateTime endDate, string country)
{
var events = service.GetEvents(startDate, endDate, country);
var translatedEvents = new List<Event>();
foreach(var e in events)
{
translatedEvents.Add(TranslateEvent(e));
}
return translatedEvents;
}
public IEnumerable<Category> GetCategories(string eventId)
{
var categories = service.GetCategories(int.Parse(eventId));
var translatedCategories = new List<Category>();
foreach (var c in categories)
{
translatedCategories.Add(TranslateCategory(c));
}
return translatedCategories;
}
public IEnumerable<Runner> GetRunnersAndSplits(string eventId, int categoryIndex)
{
var runners = service.GetRunnersAndSplits(int.Parse(eventId), (short)categoryIndex);
var translatedRunners = new List<Runner>();
foreach (var r in runners)
{
translatedRunners.Add(TranslateRunner(r));
}
return translatedRunners;
}
private static Event TranslateEvent(WinSplitsWebService.Event e)
{
return new Event()
{
DatabaseId = e.DatabaseId.ToString(),
Name = e.Name,
Organiser = e.Organiser,
StartDate = e.StartDate
};
}
private static Category TranslateCategory(WinSplitsWebService.Category c)
{
return new Category()
{
Name = c.Name
};
}
private static Runner TranslateRunner(WinSplitsWebService.Runner r)
{
return new Runner()
{
Name = r.Name,
Club = r.Club,
Splits = new List<DateTime>(r.Splits),
StartTime = r.StartTime,
FinishTime = r.FinishTime,
};
}
}
}
|