Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cordova-plugin-local-notifications
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nabil Sadki
cordova-plugin-local-notifications
Commits
8bbeabf0
Commit
8bbeabf0
authored
Jan 05, 2018
by
Sebastián Katzer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refacture trigger code with support for weekday+weekOfMonth (Windows)
parent
21ef5695
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
972 additions
and
468 deletions
+972
-468
README.md
README.md
+4
-4
plugin.xml
plugin.xml
+2
-1
LocalNotificationProxy.js
src/windows/LocalNotificationProxy.js
+6
-6
Builder.cs
...Proxy/LocalNotificationProxy/LocalNotification/Builder.cs
+11
-21
Manager.cs
...Proxy/LocalNotificationProxy/LocalNotification/Manager.cs
+3
-3
Notification.cs
.../LocalNotificationProxy/LocalNotification/Notification.cs
+1
-11
Options.cs
...Proxy/LocalNotificationProxy/LocalNotification/Options.cs
+3
-2
Request.cs
...Proxy/LocalNotificationProxy/LocalNotification/Request.cs
+255
-0
Button.cs
.../LocalNotificationProxy/LocalNotification/Toast/Button.cs
+1
-1
Every.cs
...y/LocalNotificationProxy/LocalNotification/Toast/Every.cs
+19
-31
IAction.cs
...LocalNotificationProxy/LocalNotification/Toast/IAction.cs
+1
-1
Input.cs
...y/LocalNotificationProxy/LocalNotification/Toast/Input.cs
+1
-1
ProgressBar.cs
...lNotificationProxy/LocalNotification/Toast/ProgressBar.cs
+1
-1
Trigger.cs
...LocalNotificationProxy/LocalNotification/Toast/Trigger.cs
+13
-273
DateTrigger.cs
...otificationProxy/LocalNotification/Trigger/DateTrigger.cs
+48
-0
IntervalTrigger.cs
...icationProxy/LocalNotification/Trigger/IntervalTrigger.cs
+90
-0
MatchTrigger.cs
...tificationProxy/LocalNotification/Trigger/MatchTrigger.cs
+389
-0
LocalNotificationProxy.csproj
...roxy/LocalNotificationProxy/LocalNotificationProxy.csproj
+12
-7
Microsoft.Toolkit.Uwp.Notifications.UWP.nuget.props
...s.UWP/Microsoft.Toolkit.Uwp.Notifications.UWP.nuget.props
+5
-4
Microsoft.Toolkit.Uwp.Notifications.UWP.nuget.targets
...UWP/Microsoft.Toolkit.Uwp.Notifications.UWP.nuget.targets
+2
-1
project.json
...dows/Microsoft.Toolkit.Uwp.Notifications.UWP/project.json
+1
-1
project.lock.json
...Microsoft.Toolkit.Uwp.Notifications.UWP/project.lock.json
+104
-99
No files found.
README.md
View file @
8bbeabf0
...
...
@@ -290,15 +290,15 @@ The properties depend on the trigger type. Not all of them are supported across
| | every | Object |
`minute`
| x | x | x |
| | every | Object |
`hour`
| x | x | x |
| | every | Object |
`day`
| x | x | x |
| | every | Object |
`weekday`
| x | x |
| | every | Object |
`weekday`
| x | x |
x |
| | every | Object |
`weekdayOrdinal`
| | x |
| | every | Object |
`week`
|
x | x | x
|
| | every | Object |
`weekOfMonth`
| x | x |
| | every | Object |
`week`
|
| x
|
| | every | Object |
`weekOfMonth`
| x | x |
x |
| | every | Object |
`month`
| x | x | x |
| | every | Object |
`quarter`
| | x |
| | every | Object |
`year`
| x | x | x |
| | before | Date | |
| | after | Date | | x | x |
| | after | Date | | x | x |
x |
| Location |
| | center | Array |
`[lat, long]`
| | x |
| | radius | Int | | | x |
...
...
plugin.xml
View file @
8bbeabf0
...
...
@@ -234,10 +234,11 @@
<!-- windows -->
<platform
name=
"windows"
>
<!--
<framework src="src/windows/lib.UW/x86/LocalNotificationProxy.winmd" target-dir="x86" arch="x86" custom="true"/>
<framework src="src/windows/lib.UW/x64/LocalNotificationProxy.winmd" target-dir="x64" arch="x64" custom="true"/>
<framework src="src/windows/lib.UW/ARM/LocalNotificationProxy.winmd" target-dir="ARM" arch="ARM" custom="true"/>
-->
<js-module
src=
"src/windows/LocalNotificationProxy.js"
name=
"LocalNotification.Proxy"
>
<merges
target=
""
/>
</js-module>
...
...
src/windows/LocalNotificationProxy.js
View file @
8bbeabf0
...
...
@@ -447,7 +447,7 @@ exports.parseOptions = function (obj) {
* @return [ LocalNotification.Trigger ]
*/
exports
.
parseTrigger
=
function
(
obj
)
{
var
trigger
=
new
LocalNotification
.
Trigger
(),
var
trigger
=
new
LocalNotification
.
T
oast
.
T
rigger
(),
spec
=
obj
.
trigger
,
val
;
if
(
!
spec
)
return
trigger
;
...
...
@@ -469,12 +469,12 @@ exports.parseTrigger = function (obj) {
* @return [ LocalNotification.Every|String ]
*/
exports
.
parseEvery
=
function
(
spec
)
{
var
every
=
new
LocalNotification
.
Every
();
var
every
=
new
LocalNotification
.
Toast
.
Every
();
if
(
typeof
spec
!==
'object'
)
return
spec
;
for
(
var
prop
in
every
)
{
if
(
spec
[
prop
]
)
every
[
prop
]
=
parseInt
(
spec
[
prop
]);
if
(
spec
.
hasOwnProperty
(
prop
)
)
every
[
prop
]
=
parseInt
(
spec
[
prop
]);
}
return
every
;
...
...
@@ -494,10 +494,10 @@ exports.parseActions = function (obj) {
for
(
var
action
of
obj
.
actions
)
{
if
(
!
action
.
type
||
action
.
type
==
'button'
)
{
btn
=
new
LocalNotification
.
Button
();
btn
=
new
LocalNotification
.
Toast
.
Button
();
}
else
if
(
action
.
type
==
'input'
)
{
btn
=
new
LocalNotification
.
Input
();
btn
=
new
LocalNotification
.
Toast
.
Input
();
}
for
(
var
prop
in
btn
)
{
...
...
@@ -518,7 +518,7 @@ exports.parseActions = function (obj) {
* @return [ LocalNotification.ProgressBar ]
*/
exports
.
parseProgressBar
=
function
(
obj
)
{
var
bar
=
new
LocalNotification
.
ProgressBar
(),
var
bar
=
new
LocalNotification
.
Toast
.
ProgressBar
(),
spec
=
obj
.
progressBar
;
if
(
!
spec
)
return
bar
;
...
...
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Builder.cs
View file @
8bbeabf0
...
...
@@ -27,12 +27,18 @@ namespace LocalNotificationProxy.LocalNotification
internal
class
Builder
{
/// <summary>
/// The provided trigger request.
/// </summary>
private
readonly
Request
request
;
/// <summary>
/// Initializes a new instance of the <see cref="Builder"/> class.
/// </summary>
/// <param name="
options">Notification properties to se
t.</param>
public
Builder
(
Options
options
)
/// <param name="
request">Trigger reques
t.</param>
public
Builder
(
Request
request
)
{
this
.
Content
=
new
Notification
(
options
);
this
.
request
=
request
;
this
.
Content
=
new
Notification
(
request
.
Options
);
}
/// <summary>
...
...
@@ -46,11 +52,6 @@ namespace LocalNotificationProxy.LocalNotification
private
Options
Options
{
get
=>
this
.
Content
.
Options
;
}
/// <summary>
/// Gets the trigger.
/// </summary>
private
Trigger
Trigger
{
get
=>
this
.
Options
.
Trigger
;
}
/// <summary>
/// Build a toast notification specified by the options.
/// </summary>
/// <returns>A fully configured toast notification instance.</returns>
...
...
@@ -66,17 +67,6 @@ namespace LocalNotificationProxy.LocalNotification
}
/// <summary>
/// If there is at least one more toast variant to build.
/// </summary>
/// <returns>True if there are more toasts to build.</returns>
public
bool
HasNext
()
=>
this
.
Trigger
.
Count
>=
this
.
Trigger
.
Occurrence
;
/// <summary>
/// Moves the flag to the next toast variant.
/// </summary>
public
void
MoveNext
()
=>
this
.
Trigger
.
Occurrence
+=
this
.
HasNext
()
?
1
:
0
;
/// <summary>
/// Gets the initialize skeleton for a toast notification.
/// </summary>
/// <returns>Basic skeleton with sound, image and text.</returns>
...
...
@@ -167,7 +157,7 @@ namespace LocalNotificationProxy.LocalNotification
private
ScheduledToastNotification
ConvertToastToNotification
(
ToastContent
toast
)
{
var
xml
=
toast
.
GetXml
();
var
at
=
this
.
Content
.
Date
;
var
at
=
this
.
request
.
Trigger
Date
;
ScheduledToastNotification
notification
;
if
(!
at
.
HasValue
)
...
...
@@ -188,7 +178,7 @@ namespace LocalNotificationProxy.LocalNotification
notification
.
Tag
=
this
.
Options
.
Id
.
ToString
();
notification
.
SuppressPopup
=
this
.
Options
.
Silent
;
if
(
this
.
Trigger
.
Occurrence
>
1
)
if
(
this
.
request
.
Occurrence
>
1
)
{
notification
.
Group
=
notification
.
Tag
;
}
...
...
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Manager.cs
View file @
8bbeabf0
...
...
@@ -46,7 +46,8 @@ namespace LocalNotificationProxy.LocalNotification
{
foreach
(
Options
options
in
notifications
)
{
var
builder
=
new
Builder
(
options
);
var
request
=
new
Request
(
options
);
var
builder
=
new
Builder
(
request
);
do
{
...
...
@@ -58,9 +59,8 @@ namespace LocalNotificationProxy.LocalNotification
}
ToastNotifier
.
AddToSchedule
(
toast
);
builder
.
MoveNext
();
}
while
(
builder
.
Has
Next
());
while
(
request
.
Move
Next
());
}
}
...
...
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Notification.cs
View file @
8bbeabf0
...
...
@@ -2,6 +2,7 @@
{
using
System
;
using
System.Collections.Generic
;
using
global
::
LocalNotificationProxy
.
LocalNotification
.
Toast
;
using
Microsoft.Toolkit.Uwp.Notifications
;
using
Windows.UI.Notifications
;
...
...
@@ -286,17 +287,6 @@
}
/// <summary>
/// Gets the date when to trigger the notification.
/// </summary>
public
DateTime
?
Date
{
get
{
return
this
.
Options
.
Trigger
.
Date
;
}
}
/// <summary>
/// Gets the instance as an serialized xml element.
/// </summary>
/// <returns>Element with all property values set as attributes.</returns>
...
...
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Options.cs
View file @
8bbeabf0
...
...
@@ -21,6 +21,7 @@
namespace
LocalNotificationProxy.LocalNotification
{
using
global
::
LocalNotificationProxy
.
LocalNotification
.
Toast
;
using
Windows.Data.Xml.Dom
;
public
sealed
class
Options
...
...
@@ -68,7 +69,7 @@ namespace LocalNotificationProxy.LocalNotification
/// <summary>
/// Gets or sets the notification trigger.
/// </summary>
public
Trigger
Trigger
{
get
;
set
;
}
public
T
oast
.
T
rigger
Trigger
{
get
;
set
;
}
/// <summary>
/// Gets or sets the notification user data.
...
...
@@ -105,7 +106,7 @@ namespace LocalNotificationProxy.LocalNotification
options
.
Id
=
int
.
Parse
(
node
.
GetAttribute
(
"id"
));
options
.
Badge
=
int
.
Parse
(
node
.
GetAttribute
(
"badge"
));
options
.
Trigger
=
Trigger
.
Parse
(
node
.
GetAttribute
(
"trigger"
));
options
.
Trigger
=
T
oast
.
T
rigger
.
Parse
(
node
.
GetAttribute
(
"trigger"
));
if
(
node
.
GetAttributeNode
(
"text"
)
!=
null
)
{
...
...
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Request.cs
0 → 100644
View file @
8bbeabf0
/*
* Apache 2.0 License
*
* Copyright (c) Sebastian Katzer 2017
*
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apache License
* Version 2.0 (the 'License'). You may not use this file except in
* compliance with the License. Please obtain a copy of the License at
* http://opensource.org/licenses/Apache-2.0/ and read it before using this
* file.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
* Please see the License for the specific language governing rights and
* limitations under the License.
*/
namespace
LocalNotificationProxy.LocalNotification
{
using
System
;
internal
class
Request
{
/// <summary>
/// The right trigger for the options
/// </summary>
private
readonly
Trigger
.
DateTrigger
trigger
;
/// <summary>
/// How often the trigger shall occur.
/// </summary>
private
readonly
int
count
;
/// <summary>
/// The trigger spec.
/// </summary>
private
readonly
Toast
.
Trigger
spec
;
/// <summary>
/// The current trigger date.
/// </summary>
private
DateTime
?
triggerDate
;
/// <summary>
/// Initializes a new instance of the <see cref="Request"/> class.
/// </summary>
/// <param name="options">The options spec.</param>
public
Request
(
Options
options
)
{
this
.
Options
=
options
;
this
.
spec
=
options
.
Trigger
;
this
.
count
=
Math
.
Max
(
this
.
spec
.
Count
,
1
);
this
.
trigger
=
this
.
BuildTrigger
();
this
.
triggerDate
=
this
.
trigger
.
GetNextTriggerDate
(
this
.
GetBaseDate
());
}
/// <summary>
/// Gets the options spec.
/// </summary>
public
Options
Options
{
get
;
private
set
;
}
/// <summary>
/// Gets the value of the internal occurrence counter.
/// </summary>
public
int
Occurrence
{
get
=>
this
.
trigger
.
Occurrence
;
}
/// <summary>
/// Gets a value indicating whether there's one more trigger date to calculate.
/// </summary>
public
bool
HasNext
{
get
=>
this
.
triggerDate
.
HasValue
&&
this
.
Occurrence
<=
this
.
count
;
}
/// <summary>
/// Gets the current trigger date.
/// </summary>
public
DateTime
?
TriggerDate
{
get
{
if
(!
this
.
triggerDate
.
HasValue
)
{
return
null
;
}
var
minDate
=
DateTime
.
Now
.
AddSeconds
(
0.2
);
if
(
this
.
triggerDate
>=
minDate
)
{
return
this
.
triggerDate
;
}
if
((
minDate
-
this
.
triggerDate
).
Value
.
TotalMinutes
<=
1
)
{
return
minDate
;
}
return
null
;
}
}
/// <summary>
/// Moves the internal occurrence counter by one.
/// </summary>
/// <returns>false if it wasnt possible anymore to move ahead.</returns>
public
bool
MoveNext
()
{
if
(
this
.
HasNext
)
{
this
.
triggerDate
=
this
.
GetNextTriggerDate
();
}
else
{
this
.
triggerDate
=
null
;
}
return
this
.
triggerDate
.
HasValue
;
}
/// <summary>
/// Gets the next trigger date based on the current trigger date.
/// </summary>
/// <returns>null if there's no next one.</returns>
private
DateTime
?
GetNextTriggerDate
()
{
if
(
this
.
triggerDate
.
HasValue
)
{
return
this
.
trigger
.
GetNextTriggerDate
(
this
.
triggerDate
.
Value
);
}
else
{
return
null
;
}
}
/// <summary>
/// Build the trigger specified in options.
/// </summary>
/// <returns>Configured trigger instance</returns>
private
Trigger
.
DateTrigger
BuildTrigger
()
{
if
(
this
.
spec
.
Every
is
Toast
.
Every
)
{
var
matchers
=
this
.
GetMatchers
();
var
specials
=
this
.
GetSpecials
();
return
new
Trigger
.
MatchTrigger
(
matchers
,
specials
);
}
var
unit
=
this
.
GetUnit
();
var
ticks
=
this
.
GetTicks
();
return
new
Trigger
.
IntervalTrigger
(
ticks
,
unit
);
}
/// <summary>
/// Gets the unit value.
/// </summary>
/// <returns>SECOND by default.</returns>
private
Trigger
.
DateTrigger
.
Unit
GetUnit
()
{
var
unit
=
"SECOND"
;
if
(!
string
.
IsNullOrEmpty
(
this
.
spec
.
Unit
))
{
unit
=
this
.
spec
.
Unit
;
}
else
if
(
this
.
spec
.
Every
is
string
)
{
unit
=
this
.
spec
.
Every
as
string
;
}
return
(
Trigger
.
DateTrigger
.
Unit
)
Enum
.
Parse
(
typeof
(
Trigger
.
DateTrigger
.
Unit
),
unit
.
ToUpper
());
}
/// <summary>
/// Gets the tick value.
/// </summary>
/// <returns>Defaults to 0</returns>
private
int
GetTicks
()
{
if
(
this
.
spec
.
At
!=
0
)
{
return
0
;
}
else
if
(
this
.
spec
.
In
!=
0
)
{
return
this
.
spec
.
In
;
}
else
if
(
this
.
spec
.
Every
is
string
)
{
return
1
;
}
else
if
(
this
.
spec
.
Every
is
double
)
{
return
Convert
.
ToInt32
(
this
.
spec
.
Every
);
}
return
0
;
}
/// <summary>
/// Gets an array of all date parts to construct a datetime instance.
/// </summary>
/// <returns>[min, hour, day, month, year]</returns>
private
int
?[]
GetMatchers
()
{
var
every
=
this
.
spec
.
Every
as
Toast
.
Every
;
return
new
int
?[]
{
every
.
Minute
,
every
.
Hour
,
every
.
Day
,
every
.
Month
,
every
.
Year
};
}
/// <summary>
/// Gets an array of all date parts to construct a datetime instance.
/// </summary>
/// <returns>[weekday, weekdayOrdinal, weekOfMonth, quarter]</returns>
private
int
?[]
GetSpecials
()
{
var
every
=
this
.
spec
.
Every
as
Toast
.
Every
;
return
new
int
?[]
{
every
.
Weekday
,
every
.
WeekdayOrdinal
,
every
.
WeekOfMonth
,
every
.
Quarter
};
}
/// <summary>
/// Gets the base date from where to calculate the next trigger date.
/// </summary>
/// <returns>Usually points to now</returns>
private
DateTime
GetBaseDate
()
{
if
(
this
.
spec
.
At
!=
0
)
{
return
DateTimeOffset
.
FromUnixTimeMilliseconds
(
this
.
spec
.
At
).
LocalDateTime
;
}
else
if
(
this
.
spec
.
FirstAt
!=
0
)
{
return
DateTimeOffset
.
FromUnixTimeMilliseconds
(
this
.
spec
.
At
).
LocalDateTime
;
}
else
if
(
this
.
spec
.
After
!=
0
)
{
return
DateTimeOffset
.
FromUnixTimeMilliseconds
(
this
.
spec
.
After
).
LocalDateTime
;
}
return
DateTime
.
Now
;
}
}
}
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Button.cs
→
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/
Toast/
Button.cs
View file @
8bbeabf0
...
...
@@ -19,7 +19,7 @@
* limitations under the License.
*/
namespace
LocalNotificationProxy.LocalNotification
namespace
LocalNotificationProxy.LocalNotification
.Toast
{
public
sealed
class
Button
:
IAction
{
...
...
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Every.cs
→
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/
Toast/
Every.cs
View file @
8bbeabf0
...
...
@@ -19,14 +19,10 @@
* limitations under the License.
*/
namespace
LocalNotificationProxy.LocalNotification
namespace
LocalNotificationProxy.LocalNotification
.Toast
{
using
System
;
public
sealed
class
Every
{
private
static
readonly
string
[]
Intervals
=
{
null
,
"minute"
,
"hour"
,
"day"
,
"month"
,
"year"
};
/// <summary>
/// Gets or sets the minute.
/// </summary>
...
...
@@ -43,46 +39,38 @@ namespace LocalNotificationProxy.LocalNotification
public
int
?
Day
{
get
;
set
;
}
/// <summary>
/// Gets or sets the
month
.
/// Gets or sets the
day of week
.
/// </summary>
public
int
?
Month
{
get
;
set
;
}
public
int
?
Weekday
{
get
;
set
;
}
/// <summary>
/// Gets or sets the year.
/// Gets or sets the
week of
year.
/// </summary>
public
int
?
Year
{
get
;
set
;
}
public
int
?
Week
{
get
;
set
;
}
/// <summary>
/// Gets
the interval as a string representation
.
/// Gets
or sets the day of ordinal week
.
/// </summary>
/// <returns>year, month, ...</returns>
internal
string
Interval
{
get
=>
Intervals
[
Array
.
IndexOf
(
this
.
ToArray
(),
null
)
+
1
];
}
public
int
?
WeekdayOrdinal
{
get
;
set
;
}
/// <summary>
///
Converts the date time components into a datetime object
.
///
Gets or sets the week of month
.
/// </summary>
/// <param name="now">The relative date to calculate the date from.</param>
/// <returns>A datetime object</returns>
internal
DateTime
ToDateTime
(
DateTime
now
)
{
var
p
=
this
.
ToArray
();
public
int
?
WeekOfMonth
{
get
;
set
;
}
p
[
0
]
=
this
.
Minute
.
GetValueOrDefault
();
p
[
1
]
=
this
.
Hour
.
GetValueOrDefault
();
p
[
2
]
=
this
.
Day
.
GetValueOrDefault
(
now
.
Day
);
p
[
3
]
=
this
.
Month
.
GetValueOrDefault
(
now
.
Month
);
p
[
4
]
=
this
.
Year
.
GetValueOrDefault
(
now
.
Year
);
/// <summary>
/// Gets or sets the month.
/// </summary>
public
int
?
Month
{
get
;
set
;
}
return
new
DateTime
(
p
[
4
].
Value
,
p
[
3
].
Value
,
p
[
2
].
Value
,
p
[
1
].
Value
,
p
[
0
].
Value
,
0
);
}
/// <summary>
/// Gets or sets the quarter.
/// </summary>
public
int
?
Quarter
{
get
;
set
;
}
/// <summary>
/// Gets
an array of all date parts to construct a datetime instance
.
/// Gets
or sets the year
.
/// </summary>
/// <returns>[min, hour, day, month, year]</returns>
private
int
?[]
ToArray
()
{
return
new
int
?[]
{
this
.
Minute
,
this
.
Hour
,
this
.
Day
,
this
.
Month
,
this
.
Year
};
}
public
int
?
Year
{
get
;
set
;
}
}
}
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/IAction.cs
→
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/
Toast/
IAction.cs
View file @
8bbeabf0
...
...
@@ -19,7 +19,7 @@
* limitations under the License.
*/
namespace
LocalNotificationProxy.LocalNotification
namespace
LocalNotificationProxy.LocalNotification
.Toast
{
public
interface
IAction
{
...
...
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Input.cs
→
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/
Toast/
Input.cs
View file @
8bbeabf0
...
...
@@ -19,7 +19,7 @@
* limitations under the License.
*/
namespace
LocalNotificationProxy.LocalNotification
namespace
LocalNotificationProxy.LocalNotification
.Toast
{
public
sealed
class
Input
:
IAction
{
...
...
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/ProgressBar.cs
→
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/
Toast/
ProgressBar.cs
View file @
8bbeabf0
...
...
@@ -19,7 +19,7 @@
* limitations under the License.
*/
namespace
LocalNotificationProxy.LocalNotification
namespace
LocalNotificationProxy.LocalNotification
.Toast
{
public
sealed
class
ProgressBar
{
...
...
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Trigger.cs
→
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/T
oast/T
rigger.cs
View file @
8bbeabf0
...
...
@@ -19,14 +19,13 @@
* limitations under the License.
*/
namespace
LocalNotificationProxy.LocalNotification
namespace
LocalNotificationProxy.LocalNotification
.Toast
{
using
System
;
using
Windows.Data.Xml.Dom
;
public
sealed
class
Trigger
{
private
DateTime
?
triggerDate
;
//
private DateTime? triggerDate;
/// <summary>
/// Gets the trigger type.
...
...
@@ -71,46 +70,7 @@ namespace LocalNotificationProxy.LocalNotification
/// <summary>
/// Gets or sets the trigger unit.
/// </summary>
public
string
Unit
{
get
;
set
;
}
=
"second"
;
/// <summary>
/// Gets the date when to trigger the notification.
/// </summary>
internal
DateTime
?
Date
{
get
{
if
(!
this
.
triggerDate
.
HasValue
)
{
this
.
triggerDate
=
this
.
Every
is
Every
?
this
.
GetRelDate
()
:
this
.
GetFixDate
();
}
if
(!
this
.
triggerDate
.
HasValue
)
{
return
null
;
}
var
date
=
this
.
GetNextTriggerDate
();
var
minDate
=
DateTime
.
Now
.
AddSeconds
(
0.2
);
if
(!
date
.
HasValue
)
{
return
null
;
}
if
(
date
>=
minDate
)
{
return
date
;
}
if
((
minDate
-
date
).
Value
.
TotalMinutes
<=
1
)
{
return
minDate
;
}
return
null
;
}
}
public
string
Unit
{
get
;
set
;
}
/// <summary>
/// Deserializes the XML string into an instance of Trigger.
...
...
@@ -129,10 +89,14 @@ namespace LocalNotificationProxy.LocalNotification
trigger
.
FirstAt
=
int
.
Parse
(
node
.
GetAttribute
(
"firstAt"
));
trigger
.
After
=
int
.
Parse
(
node
.
GetAttribute
(
"after"
));
trigger
.
In
=
int
.
Parse
(
node
.
GetAttribute
(
"in"
));
trigger
.
Unit
=
node
.
GetAttribute
(
"unit"
);
trigger
.
Count
=
int
.
Parse
(
node
.
GetAttribute
(
"count"
));
trigger
.
Occurrence
=
int
.
Parse
(
node
.
GetAttribute
(
"occurrence"
));
if
(
node
.
GetAttributeNode
(
"unit"
)
!=
null
)
{
trigger
.
Unit
=
node
.
GetAttribute
(
"unit"
);
}
if
(
node
.
GetAttributeNode
(
"every"
)
!=
null
)
{
trigger
.
Every
=
node
.
GetAttribute
(
"every"
);
...
...
@@ -153,244 +117,20 @@ namespace LocalNotificationProxy.LocalNotification
node
.
SetAttribute
(
"firstAt"
,
this
.
FirstAt
.
ToString
());
node
.
SetAttribute
(
"after"
,
this
.
After
.
ToString
());
node
.
SetAttribute
(
"in"
,
this
.
In
.
ToString
());
node
.
SetAttribute
(
"unit"
,
this
.
Unit
);
node
.
SetAttribute
(
"count"
,
this
.
Count
.
ToString
());
node
.
SetAttribute
(
"occurrence"
,
this
.
Occurrence
.
ToString
());
if
(
this
.
Every
!=
null
&&
!(
this
.
Every
is
Every
))
{
node
.
SetAttribute
(
"every"
,
this
.
Every
.
ToString
());
}
return
node
.
GetXml
();
}
/// <summary>
/// Adds the interval to the specified date.
/// </summary>
/// <param name="date">The date where to add the interval of ticks</param>
/// <param name="interval">minute, hour, day, ...</param>
/// <param name="ticks">The number of minutes, hours, days, ...</param>
/// <returns>A new datetime instance</returns>
private
DateTime
?
AddInterval
(
DateTime
date
,
string
interval
,
int
ticks
)
{
switch
(
interval
)
{
case
null
:
case
""
:
return
null
;
case
"second"
:
return
date
.
AddSeconds
(
ticks
);
case
"minute"
:
return
date
.
AddMinutes
(
ticks
);
case
"hour"
:
return
date
.
AddHours
(
ticks
);
case
"day"
:
return
date
.
AddDays
(
ticks
);
case
"week"
:
return
date
.
AddDays
(
ticks
*
7
);
case
"month"
:
return
date
.
AddMonths
(
ticks
);
case
"quarter"
:
return
date
.
AddMonths
(
ticks
*
3
);
case
"year"
:
return
date
.
AddYears
(
ticks
);
default
:
return
null
;
}
}
/// <summary>
/// Gets the date when to trigger the notification.
/// </summary>
/// <returns>The fix date specified by trigger.at or trigger.in</returns>
private
DateTime
?
GetFixDate
()
{
if
(
this
.
At
!=
0
)
{
return
this
.
GetDateTime
(
this
.
At
);
}
if
(
this
.
FirstAt
!=
0
)
{
return
this
.
GetDateTime
(
this
.
FirstAt
);
}
return
this
.
AddInterval
(
DateTime
.
Now
,
this
.
Unit
,
this
.
In
);
}
/// <summary>
/// Gets the date when to trigger the notification.
/// </summary>
/// <returns>The first matching date specified by trigger.every</returns>
private
DateTime
?
GetRelDate
()
{
if
(
this
.
After
!=
0
)
{
return
this
.
GetDateTime
(
this
.
After
);
}
return
this
.
GetRelDate
(
DateTime
.
Now
);
}
/// <summary>
/// Gets the date when to trigger the notification.
/// </summary>
/// <param name="now">The relative date to calculate the date from.</param>
/// <returns>The first matching date specified by trigger.every</returns>
private
DateTime
?
GetRelDate
(
DateTime
now
)
{
var
every
=
this
.
Every
as
Every
;
var
date
=
every
.
ToDateTime
(
now
);
if
(
date
>=
now
)
{
return
date
;
}
if
(
every
.
Interval
==
null
||
date
.
Year
<
now
.
Year
)
{
return
null
;
}
if
(
date
.
Month
<
now
.
Month
)
{
switch
(
every
.
Interval
)
{
case
"minute"
:
case
"hour"
:
case
"day"
:
if
(!
every
.
Year
.
HasValue
)
{
return
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
}
break
;
case
"year"
:
return
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
}
}
else
if
(
date
.
Day
<
now
.
Day
)
{
switch
(
every
.
Interval
)
{
case
"minute"
:
case
"hour"
:
if
(!
every
.
Month
.
HasValue
)
{
return
date
.
AddMonths
(
now
.
Month
-
date
.
Month
+
1
);
}
else
if
(!
every
.
Year
.
HasValue
)
{
return
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
}
break
;
case
"month"
:
return
date
.
AddMonths
(
now
.
Month
-
date
.
Month
+
1
);
case
"year"
:
return
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
}
}
else
if
(
date
.
Hour
<
now
.
Hour
)
{
switch
(
every
.
Interval
)
{
case
"minute"
:
if
(!
every
.
Day
.
HasValue
)
{
return
date
.
AddDays
(
now
.
Day
-
date
.
Day
+
1
);
}
else
if
(!
every
.
Month
.
HasValue
)
{
return
date
.
AddMonths
(
now
.
Month
-
date
.
Month
+
1
);
}
break
;
case
"hour"
:
return
date
.
AddHours
(
now
.
Hour
-
date
.
Hour
);
case
"day"
:
return
date
.
AddDays
(
now
.
Day
-
date
.
Day
+
1
);
case
"month"
:
return
date
.
AddMonths
(
now
.
Month
-
date
.
Month
+
1
);
case
"year"
:
return
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
}
}
else
if
(
date
.
Minute
<
now
.
Minute
)
if
(!
string
.
IsNullOrEmpty
(
this
.
Unit
))
{
switch
(
every
.
Interval
)
{
case
"minute"
:
return
date
.
AddMinutes
(
now
.
Minute
-
date
.
Minute
+
1
);
case
"hour"
:
return
date
.
AddHours
(
now
.
Hour
-
date
.
Hour
+
1
);
case
"day"
:
return
date
.
AddDays
(
now
.
Day
-
date
.
Day
+
1
);
case
"month"
:
return
date
.
AddMonths
(
now
.
Month
-
date
.
Month
+
1
);
case
"year"
:
return
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
}
}
return
null
;
}
/// <summary>
/// Calculates the next trigger date by adding (interval * occurence)
/// </summary>
/// <returns>The next valid trigger date</returns>
private
DateTime
?
GetNextTriggerDate
()
{
var
every
=
this
.
Every
;
var
multiple
=
this
.
Occurrence
;
var
date
=
this
.
triggerDate
.
Value
;
DateTime
?
nextDate
;
if
(
this
.
Every
is
Every
)
{
every
=
(
this
.
Every
as
Every
).
Interval
;
multiple
-=
1
;
}
if
(
every
==
null
)
{
return
date
;
}
if
(
every
is
double
)
{
var
ticks
=
Convert
.
ToInt32
(
every
);
if
(
ticks
==
0
)
{
return
null
;
}
nextDate
=
this
.
AddInterval
(
date
,
this
.
Unit
,
multiple
*
ticks
);
node
.
SetAttribute
(
"unit"
,
this
.
Unit
);
}
else
{
nextDate
=
this
.
AddInterval
(
date
,
every
as
string
,
multiple
);
if
(
nextDate
.
HasValue
&&
this
.
Every
is
Every
)
if
(
this
.
Every
!=
null
&&
!(
this
.
Every
is
Every
)
)
{
nextDate
=
this
.
GetRelDate
(
nextDate
.
Value
);
}
}
return
nextDate
;
node
.
SetAttribute
(
"every"
,
this
.
Every
.
ToString
());
}
/// <summary>
/// Convert the milliseconds into a date time object.
/// </summary>
/// <param name="time">The milli seconds since unix zero.</param>
/// <returns>The date time</returns>
private
DateTime
GetDateTime
(
long
time
)
{
return
DateTimeOffset
.
FromUnixTimeMilliseconds
(
time
).
LocalDateTime
;
return
node
.
GetXml
();
}
}
...
...
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Trigger/DateTrigger.cs
0 → 100644
View file @
8bbeabf0
/*
* Apache 2.0 License
*
* Copyright (c) Sebastian Katzer 2017
*
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apache License
* Version 2.0 (the 'License'). You may not use this file except in
* compliance with the License. Please obtain a copy of the License at
* http://opensource.org/licenses/Apache-2.0/ and read it before using this
* file.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
* Please see the License for the specific language governing rights and
* limitations under the License.
*/
namespace
LocalNotificationProxy.LocalNotification.Trigger
{
using
System
;
internal
abstract
class
DateTrigger
{
/// <summary>
/// Default unit is SECOND
/// </summary>
public
enum
Unit
:
byte
{
NULL
,
SECOND
,
MINUTE
,
HOUR
,
DAY
,
WEEK
,
MONTH
,
QUARTER
,
YEAR
}
/// <summary>
/// Gets or sets the occurrence counter.
/// </summary>
public
int
Occurrence
{
get
;
protected
set
;
}
=
1
;
/// <summary>
/// Gets the next trigger date.
/// </summary>
/// <param name="date">The date from where to calculate the next one.</param>
/// <returns>Null if there is no next trigger date.</returns>
public
abstract
DateTime
?
GetNextTriggerDate
(
DateTime
date
);
}
}
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Trigger/IntervalTrigger.cs
0 → 100644
View file @
8bbeabf0
/*
* Apache 2.0 License
*
* Copyright (c) Sebastian Katzer 2017
*
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apache License
* Version 2.0 (the 'License'). You may not use this file except in
* compliance with the License. Please obtain a copy of the License at
* http://opensource.org/licenses/Apache-2.0/ and read it before using this
* file.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
* Please see the License for the specific language governing rights and
* limitations under the License.
*/
namespace
LocalNotificationProxy.LocalNotification.Trigger
{
using
System
;
internal
class
IntervalTrigger
:
DateTrigger
{
/// <summary>
/// The number of ticks per interval.
/// </summary>
private
readonly
int
ticks
;
/// <summary>
/// Initializes a new instance of the <see cref="IntervalTrigger"/> class.
/// </summary>
/// <param name="ticks">The number of ticks per interval.</param>
/// <param name="unit">The unit of the ticks.</param>
public
IntervalTrigger
(
int
ticks
,
Unit
unit
)
{
this
.
ticks
=
ticks
;
this
.
Unit
=
unit
;
}
/// <summary>
/// Gets the unit of the ticks
/// </summary>
internal
new
Unit
Unit
{
get
;
private
set
;
}
/// <summary>
/// Gets the next trigger date.
/// </summary>
/// <param name="date">The date from where to calculate the next one.</param>
/// <returns>Null if there is no next trigger date.</returns>
public
override
DateTime
?
GetNextTriggerDate
(
DateTime
date
)
{
this
.
Occurrence
+=
1
;
return
this
.
AddInterval
(
date
);
}
/// <summary>
/// Adds the interval to the specified date.
/// </summary>
/// <param name="date">The date where to add the interval of ticks</param>
/// <returns>A new datetime instance</returns>
protected
DateTime
AddInterval
(
DateTime
date
)
{
switch
(
this
.
Unit
)
{
case
Unit
.
SECOND
:
return
date
.
AddSeconds
(
this
.
ticks
);
case
Unit
.
MINUTE
:
return
date
.
AddMinutes
(
this
.
ticks
);
case
Unit
.
HOUR
:
return
date
.
AddHours
(
this
.
ticks
);
case
Unit
.
DAY
:
return
date
.
AddDays
(
this
.
ticks
);
case
Unit
.
WEEK
:
return
date
.
AddDays
(
this
.
ticks
*
7
);
case
Unit
.
MONTH
:
return
date
.
AddMonths
(
this
.
ticks
);
case
Unit
.
QUARTER
:
return
date
.
AddMonths
(
this
.
ticks
*
3
);
case
Unit
.
YEAR
:
return
date
.
AddYears
(
this
.
ticks
);
default
:
return
date
;
}
}
}
}
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotification/Trigger/MatchTrigger.cs
0 → 100644
View file @
8bbeabf0
/*
* Apache 2.0 License
*
* Copyright (c) Sebastian Katzer 2017
*
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apache License
* Version 2.0 (the 'License'). You may not use this file except in
* compliance with the License. Please obtain a copy of the License at
* http://opensource.org/licenses/Apache-2.0/ and read it before using this
* file.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
* Please see the License for the specific language governing rights and
* limitations under the License.
*/
namespace
LocalNotificationProxy.LocalNotification.Trigger
{
using
System
;
using
System.Globalization
;
internal
class
MatchTrigger
:
IntervalTrigger
{
/// <summary>
/// Used to determine the interval
/// </summary>
private
static
readonly
Unit
?[]
INTERVALS
=
{
null
,
Unit
.
MINUTE
,
Unit
.
HOUR
,
Unit
.
DAY
,
Unit
.
MONTH
,
Unit
.
YEAR
};
/// <summary>
/// Maps these crap where Sunday is the 1st day of the week.
/// </summary>
private
static
readonly
int
[]
WEEKDAYS
=
{
7
,
1
,
2
,
3
,
4
,
5
,
6
};
/// <summary>
/// The matching components.
/// </summary>
private
readonly
int
?[]
matchers
;
/// <summary>
/// The special matching components.
/// </summary>
private
readonly
int
?[]
specials
;
/// <summary>
/// Initializes a new instance of the <see cref="MatchTrigger"/> class.
/// </summary>
/// <param name="matchers">The matching components.</param>
/// <param name="specials">The special matching components.</param>
public
MatchTrigger
(
int
?[]
matchers
,
int
?[]
specials
)
:
base
(
1
,
GetUnit
(
matchers
,
specials
))
{
this
.
matchers
=
matchers
;
this
.
specials
=
specials
;
}
/// <summary>
/// Gets the next trigger date.
/// </summary>
/// <param name="baseDate">The date from where to calculate the next one.</param>
/// <returns>Null if there is no next trigger date.</returns>
public
override
DateTime
?
GetNextTriggerDate
(
DateTime
baseDate
)
{
DateTime
date
=
baseDate
;
if
(
this
.
Occurrence
>
1
)
{
date
=
this
.
AddInterval
(
baseDate
);
}
this
.
Occurrence
+=
1
;
return
this
.
GetTriggerDate
(
date
);
}
/// <summary>
/// Gets the unit interval specified by the matching components.
/// </summary>
/// <param name="matchers">The matching components.</param>
/// <param name="specials">The special matching components.</param>
/// <returns>The interval unit.</returns>
private
static
Unit
GetUnit
(
int
?[]
matchers
,
int
?[]
specials
)
{
Unit
unit1
=
INTERVALS
[
1
+
Array
.
IndexOf
(
matchers
,
null
)].
GetValueOrDefault
(
Unit
.
NULL
),
unit2
=
Unit
.
NULL
;
if
(
specials
[
0
].
HasValue
)
{
unit2
=
Unit
.
WEEK
;
}
if
(
unit2
==
Unit
.
NULL
)
{
return
unit1
;
}
return
(
unit1
.
CompareTo
(
unit2
)
<
0
)
?
unit2
:
unit1
;
}
/// <summary>
/// Gets the date from where to start calculating the initial trigger date.
/// </summary>
/// <param name="date">Usually now.</param>
/// <returns>The initial trigger date.</returns>
private
DateTime
GetBaseTriggerDate
(
DateTime
date
)
{
return
new
DateTime
(
this
.
matchers
[
4
].
GetValueOrDefault
(
date
.
Year
),
this
.
matchers
[
3
].
GetValueOrDefault
(
date
.
Month
),
this
.
matchers
[
2
].
GetValueOrDefault
(
date
.
Day
),
this
.
matchers
[
1
].
GetValueOrDefault
(
0
),
this
.
matchers
[
0
].
GetValueOrDefault
(
0
),
0
);
}
/// <summary>
/// Gets the date when to trigger the notification.
/// </summary>
/// <param name="now">The date from where to calculate the trigger date.</param>
/// <returns>null if there's none trigger date.</returns>
private
DateTime
?
GetTriggerDate
(
DateTime
now
)
{
var
date
=
this
.
GetBaseTriggerDate
(
now
);
if
(
date
>=
now
)
{
return
this
.
ApplySpecials
(
date
);
}
if
(
this
.
Unit
==
Unit
.
NULL
||
date
.
Year
<
now
.
Year
)
{
return
null
;
}
if
(
date
.
Month
<
now
.
Month
)
{
switch
(
this
.
Unit
)
{
case
Unit
.
MINUTE
:
case
Unit
.
HOUR
:
case
Unit
.
DAY
:
case
Unit
.
WEEK
:
if
(!
this
.
matchers
[
4
].
HasValue
)
{
date
=
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
break
;
}
else
{
return
null
;
}
case
Unit
.
YEAR
:
date
=
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
break
;
}
}
else
if
(
date
.
DayOfYear
<
now
.
DayOfYear
)
{
switch
(
this
.
Unit
)
{
case
Unit
.
MINUTE
:
case
Unit
.
HOUR
:
if
(!
this
.
matchers
[
3
].
HasValue
)
{
date
=
date
.
AddMonths
(
now
.
Month
-
date
.
Month
+
1
);
}
else
if
(!
this
.
matchers
[
4
].
HasValue
)
{
date
=
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
}
else
{
return
null
;
}
break
;
case
Unit
.
MONTH
:
date
=
date
.
AddMonths
(
now
.
Month
-
date
.
Month
+
1
);
break
;
case
Unit
.
YEAR
:
date
=
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
break
;
}
}
else
if
(
date
.
Hour
<
now
.
Hour
)
{
switch
(
this
.
Unit
)
{
case
Unit
.
MINUTE
:
if
(!
this
.
matchers
[
2
].
HasValue
)
{
date
=
date
.
AddDays
(
now
.
DayOfYear
-
date
.
DayOfYear
+
1
);
}
else
if
(!
this
.
matchers
[
3
].
HasValue
)
{
date
=
date
.
AddMonths
(
now
.
Month
-
date
.
Month
+
1
);
}
else
{
return
null
;
}
break
;
case
Unit
.
HOUR
:
date
=
date
.
AddHours
(
now
.
Hour
-
date
.
Hour
);
break
;
case
Unit
.
DAY
:
case
Unit
.
WEEK
:
date
=
date
.
AddDays
(
now
.
Day
-
date
.
Day
+
1
);
break
;
case
Unit
.
MONTH
:
date
=
date
.
AddMonths
(
now
.
Month
-
date
.
Month
+
1
);
break
;
case
Unit
.
YEAR
:
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
break
;
}
}
else
if
(
date
.
Minute
<
now
.
Minute
)
{
switch
(
this
.
Unit
)
{
case
Unit
.
MINUTE
:
date
=
date
.
AddMinutes
(
now
.
Minute
-
date
.
Minute
+
1
);
break
;
case
Unit
.
HOUR
:
date
=
date
.
AddHours
(
now
.
Hour
-
date
.
Hour
+
1
);
break
;
case
Unit
.
DAY
:
case
Unit
.
WEEK
:
date
=
date
.
AddDays
(
now
.
DayOfYear
-
date
.
DayOfYear
+
1
);
break
;
case
Unit
.
MONTH
:
date
=
date
.
AddMonths
(
now
.
Month
-
date
.
Month
+
1
);
break
;
case
Unit
.
YEAR
:
date
=
date
.
AddYears
(
now
.
Year
-
date
.
Year
+
1
);
break
;
}
}
return
this
.
ApplySpecials
(
date
);
}
/// <summary>
/// Applies the special matching components.
/// </summary>
/// <param name="date">The date to manipulate</param>
/// <returns>The manipulated date.</returns>
private
DateTime
?
ApplySpecials
(
DateTime
date
)
{
DateTime
?
cal
=
date
;
if
(
this
.
specials
[
2
].
HasValue
)
{
cal
=
this
.
SetWeekOfMonth
(
date
);
}
if
(
this
.
specials
[
0
].
HasValue
&&
cal
.
HasValue
)
{
cal
=
this
.
SetDayOfWeek
(
cal
.
Value
);
}
return
cal
;
}
/// <summary>
/// Set the day of the year but ensure that the calendar does point to a
/// date in future.
/// </summary>
/// <param name="date">The date to manipulate</param>
/// <returns>The calculatred date or null if not possible</returns>
private
DateTime
?
SetDayOfWeek
(
DateTime
date
)
{
var
day
=
WEEKDAYS
[(
int
)
date
.
DayOfWeek
];
var
month
=
date
.
Month
;
var
year
=
date
.
Year
;
var
dayToSet
=
this
.
specials
[
0
].
Value
;
if
(
this
.
matchers
[
2
].
HasValue
)
{
return
null
;
}
if
(
day
>
dayToSet
)
{
if
(!
this
.
specials
[
2
].
HasValue
)
{
date
=
date
.
AddDays
(
7
);
}
else
if
(!
this
.
matchers
[
3
].
HasValue
)
{
date
=
date
.
AddMonths
(
1
);
}
else
if
(!
this
.
matchers
[
4
].
HasValue
)
{
date
=
date
.
AddYears
(
1
);
}
else
{
return
null
;
}
}
date
=
date
.
AddDays
(
dayToSet
-
day
);
if
(
this
.
matchers
[
3
].
HasValue
&&
date
.
Month
!=
month
)
{
return
null
;
}
if
(
this
.
matchers
[
4
].
HasValue
&&
date
.
Year
!=
year
)
{
return
null
;
}
return
date
;
}
/// <summary>
/// Set the day of the year but ensure that the calendar does point to a
/// date in future.
/// </summary>
/// <param name="date">The date to manipulate</param>
/// <returns>The calculatred date or null if not possible</returns>
private
DateTime
?
SetWeekOfMonth
(
DateTime
date
)
{
var
week
=
this
.
GetWeekOFMonth
(
date
);
var
year
=
date
.
Year
;
var
weekToSet
=
this
.
specials
[
2
].
Value
;
if
(
week
>
weekToSet
)
{
if
(!
this
.
matchers
[
3
].
HasValue
)
{
date
=
date
.
AddMonths
(
1
);
}
else
if
(!
this
.
matchers
[
4
].
HasValue
)
{
date
=
date
.
AddYears
(
1
);
}
else
{
return
null
;
}
if
(
this
.
matchers
[
4
].
HasValue
&&
date
.
Year
!=
year
)
{
return
null
;
}
}
int
month
=
date
.
Month
;
date
=
date
.
AddDays
((
weekToSet
-
week
)
*
7
);
if
(
date
.
Month
!=
month
)
{
date
=
new
DateTime
(
date
.
Year
,
month
,
1
,
date
.
Hour
,
date
.
Minute
,
0
);
}
else
if
(!
this
.
matchers
[
2
].
HasValue
&&
week
!=
weekToSet
)
{
date
=
date
.
AddDays
(
1
-
WEEKDAYS
[(
int
)
date
.
DayOfWeek
]);
}
return
date
;
}
/// <summary>
/// Calculates the week of month for the given date.
/// </summary>
/// <param name="date">The date to calculate the week number</param>
/// <returns>1..5</returns>
private
int
GetWeekOFMonth
(
DateTime
date
)
{
var
cal
=
CultureInfo
.
CurrentCulture
.
Calendar
;
var
firstDay
=
new
DateTime
(
date
.
Year
,
date
.
Month
,
1
);
var
weekOfDate
=
cal
.
GetWeekOfYear
(
date
,
CalendarWeekRule
.
FirstDay
,
DayOfWeek
.
Monday
);
var
weekOfFirstDay
=
cal
.
GetWeekOfYear
(
firstDay
,
CalendarWeekRule
.
FirstDay
,
DayOfWeek
.
Monday
);
return
weekOfDate
-
weekOfFirstDay
+
1
;
}
}
}
src/windows/LocalNotificationProxy/LocalNotificationProxy/LocalNotificationProxy.csproj
View file @
8bbeabf0
...
...
@@ -12,7 +12,7 @@
<DefaultLanguage>de-DE</DefaultLanguage>
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.16299.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.1
6299
.0</TargetPlatformMinVersion>
<TargetPlatformMinVersion>10.0.1
5063
.0</TargetPlatformMinVersion>
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
...
...
@@ -112,15 +112,19 @@
<ItemGroup>
<Compile Include="LocalNotificationProxy.cs" />
<Compile Include="LocalNotification\Builder.cs" />
<Compile Include="LocalNotification\Button.cs" />
<Compile Include="LocalNotification\Every.cs" />
<Compile Include="LocalNotification\Request.cs" />
<Compile Include="LocalNotification\Toast\Button.cs" />
<Compile Include="LocalNotification\Toast\Every.cs" />
<Compile Include="LocalNotification\Notification.cs" />
<Compile Include="LocalNotification\IAction.cs" />
<Compile Include="LocalNotification\Input.cs" />
<Compile Include="LocalNotification\
Toast\
IAction.cs" />
<Compile Include="LocalNotification\
Toast\
Input.cs" />
<Compile Include="LocalNotification\Manager.cs" />
<Compile Include="LocalNotification\Options.cs" />
<Compile Include="LocalNotification\ProgressBar.cs" />
<Compile Include="LocalNotification\Trigger.cs" />
<Compile Include="LocalNotification\Toast\ProgressBar.cs" />
<Compile Include="LocalNotification\Toast\Trigger.cs" />
<Compile Include="LocalNotification\Trigger\DateTrigger.cs" />
<Compile Include="LocalNotification\Trigger\IntervalTrigger.cs" />
<Compile Include="LocalNotification\Trigger\MatchTrigger.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
...
...
@@ -137,6 +141,7 @@
<Name>Microsoft.Toolkit.Uwp.Notifications.UWP</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>
</PropertyGroup>
...
...
src/windows/Microsoft.Toolkit.Uwp.Notifications.UWP/Microsoft.Toolkit.Uwp.Notifications.UWP.nuget.props
View file @
8bbeabf0
...
...
@@ -3,11 +3,11 @@
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">Z:\Documents\github\cordova-plugin-local-notification
s
\src\windows\Microsoft.Toolkit.Uwp.Notifications.UWP\project.lock.json</ProjectAssetsFile>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">Z:\Documents\github\cordova-plugin-local-notification\src\windows\Microsoft.Toolkit.Uwp.Notifications.UWP\project.lock.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\katze\.nuget\packages\</NuGetPackageFolders>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\katze\.nuget\packages\
;C:\Program Files (x86)\Microsoft SDKs\NuGetPackagesFallback\
</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">ProjectJson</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">4.
4.1
</NuGetToolVersion>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">4.
5.0
</NuGetToolVersion>
</PropertyGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
...
...
@@ -16,6 +16,6 @@
<Import Project="$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-x86\1.7.0\build\Microsoft.Net.Native.SharedLibrary-x86.props" Condition="Exists('$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-x86\1.7.0\build\Microsoft.Net.Native.SharedLibrary-x86.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-x64\1.7.0\build\Microsoft.Net.Native.SharedLibrary-x64.props" Condition="Exists('$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-x64\1.7.0\build\Microsoft.Net.Native.SharedLibrary-x64.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-arm\1.7.0\build\Microsoft.Net.Native.SharedLibrary-arm.props" Condition="Exists('$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-arm\1.7.0\build\Microsoft.Net.Native.SharedLibrary-arm.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.native.compiler\1.7.
1\build\Microsoft.Net.Native.Compiler.props" Condition="Exists('$(NuGetPackageRoot)microsoft.net.native.compiler\1.7.1
\build\Microsoft.Net.Native.Compiler.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.native.compiler\1.7.
3\build\Microsoft.Net.Native.Compiler.props" Condition="Exists('$(NuGetPackageRoot)microsoft.net.native.compiler\1.7.3
\build\Microsoft.Net.Native.Compiler.props')" />
</ImportGroup>
</Project>
\ No newline at end of file
src/windows/Microsoft.Toolkit.Uwp.Notifications.UWP/Microsoft.Toolkit.Uwp.Notifications.UWP.nuget.targets
View file @
8bbeabf0
...
...
@@ -7,6 +7,6 @@
<Import Project="$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-x86\1.7.0\build\Microsoft.Net.Native.SharedLibrary-x86.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-x86\1.7.0\build\Microsoft.Net.Native.SharedLibrary-x86.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-x64\1.7.0\build\Microsoft.Net.Native.SharedLibrary-x64.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-x64\1.7.0\build\Microsoft.Net.Native.SharedLibrary-x64.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-arm\1.7.0\build\Microsoft.Net.Native.SharedLibrary-arm.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.net.native.sharedlibrary-arm\1.7.0\build\Microsoft.Net.Native.SharedLibrary-arm.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.native.compiler\1.7.
1\build\Microsoft.Net.Native.Compiler.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.net.native.compiler\1.7.1
\build\Microsoft.Net.Native.Compiler.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.native.compiler\1.7.
3\build\Microsoft.Net.Native.Compiler.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.net.native.compiler\1.7.3
\build\Microsoft.Net.Native.Compiler.targets')" />
</ImportGroup>
</Project>
\ No newline at end of file
src/windows/Microsoft.Toolkit.Uwp.Notifications.UWP/project.json
View file @
8bbeabf0
{
"dependencies"
:
{
"Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
2
"
,
"Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
5
"
,
"StyleCop.Analyzers"
:
"1.0.2"
},
"frameworks"
:
{
...
...
src/windows/Microsoft.Toolkit.Uwp.Notifications.UWP/project.lock.json
View file @
8bbeabf0
...
...
@@ -29,7 +29,7 @@
"lib/netcore50/Microsoft.CSharp.dll"
:
{}
}
},
"Microsoft.Net.Native.Compiler/1.7.
1
"
:
{
"Microsoft.Net.Native.Compiler/1.7.
3
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.Net.Native.SharedLibrary-arm"
:
"1.7.0"
,
...
...
@@ -239,14 +239,14 @@
"lib/netstandard1.0/_._"
:
{}
}
},
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore"
:
"5.0.2"
,
"Microsoft.NETCore.Portable.Compatibility"
:
"1.0.2"
,
"Microsoft.NETCore.Runtime.CoreCLR"
:
"1.0.3"
,
"Microsoft.NETCore.Targets"
:
"1.0.2"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
1
"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
3
"
,
"Microsoft.Win32.Primitives"
:
"4.0.1"
,
"System.Collections.NonGeneric"
:
"4.0.1"
,
"System.Collections.Specialized"
:
"4.0.1"
,
...
...
@@ -261,7 +261,7 @@
"System.Net.Sockets"
:
"4.1.0"
,
"System.Net.WebHeaderCollection"
:
"4.0.1"
,
"System.Net.WebSockets"
:
"4.0.0"
,
"System.Net.WebSockets.Client"
:
"4.0.
0
"
,
"System.Net.WebSockets.Client"
:
"4.0.
2
"
,
"System.Numerics.Vectors.WindowsRuntime"
:
"4.0.1"
,
"System.Reflection.Context"
:
"4.0.1"
,
"System.Runtime.InteropServices.WindowsRuntime"
:
"4.0.1"
,
...
...
@@ -1117,10 +1117,10 @@
"lib/netstandard1.3/System.Net.WebSockets.dll"
:
{}
}
},
"System.Net.WebSockets.Client/4.0.
0
"
:
{
"System.Net.WebSockets.Client/4.0.
2
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore.Platforms"
:
"1.0.
1
"
,
"Microsoft.NETCore.Platforms"
:
"1.0.
2
"
,
"System.Collections"
:
"4.0.11"
,
"System.Diagnostics.Debug"
:
"4.0.11"
,
"System.Diagnostics.Tracing"
:
"4.1.0"
,
...
...
@@ -2238,7 +2238,7 @@
"lib/netcore50/Microsoft.CSharp.dll"
:
{}
}
},
"Microsoft.Net.Native.Compiler/1.7.
1
"
:
{
"Microsoft.Net.Native.Compiler/1.7.
3
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.Net.Native.SharedLibrary-arm"
:
"1.7.0"
,
...
...
@@ -2395,14 +2395,14 @@
"lib/netstandard1.0/_._"
:
{}
}
},
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore"
:
"5.0.2"
,
"Microsoft.NETCore.Portable.Compatibility"
:
"1.0.2"
,
"Microsoft.NETCore.Runtime.CoreCLR"
:
"1.0.3"
,
"Microsoft.NETCore.Targets"
:
"1.0.2"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
1
"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
3
"
,
"Microsoft.Win32.Primitives"
:
"4.0.1"
,
"System.Collections.NonGeneric"
:
"4.0.1"
,
"System.Collections.Specialized"
:
"4.0.1"
,
...
...
@@ -2417,7 +2417,7 @@
"System.Net.Sockets"
:
"4.1.0"
,
"System.Net.WebHeaderCollection"
:
"4.0.1"
,
"System.Net.WebSockets"
:
"4.0.0"
,
"System.Net.WebSockets.Client"
:
"4.0.
0
"
,
"System.Net.WebSockets.Client"
:
"4.0.
2
"
,
"System.Numerics.Vectors.WindowsRuntime"
:
"4.0.1"
,
"System.Reflection.Context"
:
"4.0.1"
,
"System.Runtime.InteropServices.WindowsRuntime"
:
"4.0.1"
,
...
...
@@ -2435,7 +2435,7 @@
"System.Threading.Overlapped"
:
"4.0.1"
,
"System.Xml.XmlDocument"
:
"4.0.1"
,
"System.Xml.XmlSerializer"
:
"4.0.11"
,
"runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
2
"
"runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
5
"
},
"compile"
:
{
"ref/netcore50/_._"
:
{}
...
...
@@ -2778,7 +2778,7 @@
"runtimes/win/lib/netcore50/System.Runtime.Extensions.dll"
:
{}
}
},
"runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"compile"
:
{
"ref/netstandard/_._"
:
{}
...
...
@@ -3507,10 +3507,10 @@
"lib/netstandard1.3/System.Net.WebSockets.dll"
:
{}
}
},
"System.Net.WebSockets.Client/4.0.
0
"
:
{
"System.Net.WebSockets.Client/4.0.
2
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore.Platforms"
:
"1.0.
1
"
,
"Microsoft.NETCore.Platforms"
:
"1.0.
2
"
,
"System.Collections"
:
"4.0.11"
,
"System.Diagnostics.Debug"
:
"4.0.11"
,
"System.Diagnostics.Tracing"
:
"4.1.0"
,
...
...
@@ -4537,7 +4537,7 @@
"lib/netcore50/Microsoft.CSharp.dll"
:
{}
}
},
"Microsoft.Net.Native.Compiler/1.7.
1
"
:
{
"Microsoft.Net.Native.Compiler/1.7.
3
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.Net.Native.SharedLibrary-arm"
:
"1.7.0"
,
...
...
@@ -4695,14 +4695,14 @@
"lib/netstandard1.0/_._"
:
{}
}
},
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore"
:
"5.0.2"
,
"Microsoft.NETCore.Portable.Compatibility"
:
"1.0.2"
,
"Microsoft.NETCore.Runtime.CoreCLR"
:
"1.0.3"
,
"Microsoft.NETCore.Targets"
:
"1.0.2"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
1
"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
3
"
,
"Microsoft.Win32.Primitives"
:
"4.0.1"
,
"System.Collections.NonGeneric"
:
"4.0.1"
,
"System.Collections.Specialized"
:
"4.0.1"
,
...
...
@@ -4717,7 +4717,7 @@
"System.Net.Sockets"
:
"4.1.0"
,
"System.Net.WebHeaderCollection"
:
"4.0.1"
,
"System.Net.WebSockets"
:
"4.0.0"
,
"System.Net.WebSockets.Client"
:
"4.0.
0
"
,
"System.Net.WebSockets.Client"
:
"4.0.
2
"
,
"System.Numerics.Vectors.WindowsRuntime"
:
"4.0.1"
,
"System.Reflection.Context"
:
"4.0.1"
,
"System.Runtime.InteropServices.WindowsRuntime"
:
"4.0.1"
,
...
...
@@ -4735,7 +4735,7 @@
"System.Threading.Overlapped"
:
"4.0.1"
,
"System.Xml.XmlDocument"
:
"4.0.1"
,
"System.Xml.XmlSerializer"
:
"4.0.11"
,
"runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
2
"
"runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
5
"
},
"compile"
:
{
"ref/netcore50/_._"
:
{}
...
...
@@ -5123,7 +5123,7 @@
"runtimes/aot/lib/netcore50/System.Runtime.Extensions.dll"
:
{}
}
},
"runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"compile"
:
{
"ref/netstandard/_._"
:
{}
...
...
@@ -5842,10 +5842,10 @@
"lib/netstandard1.3/System.Net.WebSockets.dll"
:
{}
}
},
"System.Net.WebSockets.Client/4.0.
0
"
:
{
"System.Net.WebSockets.Client/4.0.
2
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore.Platforms"
:
"1.0.
1
"
,
"Microsoft.NETCore.Platforms"
:
"1.0.
2
"
,
"System.Collections"
:
"4.0.11"
,
"System.Diagnostics.Debug"
:
"4.0.11"
,
"System.Diagnostics.Tracing"
:
"4.1.0"
,
...
...
@@ -6872,7 +6872,7 @@
"lib/netcore50/Microsoft.CSharp.dll"
:
{}
}
},
"Microsoft.Net.Native.Compiler/1.7.
1
"
:
{
"Microsoft.Net.Native.Compiler/1.7.
3
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.Net.Native.SharedLibrary-arm"
:
"1.7.0"
,
...
...
@@ -7032,14 +7032,14 @@
"lib/netstandard1.0/_._"
:
{}
}
},
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore"
:
"5.0.2"
,
"Microsoft.NETCore.Portable.Compatibility"
:
"1.0.2"
,
"Microsoft.NETCore.Runtime.CoreCLR"
:
"1.0.3"
,
"Microsoft.NETCore.Targets"
:
"1.0.2"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
1
"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
3
"
,
"Microsoft.Win32.Primitives"
:
"4.0.1"
,
"System.Collections.NonGeneric"
:
"4.0.1"
,
"System.Collections.Specialized"
:
"4.0.1"
,
...
...
@@ -7054,7 +7054,7 @@
"System.Net.Sockets"
:
"4.1.0"
,
"System.Net.WebHeaderCollection"
:
"4.0.1"
,
"System.Net.WebSockets"
:
"4.0.0"
,
"System.Net.WebSockets.Client"
:
"4.0.
0
"
,
"System.Net.WebSockets.Client"
:
"4.0.
2
"
,
"System.Numerics.Vectors.WindowsRuntime"
:
"4.0.1"
,
"System.Reflection.Context"
:
"4.0.1"
,
"System.Runtime.InteropServices.WindowsRuntime"
:
"4.0.1"
,
...
...
@@ -7072,7 +7072,7 @@
"System.Threading.Overlapped"
:
"4.0.1"
,
"System.Xml.XmlDocument"
:
"4.0.1"
,
"System.Xml.XmlSerializer"
:
"4.0.11"
,
"runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
2
"
"runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
5
"
},
"compile"
:
{
"ref/netcore50/_._"
:
{}
...
...
@@ -7415,7 +7415,7 @@
"runtimes/win/lib/netcore50/System.Runtime.Extensions.dll"
:
{}
}
},
"runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"compile"
:
{
"ref/netstandard/_._"
:
{}
...
...
@@ -8150,10 +8150,10 @@
"lib/netstandard1.3/System.Net.WebSockets.dll"
:
{}
}
},
"System.Net.WebSockets.Client/4.0.
0
"
:
{
"System.Net.WebSockets.Client/4.0.
2
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore.Platforms"
:
"1.0.
1
"
,
"Microsoft.NETCore.Platforms"
:
"1.0.
2
"
,
"System.Collections"
:
"4.0.11"
,
"System.Diagnostics.Debug"
:
"4.0.11"
,
"System.Diagnostics.Tracing"
:
"4.1.0"
,
...
...
@@ -9180,7 +9180,7 @@
"lib/netcore50/Microsoft.CSharp.dll"
:
{}
}
},
"Microsoft.Net.Native.Compiler/1.7.
1
"
:
{
"Microsoft.Net.Native.Compiler/1.7.
3
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.Net.Native.SharedLibrary-arm"
:
"1.7.0"
,
...
...
@@ -9341,14 +9341,14 @@
"lib/netstandard1.0/_._"
:
{}
}
},
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore"
:
"5.0.2"
,
"Microsoft.NETCore.Portable.Compatibility"
:
"1.0.2"
,
"Microsoft.NETCore.Runtime.CoreCLR"
:
"1.0.3"
,
"Microsoft.NETCore.Targets"
:
"1.0.2"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
1
"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
3
"
,
"Microsoft.Win32.Primitives"
:
"4.0.1"
,
"System.Collections.NonGeneric"
:
"4.0.1"
,
"System.Collections.Specialized"
:
"4.0.1"
,
...
...
@@ -9363,7 +9363,7 @@
"System.Net.Sockets"
:
"4.1.0"
,
"System.Net.WebHeaderCollection"
:
"4.0.1"
,
"System.Net.WebSockets"
:
"4.0.0"
,
"System.Net.WebSockets.Client"
:
"4.0.
0
"
,
"System.Net.WebSockets.Client"
:
"4.0.
2
"
,
"System.Numerics.Vectors.WindowsRuntime"
:
"4.0.1"
,
"System.Reflection.Context"
:
"4.0.1"
,
"System.Runtime.InteropServices.WindowsRuntime"
:
"4.0.1"
,
...
...
@@ -9381,7 +9381,7 @@
"System.Threading.Overlapped"
:
"4.0.1"
,
"System.Xml.XmlDocument"
:
"4.0.1"
,
"System.Xml.XmlSerializer"
:
"4.0.11"
,
"runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
2
"
"runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
5
"
},
"compile"
:
{
"ref/netcore50/_._"
:
{}
...
...
@@ -9769,7 +9769,7 @@
"runtimes/aot/lib/netcore50/System.Runtime.Extensions.dll"
:
{}
}
},
"runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"compile"
:
{
"ref/netstandard/_._"
:
{}
...
...
@@ -10494,10 +10494,10 @@
"lib/netstandard1.3/System.Net.WebSockets.dll"
:
{}
}
},
"System.Net.WebSockets.Client/4.0.
0
"
:
{
"System.Net.WebSockets.Client/4.0.
2
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore.Platforms"
:
"1.0.
1
"
,
"Microsoft.NETCore.Platforms"
:
"1.0.
2
"
,
"System.Collections"
:
"4.0.11"
,
"System.Diagnostics.Debug"
:
"4.0.11"
,
"System.Diagnostics.Tracing"
:
"4.1.0"
,
...
...
@@ -11524,7 +11524,7 @@
"lib/netcore50/Microsoft.CSharp.dll"
:
{}
}
},
"Microsoft.Net.Native.Compiler/1.7.
1
"
:
{
"Microsoft.Net.Native.Compiler/1.7.
3
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.Net.Native.SharedLibrary-arm"
:
"1.7.0"
,
...
...
@@ -11684,14 +11684,14 @@
"lib/netstandard1.0/_._"
:
{}
}
},
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore"
:
"5.0.2"
,
"Microsoft.NETCore.Portable.Compatibility"
:
"1.0.2"
,
"Microsoft.NETCore.Runtime.CoreCLR"
:
"1.0.3"
,
"Microsoft.NETCore.Targets"
:
"1.0.2"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
1
"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
3
"
,
"Microsoft.Win32.Primitives"
:
"4.0.1"
,
"System.Collections.NonGeneric"
:
"4.0.1"
,
"System.Collections.Specialized"
:
"4.0.1"
,
...
...
@@ -11706,7 +11706,7 @@
"System.Net.Sockets"
:
"4.1.0"
,
"System.Net.WebHeaderCollection"
:
"4.0.1"
,
"System.Net.WebSockets"
:
"4.0.0"
,
"System.Net.WebSockets.Client"
:
"4.0.
0
"
,
"System.Net.WebSockets.Client"
:
"4.0.
2
"
,
"System.Numerics.Vectors.WindowsRuntime"
:
"4.0.1"
,
"System.Reflection.Context"
:
"4.0.1"
,
"System.Runtime.InteropServices.WindowsRuntime"
:
"4.0.1"
,
...
...
@@ -11724,7 +11724,7 @@
"System.Threading.Overlapped"
:
"4.0.1"
,
"System.Xml.XmlDocument"
:
"4.0.1"
,
"System.Xml.XmlSerializer"
:
"4.0.11"
,
"runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
2
"
"runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
5
"
},
"compile"
:
{
"ref/netcore50/_._"
:
{}
...
...
@@ -12067,7 +12067,7 @@
"runtimes/win/lib/netcore50/System.Runtime.Extensions.dll"
:
{}
}
},
"runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"compile"
:
{
"ref/netstandard/_._"
:
{}
...
...
@@ -12802,10 +12802,10 @@
"lib/netstandard1.3/System.Net.WebSockets.dll"
:
{}
}
},
"System.Net.WebSockets.Client/4.0.
0
"
:
{
"System.Net.WebSockets.Client/4.0.
2
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore.Platforms"
:
"1.0.
1
"
,
"Microsoft.NETCore.Platforms"
:
"1.0.
2
"
,
"System.Collections"
:
"4.0.11"
,
"System.Diagnostics.Debug"
:
"4.0.11"
,
"System.Diagnostics.Tracing"
:
"4.1.0"
,
...
...
@@ -13832,7 +13832,7 @@
"lib/netcore50/Microsoft.CSharp.dll"
:
{}
}
},
"Microsoft.Net.Native.Compiler/1.7.
1
"
:
{
"Microsoft.Net.Native.Compiler/1.7.
3
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.Net.Native.SharedLibrary-arm"
:
"1.7.0"
,
...
...
@@ -13993,14 +13993,14 @@
"lib/netstandard1.0/_._"
:
{}
}
},
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore"
:
"5.0.2"
,
"Microsoft.NETCore.Portable.Compatibility"
:
"1.0.2"
,
"Microsoft.NETCore.Runtime.CoreCLR"
:
"1.0.3"
,
"Microsoft.NETCore.Targets"
:
"1.0.2"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
1
"
,
"Microsoft.Net.Native.Compiler"
:
"1.7.
3
"
,
"Microsoft.Win32.Primitives"
:
"4.0.1"
,
"System.Collections.NonGeneric"
:
"4.0.1"
,
"System.Collections.Specialized"
:
"4.0.1"
,
...
...
@@ -14015,7 +14015,7 @@
"System.Net.Sockets"
:
"4.1.0"
,
"System.Net.WebHeaderCollection"
:
"4.0.1"
,
"System.Net.WebSockets"
:
"4.0.0"
,
"System.Net.WebSockets.Client"
:
"4.0.
0
"
,
"System.Net.WebSockets.Client"
:
"4.0.
2
"
,
"System.Numerics.Vectors.WindowsRuntime"
:
"4.0.1"
,
"System.Reflection.Context"
:
"4.0.1"
,
"System.Runtime.InteropServices.WindowsRuntime"
:
"4.0.1"
,
...
...
@@ -14033,7 +14033,7 @@
"System.Threading.Overlapped"
:
"4.0.1"
,
"System.Xml.XmlDocument"
:
"4.0.1"
,
"System.Xml.XmlSerializer"
:
"4.0.11"
,
"runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
2
"
"runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform"
:
"6.0.
5
"
},
"compile"
:
{
"ref/netcore50/_._"
:
{}
...
...
@@ -14421,7 +14421,7 @@
"runtimes/aot/lib/netcore50/System.Runtime.Extensions.dll"
:
{}
}
},
"runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"type"
:
"package"
,
"compile"
:
{
"ref/netstandard/_._"
:
{}
...
...
@@ -15146,10 +15146,10 @@
"lib/netstandard1.3/System.Net.WebSockets.dll"
:
{}
}
},
"System.Net.WebSockets.Client/4.0.
0
"
:
{
"System.Net.WebSockets.Client/4.0.
2
"
:
{
"type"
:
"package"
,
"dependencies"
:
{
"Microsoft.NETCore.Platforms"
:
"1.0.
1
"
,
"Microsoft.NETCore.Platforms"
:
"1.0.
2
"
,
"System.Collections"
:
"4.0.11"
,
"System.Diagnostics.Debug"
:
"4.0.11"
,
"System.Diagnostics.Tracing"
:
"4.1.0"
,
...
...
@@ -16207,14 +16207,14 @@
"ref/xamarinwatchos10/_._"
]
},
"Microsoft.Net.Native.Compiler/1.7.
1
"
:
{
"sha512"
:
"
P55mWSgc8zLrk2eoRxd3T3QPVXXKrqD/DypC+It8wSgZfaUl2/o31bCOR+aWq1NtxDwDnCPGNVsmo/bmgIeJtA
=="
,
"Microsoft.Net.Native.Compiler/1.7.
3
"
:
{
"sha512"
:
"
ed0kCs6Gxfw2ZGf34eqO8cwaD16Ll1FKw+jBfGevdiHqc2kTwux9yqkHwhe9WP8jzSbuZX3o4y3wMUUkz5gSeg
=="
,
"type"
:
"package"
,
"path"
:
"microsoft.net.native.compiler/1.7.
1
"
,
"path"
:
"microsoft.net.native.compiler/1.7.
3
"
,
"files"
:
[
"build/Microsoft.Net.Native.Compiler.props"
,
"build/Microsoft.Net.Native.Compiler.targets"
,
"microsoft.net.native.compiler.1.7.
1
.nupkg.sha512"
,
"microsoft.net.native.compiler.1.7.
3
.nupkg.sha512"
,
"microsoft.net.native.compiler.nuspec"
,
"tools/LibraryXML/Callisto.rd.xml"
,
"tools/LibraryXML/GalaSoft.MvvmLight.Extras.Win8.rd.xml"
,
...
...
@@ -18442,14 +18442,14 @@
"runtime.json"
]
},
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"sha512"
:
"
1x37WPEc/7G4BedFtmSKCK9E1wVWm0BTgTBe7lv/LuN/5a48H8KpGLO5I0fmX51y5r/BXJNaLjpfDkH1i1j0rQ
=="
,
"Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"sha512"
:
"
suR2zL+dQAcOxs2rokFV8KGbECXLDhB8U333NMYNtftqLFnfTMVX0qFVG8f34q3dALEuq/vlrZ/RCCL3NOEApg
=="
,
"type"
:
"package"
,
"path"
:
"microsoft.netcore.universalwindowsplatform/6.0.
2
"
,
"path"
:
"microsoft.netcore.universalwindowsplatform/6.0.
5
"
,
"files"
:
[
"LICENSE.TXT"
,
"THIRD-PARTY-NOTICES.TXT"
,
"microsoft.netcore.universalwindowsplatform.6.0.
2
.nupkg.sha512"
,
"microsoft.netcore.universalwindowsplatform.6.0.
5
.nupkg.sha512"
,
"microsoft.netcore.universalwindowsplatform.nuspec"
,
"ref/netcore50/_._"
,
"ref/uap10.0.15138/Microsoft.CSharp.dll"
,
...
...
@@ -19587,15 +19587,15 @@
"runtimes/win/lib/netstandard1.5/System.Runtime.Extensions.dll"
]
},
"runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"sha512"
:
"
zz8GaaUGJIFUsJPY0g0ToBrCv3kXbdwDXbd2Tr+HXvJXFD9HrHQHEue4ZVcZpc82mUfdXyRzO4+t6hY64Q4dT
Q=="
,
"runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"sha512"
:
"
QM1Mq6C4V3ycqf0/8NLXJ9CjUu3jRGtf76tPOcdEjARDW8zDVyynOYiV5x5deuZS/nHaKHe51lsZGuqdqMohB
Q=="
,
"type"
:
"package"
,
"path"
:
"runtime.win10-arm-aot.microsoft.netcore.universalwindowsplatform/6.0.
2
"
,
"path"
:
"runtime.win10-arm-aot.microsoft.netcore.universalwindowsplatform/6.0.
5
"
,
"files"
:
[
"LICENSE.TXT"
,
"THIRD-PARTY-NOTICES.TXT"
,
"ref/netstandard/_._"
,
"runtime.win10-arm-aot.microsoft.netcore.universalwindowsplatform.6.0.
2
.nupkg.sha512"
,
"runtime.win10-arm-aot.microsoft.netcore.universalwindowsplatform.6.0.
5
.nupkg.sha512"
,
"runtime.win10-arm-aot.microsoft.netcore.universalwindowsplatform.nuspec"
,
"runtimes/win10-arm-aot/lib/uap10.0.15138/Microsoft.CSharp.dll"
,
"runtimes/win10-arm-aot/lib/uap10.0.15138/Microsoft.VisualBasic.dll"
,
...
...
@@ -19776,15 +19776,15 @@
"runtimes/win10-arm-aot/lib/netcore50/clrcompression.dll"
]
},
"runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"sha512"
:
"
TDXnAPztcmMBpQomeGbo0gk/6WCrQUc5DL1HJcxcefNCRUlqAbUdsUz8sEGaJQ9NUbSshnEeY4wrVgyOonAf+Q
=="
,
"runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"sha512"
:
"
dTPIIlo1DK2iJ5dDUO3m/xHa4FhDD0zFyVvj2IaDEUa33QwNN59Bavg2snmIlLZZaFxTP7tl284bgJ5cGSLt9A
=="
,
"type"
:
"package"
,
"path"
:
"runtime.win10-arm.microsoft.netcore.universalwindowsplatform/6.0.
2
"
,
"path"
:
"runtime.win10-arm.microsoft.netcore.universalwindowsplatform/6.0.
5
"
,
"files"
:
[
"LICENSE.TXT"
,
"THIRD-PARTY-NOTICES.TXT"
,
"ref/netstandard/_._"
,
"runtime.win10-arm.microsoft.netcore.universalwindowsplatform.6.0.
2
.nupkg.sha512"
,
"runtime.win10-arm.microsoft.netcore.universalwindowsplatform.6.0.
5
.nupkg.sha512"
,
"runtime.win10-arm.microsoft.netcore.universalwindowsplatform.nuspec"
,
"runtimes/win10-arm/lib/uap10.0.15138/Microsoft.CSharp.dll"
,
"runtimes/win10-arm/lib/uap10.0.15138/Microsoft.VisualBasic.dll"
,
...
...
@@ -19952,15 +19952,15 @@
"runtimes/win10-arm/nativeassets/uap10.0.15138/clrcompression.dll"
]
},
"runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"sha512"
:
"
zRfgkMb/yA8Ldgql4gzY5SRcXoj6KgCoKrfPVdOC7iv5PzxGNfQnHdS0WQ5sDaLB+O8BVYpyMYQ4eQ1gbRq+GA
=="
,
"runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"sha512"
:
"
AWZIFcu8xoZitu3ZdEgbis5NTnXUZ0DrGlekieo9+qwjgnC1aOju6PJYPNQzaH11x6jFGCyU9DKrazu6olRu/Q
=="
,
"type"
:
"package"
,
"path"
:
"runtime.win10-x64-aot.microsoft.netcore.universalwindowsplatform/6.0.
2
"
,
"path"
:
"runtime.win10-x64-aot.microsoft.netcore.universalwindowsplatform/6.0.
5
"
,
"files"
:
[
"LICENSE.TXT"
,
"THIRD-PARTY-NOTICES.TXT"
,
"ref/netstandard/_._"
,
"runtime.win10-x64-aot.microsoft.netcore.universalwindowsplatform.6.0.
2
.nupkg.sha512"
,
"runtime.win10-x64-aot.microsoft.netcore.universalwindowsplatform.6.0.
5
.nupkg.sha512"
,
"runtime.win10-x64-aot.microsoft.netcore.universalwindowsplatform.nuspec"
,
"runtimes/win10-x64-aot/lib/uap10.0.15138/Microsoft.CSharp.dll"
,
"runtimes/win10-x64-aot/lib/uap10.0.15138/Microsoft.VisualBasic.dll"
,
...
...
@@ -20141,15 +20141,15 @@
"runtimes/win10-x64-aot/lib/netcore50/clrcompression.dll"
]
},
"runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"sha512"
:
"
sNKsP3Fo/XKs4lzEfXzQ6p5+H+gsMVKDtLfNApeCtpsimTt+Nn9lzYggaqvv+gMRJ90j5MnnMZaUf6RwV56nfQ
=="
,
"runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"sha512"
:
"
I774FxmdywBPYipSE0Og5HajYt0eBto8tw9QNlsZt0jVNShltEqBq7LC2MkRkWkf2VDrJEY0jU6I320jLTfwZA
=="
,
"type"
:
"package"
,
"path"
:
"runtime.win10-x64.microsoft.netcore.universalwindowsplatform/6.0.
2
"
,
"path"
:
"runtime.win10-x64.microsoft.netcore.universalwindowsplatform/6.0.
5
"
,
"files"
:
[
"LICENSE.TXT"
,
"THIRD-PARTY-NOTICES.TXT"
,
"ref/netstandard/_._"
,
"runtime.win10-x64.microsoft.netcore.universalwindowsplatform.6.0.
2
.nupkg.sha512"
,
"runtime.win10-x64.microsoft.netcore.universalwindowsplatform.6.0.
5
.nupkg.sha512"
,
"runtime.win10-x64.microsoft.netcore.universalwindowsplatform.nuspec"
,
"runtimes/win10-x64/lib/uap10.0.15138/Microsoft.CSharp.dll"
,
"runtimes/win10-x64/lib/uap10.0.15138/Microsoft.VisualBasic.dll"
,
...
...
@@ -20317,15 +20317,15 @@
"runtimes/win10-x64/nativeassets/uap10.0.15138/clrcompression.dll"
]
},
"runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"sha512"
:
"
y+OndyqwIIT0EN5x5oyGaW1hRAiej6n2SCk+JZGtMSgjF9i3QQn9dmxYtxazuk+O5MtQdApHYtgK7uKW3yL2ag
=="
,
"runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"sha512"
:
"
TRA8QnE7CN7oVXPMybL/ZojpOzkond2euO19YYzicwZjrvRrudy3OXTAQlPbtE2xFQ0Va2U4A9gcrsiCyxXEJA
=="
,
"type"
:
"package"
,
"path"
:
"runtime.win10-x86-aot.microsoft.netcore.universalwindowsplatform/6.0.
2
"
,
"path"
:
"runtime.win10-x86-aot.microsoft.netcore.universalwindowsplatform/6.0.
5
"
,
"files"
:
[
"LICENSE.TXT"
,
"THIRD-PARTY-NOTICES.TXT"
,
"ref/netstandard/_._"
,
"runtime.win10-x86-aot.microsoft.netcore.universalwindowsplatform.6.0.
2
.nupkg.sha512"
,
"runtime.win10-x86-aot.microsoft.netcore.universalwindowsplatform.6.0.
5
.nupkg.sha512"
,
"runtime.win10-x86-aot.microsoft.netcore.universalwindowsplatform.nuspec"
,
"runtimes/win10-x86-aot/lib/uap10.0.15138/Microsoft.CSharp.dll"
,
"runtimes/win10-x86-aot/lib/uap10.0.15138/Microsoft.VisualBasic.dll"
,
...
...
@@ -20506,15 +20506,15 @@
"runtimes/win10-x86-aot/lib/netcore50/clrcompression.dll"
]
},
"runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
2
"
:
{
"sha512"
:
"
0cl6qKSo+w3v5Y6KrlzDm9GcsoS07OIZO/fEwDykvaJjhzsDeY8UFvLN7s3YiB7bUSAt0uWJcJi3eRBdUsiSBA
=="
,
"runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform/6.0.
5
"
:
{
"sha512"
:
"
wc1xGboXkp6PQpxnEtXVZEYATCU2n2Z3YoCq4Zq9QtreDF+RfO4ubFEAj/9K9agnW5CdtWr7J2nsFLk0veafgg
=="
,
"type"
:
"package"
,
"path"
:
"runtime.win10-x86.microsoft.netcore.universalwindowsplatform/6.0.
2
"
,
"path"
:
"runtime.win10-x86.microsoft.netcore.universalwindowsplatform/6.0.
5
"
,
"files"
:
[
"LICENSE.TXT"
,
"THIRD-PARTY-NOTICES.TXT"
,
"ref/netstandard/_._"
,
"runtime.win10-x86.microsoft.netcore.universalwindowsplatform.6.0.
2
.nupkg.sha512"
,
"runtime.win10-x86.microsoft.netcore.universalwindowsplatform.6.0.
5
.nupkg.sha512"
,
"runtime.win10-x86.microsoft.netcore.universalwindowsplatform.nuspec"
,
"runtimes/win10-x86/lib/uap10.0.15138/Microsoft.CSharp.dll"
,
"runtimes/win10-x86/lib/uap10.0.15138/Microsoft.VisualBasic.dll"
,
...
...
@@ -23017,10 +23017,10 @@
"system.net.websockets.nuspec"
]
},
"System.Net.WebSockets.Client/4.0.
0
"
:
{
"sha512"
:
"
GY5h9cn0ZVsG4ORQqMytTldrqxet2RC2CSEsgWGf4XNW5jhL5SxzcUZph03xbZsgn7K3qMr+Rq+gkbJNI+FEX
g=="
,
"System.Net.WebSockets.Client/4.0.
2
"
:
{
"sha512"
:
"
NUCcDroX4lCQXgOrzlwIZ1u9YJ0krfyF0wk0ONnyLUmcQoEiYV2/OfUPRqUwQBbpH1BlGApkLgoQUwMqb5+c1
g=="
,
"type"
:
"package"
,
"path"
:
"system.net.websockets.client/4.0.
0
"
,
"path"
:
"system.net.websockets.client/4.0.
2
"
,
"files"
:
[
"ThirdPartyNotices.txt"
,
"dotnet_library_license.txt"
,
...
...
@@ -23053,7 +23053,7 @@
"runtimes/win/lib/net46/System.Net.WebSockets.Client.dll"
,
"runtimes/win/lib/netcore50/System.Net.WebSockets.Client.dll"
,
"runtimes/win/lib/netstandard1.3/System.Net.WebSockets.Client.dll"
,
"system.net.websockets.client.4.0.
0
.nupkg.sha512"
,
"system.net.websockets.client.4.0.
2
.nupkg.sha512"
,
"system.net.websockets.client.nuspec"
]
},
...
...
@@ -25759,26 +25759,31 @@
},
"projectFileDependencyGroups"
:
{
""
:
[
"Microsoft.NETCore.UniversalWindowsPlatform >= 6.0.
2
"
,
"Microsoft.NETCore.UniversalWindowsPlatform >= 6.0.
5
"
,
"StyleCop.Analyzers >= 1.0.2"
],
"UAP,Version=v10.0.10240"
:
[]
},
"packageFolders"
:
{
"C:
\\
Users
\\
katze
\\
.nuget
\\
packages
\\
"
:
{}
"C:
\\
Users
\\
katze
\\
.nuget
\\
packages
\\
"
:
{},
"C:
\\
Program Files (x86)
\\
Microsoft SDKs
\\
NuGetPackagesFallback
\\
"
:
{}
},
"project"
:
{
"restore"
:
{
"projectUniqueName"
:
"Z:
\\
Documents
\\
github
\\
cordova-plugin-local-notification
s
\\
src
\\
windows
\\
Microsoft.Toolkit.Uwp.Notifications.UWP
\\
Microsoft.Toolkit.Uwp.Notifications.UWP.csproj"
,
"projectUniqueName"
:
"Z:
\\
Documents
\\
github
\\
cordova-plugin-local-notification
\\
src
\\
windows
\\
Microsoft.Toolkit.Uwp.Notifications.UWP
\\
Microsoft.Toolkit.Uwp.Notifications.UWP.csproj"
,
"projectName"
:
"Microsoft.Toolkit.Uwp.Notifications.UWP"
,
"projectPath"
:
"Z:
\\
Documents
\\
github
\\
cordova-plugin-local-notification
s
\\
src
\\
windows
\\
Microsoft.Toolkit.Uwp.Notifications.UWP
\\
Microsoft.Toolkit.Uwp.Notifications.UWP.csproj"
,
"projectJsonPath"
:
"Z:
\\
Documents
\\
github
\\
cordova-plugin-local-notification
s
\\
src
\\
windows
\\
Microsoft.Toolkit.Uwp.Notifications.UWP
\\
project.json"
,
"projectPath"
:
"Z:
\\
Documents
\\
github
\\
cordova-plugin-local-notification
\\
src
\\
windows
\\
Microsoft.Toolkit.Uwp.Notifications.UWP
\\
Microsoft.Toolkit.Uwp.Notifications.UWP.csproj"
,
"projectJsonPath"
:
"Z:
\\
Documents
\\
github
\\
cordova-plugin-local-notification
\\
src
\\
windows
\\
Microsoft.Toolkit.Uwp.Notifications.UWP
\\
project.json"
,
"packagesPath"
:
"C:
\\
Users
\\
katze
\\
.nuget
\\
packages
\\
"
,
"outputPath"
:
"Z:
\\
Documents
\\
github
\\
cordova-plugin-local-notification
s
\\
src
\\
windows
\\
Microsoft.Toolkit.Uwp.Notifications.UWP
\\
obj
\\
"
,
"outputPath"
:
"Z:
\\
Documents
\\
github
\\
cordova-plugin-local-notification
\\
src
\\
windows
\\
Microsoft.Toolkit.Uwp.Notifications.UWP
\\
obj
\\
"
,
"projectStyle"
:
"ProjectJson"
,
"fallbackFolders"
:
[
"C:
\\
Program Files (x86)
\\
Microsoft SDKs
\\
NuGetPackagesFallback
\\
"
],
"configFilePaths"
:
[
"C:
\\
Users
\\
katze
\\
AppData
\\
Roaming
\\
NuGet
\\
NuGet.Config"
,
"C:
\\
Program Files (x86)
\\
NuGet
\\
Config
\\
Microsoft.VisualStudio.Offline.config"
"C:
\\
Program Files (x86)
\\
NuGet
\\
Config
\\
Microsoft.VisualStudio.Offline.config"
,
"C:
\\
Program Files (x86)
\\
NuGet
\\
Config
\\
Microsoft.VisualStudio.Offline.Fallback.config"
],
"sources"
:
{
"C:
\\
Program Files (x86)
\\
Microsoft SDKs
\\
NuGetPackages
\\
"
:
{},
...
...
@@ -25786,8 +25791,8 @@
}
},
"dependencies"
:
{
"Microsoft.NETCore.UniversalWindowsPlatform"
:
"
6.0.2
"
,
"StyleCop.Analyzers"
:
"
1.0.2
"
"Microsoft.NETCore.UniversalWindowsPlatform"
:
"
[6.0.5, )
"
,
"StyleCop.Analyzers"
:
"
[1.0.2, )
"
},
"frameworks"
:
{
"uap10.0.10240"
:
{}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment