Synchronizing calendars for gmail and some events.
This commit is contained in:
@@ -125,7 +125,7 @@ namespace Wino.Calendar.ViewModels
|
||||
Type = MailSynchronizationType.UpdateProfile
|
||||
};
|
||||
|
||||
var profileSynchronizationResponse = await WinoServerConnectionManager.GetResponseAsync<MailSynchronizationResult, NewSynchronizationRequested>(new NewSynchronizationRequested(profileSyncOptions, SynchronizationSource.Client));
|
||||
var profileSynchronizationResponse = await WinoServerConnectionManager.GetResponseAsync<MailSynchronizationResult, NewMailSynchronizationRequested>(new NewMailSynchronizationRequested(profileSyncOptions, SynchronizationSource.Client));
|
||||
|
||||
var profileSynchronizationResult = profileSynchronizationResponse.Data;
|
||||
|
||||
@@ -141,11 +141,13 @@ namespace Wino.Calendar.ViewModels
|
||||
accountCreationDialog.State = AccountCreationDialogState.FetchingEvents;
|
||||
|
||||
// Start synchronizing events.
|
||||
var eventsSyncOptions = new MailSynchronizationOptions()
|
||||
var synchronizationOptions = new CalendarSynchronizationOptions()
|
||||
{
|
||||
AccountId = createdAccount.Id,
|
||||
Type = MailSynchronizationType.Events
|
||||
Type = CalendarSynchronizationType.CalendarMetadata
|
||||
};
|
||||
|
||||
var synchronizationResponse = await WinoServerConnectionManager.GetResponseAsync<CalendarSynchronizationResult, NewCalendarSynchronizationRequested>(new NewCalendarSynchronizationRequested(synchronizationOptions, SynchronizationSource.Client));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
@@ -8,13 +7,14 @@ using CommunityToolkit.Mvvm.Messaging;
|
||||
using Wino.Core.Domain.Collections;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.MenuItems;
|
||||
using Wino.Core.Domain.Models.Calendar;
|
||||
using Wino.Core.Domain.Models.Navigation;
|
||||
using Wino.Core.Domain.Models.Synchronization;
|
||||
using Wino.Core.Extensions;
|
||||
using Wino.Core.ViewModels;
|
||||
using Wino.Messaging.Client.Calendar;
|
||||
using Wino.Messaging.Client.Navigation;
|
||||
using Wino.Messaging.Server;
|
||||
|
||||
namespace Wino.Calendar.ViewModels
|
||||
{
|
||||
@@ -22,18 +22,17 @@ namespace Wino.Calendar.ViewModels
|
||||
IRecipient<VisibleDateRangeChangedMessage>,
|
||||
IRecipient<CalendarEnableStatusChangedMessage>,
|
||||
IRecipient<CalendarInitializedMessage>,
|
||||
IRecipient<NavigateManageAccountsRequested>
|
||||
IRecipient<NavigateManageAccountsRequested>,
|
||||
IRecipient<GoToCalendarDayMessage>
|
||||
{
|
||||
public event EventHandler<CalendarDisplayType> DisplayTypeChanged;
|
||||
public IPreferencesService PreferencesService { get; }
|
||||
public IStatePersistanceService StatePersistenceService { get; }
|
||||
public INavigationService NavigationService { get; }
|
||||
public IWinoServerConnectionManager ServerConnectionManager { get; }
|
||||
public MenuItemCollection FooterItems { get; set; }
|
||||
public MenuItemCollection MenuItems { get; set; }
|
||||
|
||||
[ObservableProperty]
|
||||
private IMenuItem _selectedMenuItem;
|
||||
private int _selectedMenuItemIndex = -1;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool isCalendarEnabled;
|
||||
@@ -62,10 +61,13 @@ namespace Wino.Calendar.ViewModels
|
||||
[ObservableProperty]
|
||||
private int _selectedDateNavigationHeaderIndex;
|
||||
|
||||
private readonly IAccountService _accountService;
|
||||
|
||||
public bool IsVerticalCalendar => StatePersistenceService.CalendarDisplayType == CalendarDisplayType.Month;
|
||||
|
||||
public AppShellViewModel(IPreferencesService preferencesService,
|
||||
IStatePersistanceService statePersistanceService,
|
||||
IAccountService accountService,
|
||||
INavigationService navigationService,
|
||||
IWinoServerConnectionManager serverConnectionManager)
|
||||
{
|
||||
@@ -74,6 +76,7 @@ namespace Wino.Calendar.ViewModels
|
||||
PreferencesService = preferencesService;
|
||||
|
||||
StatePersistenceService = statePersistanceService;
|
||||
_accountService = accountService;
|
||||
StatePersistenceService.StatePropertyChanged += PrefefencesChanged;
|
||||
}
|
||||
|
||||
@@ -93,20 +96,37 @@ namespace Wino.Calendar.ViewModels
|
||||
{
|
||||
base.OnNavigatedTo(mode, parameters);
|
||||
|
||||
CreateFooterItems();
|
||||
UpdateDateNavigationHeaderItems();
|
||||
}
|
||||
|
||||
partial void OnSelectedMenuItemChanged(IMenuItem oldValue, IMenuItem newValue)
|
||||
partial void OnSelectedMenuItemIndexChanged(int oldValue, int newValue)
|
||||
{
|
||||
if (newValue is SettingsItem)
|
||||
switch (newValue)
|
||||
{
|
||||
NavigationService.Navigate(WinoPage.SettingsPage);
|
||||
case -1:
|
||||
NavigationService.Navigate(WinoPage.CalendarPage);
|
||||
break;
|
||||
case 0:
|
||||
NavigationService.Navigate(WinoPage.AccountManagementPage);
|
||||
break;
|
||||
case 1:
|
||||
NavigationService.Navigate(WinoPage.SettingsPage);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
else if (newValue is ManageAccountsMenuItem)
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private void Sync()
|
||||
{
|
||||
var t = new NewCalendarSynchronizationRequested(new CalendarSynchronizationOptions()
|
||||
{
|
||||
NavigationService.Navigate(WinoPage.AccountManagementPage);
|
||||
}
|
||||
AccountId = Guid.Parse("52fae547-0740-4aa3-8d51-519bd31278ca"),
|
||||
Type = CalendarSynchronizationType.CalendarMetadata
|
||||
}, SynchronizationSource.Client);
|
||||
|
||||
Messenger.Send(t);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -142,14 +162,6 @@ namespace Wino.Calendar.ViewModels
|
||||
return DateTime.Today.Date;
|
||||
}
|
||||
|
||||
protected override void OnDispatcherAssigned()
|
||||
{
|
||||
base.OnDispatcherAssigned();
|
||||
|
||||
MenuItems = new MenuItemCollection(Dispatcher);
|
||||
FooterItems = new MenuItemCollection(Dispatcher);
|
||||
}
|
||||
|
||||
public override void OnPageLoaded()
|
||||
{
|
||||
base.OnPageLoaded();
|
||||
@@ -160,13 +172,6 @@ namespace Wino.Calendar.ViewModels
|
||||
});
|
||||
}
|
||||
|
||||
private void CreateFooterItems()
|
||||
{
|
||||
FooterItems.Clear();
|
||||
FooterItems.Add(new ManageAccountsMenuItem());
|
||||
FooterItems.Add(new SettingsItem());
|
||||
}
|
||||
|
||||
#region Commands
|
||||
|
||||
[RelayCommand]
|
||||
@@ -236,6 +241,8 @@ namespace Wino.Calendar.ViewModels
|
||||
// Calendar page is loaded and calendar is ready to recieve render requests.
|
||||
public void Receive(CalendarInitializedMessage message) => Messenger.Send(new GoToCalendarDayMessage(DateTime.Now.Date));
|
||||
|
||||
public void Receive(NavigateManageAccountsRequested message) => SelectedMenuItem = FooterItems.FirstOrDefault(a => a is ManageAccountsMenuItem);
|
||||
public void Receive(NavigateManageAccountsRequested message) => SelectedMenuItemIndex = 1;
|
||||
|
||||
public void Receive(GoToCalendarDayMessage message) => SelectedMenuItemIndex = -1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -375,62 +375,62 @@ namespace Wino.Calendar.ViewModels
|
||||
base.OnCalendarEventAdded(calendarItem);
|
||||
|
||||
// Test
|
||||
var eventDays = DayRanges.SelectMany(a => a.CalendarDays).Where(b => b.Period.Start.Date == calendarItem.StartTime.Date);
|
||||
//var eventDays = DayRanges.SelectMany(a => a.CalendarDays).Where(b => b.Period.Start.Date == calendarItem.StartTime.Date);
|
||||
|
||||
var beforeAllDay = new CalendarItem(calendarItem.StartTime.Date.AddHours(0), calendarItem.StartTime.Date.AddMinutes(30))
|
||||
{
|
||||
Title = "kj"
|
||||
};
|
||||
//var beforeAllDay = new CalendarItem(calendarItem.StartTime.Date.AddHours(0), calendarItem.StartTime.Date.AddMinutes(30))
|
||||
//{
|
||||
// Title = "kj"
|
||||
//};
|
||||
|
||||
var allday = new CalendarItem(calendarItem.StartTime.Date.AddHours(1), calendarItem.StartTime.Date.AddHours(10).AddMinutes(59))
|
||||
{
|
||||
Title = "All day"
|
||||
};
|
||||
//var allday = new CalendarItem(calendarItem.StartTime.Date.AddHours(1), calendarItem.StartTime.Date.AddHours(10).AddMinutes(59))
|
||||
//{
|
||||
// Title = "All day"
|
||||
//};
|
||||
|
||||
var test = new CalendarItem(calendarItem.StartTime.Date.AddHours(4), calendarItem.StartTime.Date.AddHours(4).AddMinutes(30))
|
||||
{
|
||||
Title = "test"
|
||||
};
|
||||
//var test = new CalendarItem(calendarItem.StartTime.Date.AddHours(4), calendarItem.StartTime.Date.AddHours(4).AddMinutes(30))
|
||||
//{
|
||||
// Title = "test"
|
||||
//};
|
||||
|
||||
var hour = new CalendarItem(calendarItem.StartTime.Date.AddHours(7), calendarItem.StartTime.Date.AddHours(8))
|
||||
{
|
||||
Title = "1 h"
|
||||
};
|
||||
//var hour = new CalendarItem(calendarItem.StartTime.Date.AddHours(7), calendarItem.StartTime.Date.AddHours(8))
|
||||
//{
|
||||
// Title = "1 h"
|
||||
//};
|
||||
|
||||
var hourandhalf = new CalendarItem(calendarItem.StartTime.Date.AddHours(7), calendarItem.StartTime.Date.AddHours(8).AddMinutes(30))
|
||||
{
|
||||
Title = "1.5 h"
|
||||
};
|
||||
var halfhour1 = new CalendarItem(calendarItem.StartTime.Date.AddHours(7), calendarItem.StartTime.Date.AddHours(7).AddMinutes(30))
|
||||
{
|
||||
Title = "30 min"
|
||||
};
|
||||
//var hourandhalf = new CalendarItem(calendarItem.StartTime.Date.AddHours(7), calendarItem.StartTime.Date.AddHours(8).AddMinutes(30))
|
||||
//{
|
||||
// Title = "1.5 h"
|
||||
//};
|
||||
//var halfhour1 = new CalendarItem(calendarItem.StartTime.Date.AddHours(7), calendarItem.StartTime.Date.AddHours(7).AddMinutes(30))
|
||||
//{
|
||||
// Title = "30 min"
|
||||
//};
|
||||
|
||||
var halfhour2 = new CalendarItem(calendarItem.StartTime.Date.AddHours(7).AddMinutes(30), calendarItem.StartTime.Date.AddHours(8))
|
||||
{
|
||||
Title = "30 min"
|
||||
};
|
||||
var halfhour3 = new CalendarItem(calendarItem.StartTime.Date.AddHours(8), calendarItem.StartTime.Date.AddHours(8).AddMinutes(30))
|
||||
{
|
||||
Title = "30 min"
|
||||
};
|
||||
//var halfhour2 = new CalendarItem(calendarItem.StartTime.Date.AddHours(7).AddMinutes(30), calendarItem.StartTime.Date.AddHours(8))
|
||||
//{
|
||||
// Title = "30 min"
|
||||
//};
|
||||
//var halfhour3 = new CalendarItem(calendarItem.StartTime.Date.AddHours(8), calendarItem.StartTime.Date.AddHours(8).AddMinutes(30))
|
||||
//{
|
||||
// Title = "30 min"
|
||||
//};
|
||||
|
||||
foreach (var day in eventDays)
|
||||
{
|
||||
await ExecuteUIThread(() =>
|
||||
{
|
||||
day.Events.Add(beforeAllDay);
|
||||
day.Events.Add(allday);
|
||||
day.Events.Add(hourandhalf);
|
||||
day.Events.Add(hour);
|
||||
day.Events.Add(halfhour1);
|
||||
day.Events.Add(halfhour2);
|
||||
day.Events.Add(halfhour3);
|
||||
day.Events.Add(test);
|
||||
});
|
||||
}
|
||||
//foreach (var day in eventDays)
|
||||
//{
|
||||
// await ExecuteUIThread(() =>
|
||||
// {
|
||||
// day.Events.Add(beforeAllDay);
|
||||
// day.Events.Add(allday);
|
||||
// day.Events.Add(hourandhalf);
|
||||
// day.Events.Add(hour);
|
||||
// day.Events.Add(halfhour1);
|
||||
// day.Events.Add(halfhour2);
|
||||
// day.Events.Add(halfhour3);
|
||||
// day.Events.Add(test);
|
||||
// });
|
||||
//}
|
||||
|
||||
return;
|
||||
//return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user