public static XmlDocument CreateTaskToastNotification(ITask task) { string content = string.Empty; try { XmlDocument xmlDocument = new XmlDocument(); const string templateXml = @" <toast scenario='reminder'> <visual> <binding template='ToastGeneric'> <text>{0}</text> <text>{1}</text> <image placement='AppLogoOverride' src='{2}' /> </binding> </visual> <actions> <input id='snoozeTime' type='selection' defaultInput='5'> <selection id='5' content='5 {3}' /> <selection id='30' content='30 {3}' /> <selection id='60' content='1 {4}' /> <selection id='240' content='4 {5}' /> <selection id='1440' content='1 {6}' /> </input> <action activationType='system' arguments='snooze' hint-inputId='snoozeTime' content=''/> <action content='{7}' arguments='{8}' activationType='background' /> <action content='{9}' arguments='{10}' activationType='foreground' /> </actions> <audio src='ms-winsoundevent:Notification.Reminder' /> </toast> "; content = string.Format( templateXml, SafeEscape(task.Title), // 0 SafeEscape(task.Note ?? string.Empty), // 1 ResourcesLocator.GetAppIconPng(), // 2 StringResources.Notification_SnoozeMinutes, // 3 StringResources.Notification_SnoozeHour, // 4 StringResources.Notification_SnoozeHours, // 5 StringResources.Notification_SnoozeDay, // 6 StringResources.Notification_Done, // 7 LaunchArgumentsHelper.GetArgCompleteTask(task), // 8 StringResources.Notification_Edit, // 9 LaunchArgumentsHelper.GetArgEditTask(task) // 10 ); xmlDocument.LoadXml(content); return(xmlDocument); } catch (Exception ex) { TrackingManagerHelper.Exception(ex, string.Format("Exception CreateTaskToastNotification: {0}", content)); return(null); } }
public static XmlDocument CreateTileNotification(string title, IList <ITask> tasks, IAbstractFolder folder = null) { string content = string.Empty; try { var xmlDocument = new XmlDocument(); const string templateXml = @" <tile> <visual branding=""nameAndLogo"" displayName=""{0}""> <binding template=""TileSmall"" hint-textStacking=""center"" branding=""none""> <image placement=""peek"" src=""{3}""/> <text hint-align=""center"" hint-style=""title"">{1}</text> </binding> <binding template=""TileMedium""> {2} </binding> <binding template=""TileWide"" hint-lockDetailedStatus1=""{4}"" hint-lockDetailedStatus2=""{5}"" hint-lockDetailedStatus3=""{6}""> <group> <subgroup hint-weight=""20"" hint-textStacking=""center""> <image src=""{3}""/> </subgroup> <subgroup hint-weight=""80"" hint-textStacking=""center""> {2} </subgroup> </group> </binding> <binding template=""TileLarge""> {2} </binding> </visual> </tile> "; var builder = new StringBuilder(); bool hasTask = false; string task1 = string.Empty; string task2 = string.Empty; string task3 = string.Empty; for (int i = 0; i < 10; i++) { string taskName = TryGetTaskAt(tasks, i); if (!string.IsNullOrWhiteSpace(taskName)) { var safeEscapeTaskName = SafeEscape(taskName); builder.AppendLine(string.Format("<text>{0}</text>", safeEscapeTaskName)); hasTask = true; if (i == 0) { task1 = safeEscapeTaskName; } else if (i == 1) { task2 = safeEscapeTaskName; } else if (i == 2) { task3 = safeEscapeTaskName; } } } if (!hasTask) { if (folder != null) { builder.AppendLine(string.Format("<text hint-style='captionsubtle' hint-wrap='true'>{0}</text>", SafeEscape(folder.EmptyHeader))); } else { builder.AppendLine(string.Format("<text hint-style='captionsubtle' hint-wrap='true'>{0}</text>", SafeEscape(StringResources.SystemView_Today_EmptyHeader))); } } string displayName = SafeEscape(title); string counter = tasks.Count.ToString(CultureInfo.InvariantCulture); string text = builder.ToString(); string picture = folder != null?ResourcesLocator.GetFolderIconPng(folder) : ResourcesLocator.GetAppIconPng(); content = string.Format( templateXml, displayName, // 0 counter, // 1 text, // 2 picture, // 3 task1, // 4 task2, // 5 task3 // 6 ); xmlDocument.LoadXml(content); return(xmlDocument); } catch (Exception ex) { TrackingManagerHelper.Exception(ex, string.Format("Exception CreateTileNotification: {0}", content)); return(null); } }