From 5f423939788d9e0e17246e5566157d0762903af9 Mon Sep 17 00:00:00 2001 From: marcinzelent Date: Wed, 1 Feb 2017 13:51:42 +0100 Subject: Finished program. --- EventMaker/EventMaker.sln.DotSettings | 2 + .../EventMaker/Converter/DateTimeConverter.cs | 6 +- EventMaker/EventMaker/EventMaker.csproj | 1 + EventMaker/EventMaker/Handler/EventHandler.cs | 32 +- EventMaker/EventMaker/Model/Event.cs | 12 +- .../EventMaker/Model/EventCatalogSingleton.cs | 17 +- .../EventMaker/Persistency/PersistencyService.cs | 23 +- EventMaker/EventMaker/Properties/Annotations.cs | 1048 ++++++++++++++++++++ EventMaker/EventMaker/View/CreateEventPage.xaml | 37 +- EventMaker/EventMaker/View/CreateEventPage.xaml.cs | 5 + EventMaker/EventMaker/View/EventPage.xaml | 30 +- EventMaker/EventMaker/View/EventPage.xaml.cs | 5 + EventMaker/EventMaker/ViewModel/EventViewModel.cs | 101 +- EventMaker/EventMaker/project.json | 2 +- 14 files changed, 1283 insertions(+), 38 deletions(-) create mode 100644 EventMaker/EventMaker.sln.DotSettings create mode 100644 EventMaker/EventMaker/Properties/Annotations.cs diff --git a/EventMaker/EventMaker.sln.DotSettings b/EventMaker/EventMaker.sln.DotSettings new file mode 100644 index 0000000..43585fa --- /dev/null +++ b/EventMaker/EventMaker.sln.DotSettings @@ -0,0 +1,2 @@ + + True \ No newline at end of file diff --git a/EventMaker/EventMaker/Converter/DateTimeConverter.cs b/EventMaker/EventMaker/Converter/DateTimeConverter.cs index 020761a..e6990e0 100644 --- a/EventMaker/EventMaker/Converter/DateTimeConverter.cs +++ b/EventMaker/EventMaker/Converter/DateTimeConverter.cs @@ -6,7 +6,11 @@ using System.Threading.Tasks; namespace EventMaker.Converter { - class DateTimeConverter + public class Converter { + public static DateTime DateTimeOffsetAndTimeSetToDateTime(DateTimeOffset date, TimeSpan time) + { + return new DateTime(date.Year, date.Month, date.Day, time.Hours, time.Minutes, 0); + } } } diff --git a/EventMaker/EventMaker/EventMaker.csproj b/EventMaker/EventMaker/EventMaker.csproj index 0503d76..c69fcc8 100644 --- a/EventMaker/EventMaker/EventMaker.csproj +++ b/EventMaker/EventMaker/EventMaker.csproj @@ -102,6 +102,7 @@ + CreateEventPage.xaml diff --git a/EventMaker/EventMaker/Handler/EventHandler.cs b/EventMaker/EventMaker/Handler/EventHandler.cs index d47466a..7050bcd 100644 --- a/EventMaker/EventMaker/Handler/EventHandler.cs +++ b/EventMaker/EventMaker/Handler/EventHandler.cs @@ -1,12 +1,32 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using EventMaker.Annotations; +using EventMaker.Model; +using EventMaker.ViewModel; namespace EventMaker.Handler { - class EventHandler + public class EventHandler { + public EventViewModel EventViewModel { get; set; } + public EventHandler(EventViewModel eventViewModel) + { + EventViewModel=eventViewModel; + } + + public void CreateEvent() + { + EventViewModel.EventCatalogSingleton.Add(new Event() + { + Id = EventViewModel.Id, + Name = EventViewModel.Name, + Description = EventViewModel.Description, + DateTime = Converter.Converter.DateTimeOffsetAndTimeSetToDateTime(EventViewModel.Date,EventViewModel.Time), + Place = EventViewModel.Place + }); + } + + public void DeleteEvent() + { + EventViewModel.EventCatalogSingleton.Remove(EventViewModel.EventCatalogSingleton.Events[EventViewModel.SelectedEventIndex]); + } } } diff --git a/EventMaker/EventMaker/Model/Event.cs b/EventMaker/EventMaker/Model/Event.cs index 35da990..ddf86a8 100644 --- a/EventMaker/EventMaker/Model/Event.cs +++ b/EventMaker/EventMaker/Model/Event.cs @@ -2,12 +2,12 @@ namespace EventMaker.Model { - class Event + public class Event { - DateTime DateTime { get; set; } - int Id { get; set; } - string Description { get; set; } - string Name { get; set; } - string Place { get; set; } + public DateTime DateTime { get; set; } + public int Id { get; set; } + public string Description { get; set; } + public string Name { get; set; } + public string Place { get; set; } } } diff --git a/EventMaker/EventMaker/Model/EventCatalogSingleton.cs b/EventMaker/EventMaker/Model/EventCatalogSingleton.cs index 44de27f..feeeea9 100644 --- a/EventMaker/EventMaker/Model/EventCatalogSingleton.cs +++ b/EventMaker/EventMaker/Model/EventCatalogSingleton.cs @@ -1,14 +1,16 @@ using System.Collections.ObjectModel; +using System; namespace EventMaker.Model { - class EventCatalogSingleton + public class EventCatalogSingleton { private static EventCatalogSingleton instance; - ObservableCollection Events; + private ObservableCollection _events; private EventCatalogSingleton() { - Events = new ObservableCollection(); + _events = new ObservableCollection(); + LoadEventsAsync(); } public static EventCatalogSingleton Instance { @@ -24,14 +26,21 @@ namespace EventMaker.Model public void Add(Event newEvent) { Events.Add(newEvent); + Persistency.PersistencyService.SaveEventsAsJsonAsync(Events); } public async void LoadEventsAsync() { - + Events = await Persistency.PersistencyService.LoadEventsFromJsonAsync(); } public void Remove(Event eventToBeRemoved) { Events.Remove(eventToBeRemoved); + Persistency.PersistencyService.SaveEventsAsJsonAsync(Events); + } + public ObservableCollection Events + { + get { return _events; } + set { _events = value; } } } } diff --git a/EventMaker/EventMaker/Persistency/PersistencyService.cs b/EventMaker/EventMaker/Persistency/PersistencyService.cs index 7d21b1c..4c78911 100644 --- a/EventMaker/EventMaker/Persistency/PersistencyService.cs +++ b/EventMaker/EventMaker/Persistency/PersistencyService.cs @@ -20,20 +20,21 @@ namespace EventMaker.Persistency private static StorageFile eventsFile; public static async void SaveEventsAsJsonAsync(ObservableCollection events) { - eventsFile = await localFolder.CreateFileAsync("events.json"); + eventsFile = await localFolder.CreateFileAsync("events.json",CreationCollisionOption.OpenIfExists); File.WriteAllText(eventsFile.Path, JsonConvert.SerializeObject(events)); } - public static async Task> LoadEventsFromJsonAsync() + public static async Task