Version 3.0.239

This commit is contained in:
Oliver Hauff 2021-07-12 19:30:14 +02:00
parent 2a2d814243
commit 553eaaa4e0
15 changed files with 773 additions and 180 deletions

118
TINK.sln
View file

@ -11,62 +11,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TINK.iOS", "TINK\TINK.iOS\T
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TINKLib", "TINKLib\TINKLib.csproj", "{B77F4222-0860-4494-A07C-EE8E09FA9983}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{49C8F824-4752-449E-A53C-35A2722AFA99}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Set02 - Book 3rd bike", "Set02 - Book 3rd bike", "{50D4A63A-91D8-4EC5-ADF6-9EF72D7AFAF0}"
ProjectSection(SolutionItems) = preProject
TestData\Set02\Story.json = TestData\Set02\Story.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "001", "001", "{A5D8D93B-4D4E-4C4C-A70C-44A451D6C722}"
ProjectSection(SolutionItems) = preProject
TestData\Set02\001\bikes_available.json = TestData\Set02\001\bikes_available.json
TestData\Set02\001\booking_request_bike_8.json = TestData\Set02\001\booking_request_bike_8.json
TestData\Set02\001\stations_all.json = TestData\Set02\001\stations_all.json
TestData\Set02\001\user_bikes_occupied.json = TestData\Set02\001\user_bikes_occupied.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "002", "002", "{D0A2A88B-5DD9-4B40-A8AE-2AED6FB41911}"
ProjectSection(SolutionItems) = preProject
TestData\Set02\002\bikes_available.json = TestData\Set02\002\bikes_available.json
TestData\Set02\002\stations_all.json = TestData\Set02\002\stations_all.json
TestData\Set02\002\user_bikes_occupied.json = TestData\Set02\002\user_bikes_occupied.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "003", "003", "{272FB1A5-BBC5-41DF-91C2-C1C1A85AFD44}"
ProjectSection(SolutionItems) = preProject
TestData\Set02\003\bikes_available.json = TestData\Set02\003\bikes_available.json
TestData\Set02\003\stations_all.json = TestData\Set02\003\stations_all.json
TestData\Set02\003\user_bikes_occupied.json = TestData\Set02\003\user_bikes_occupied.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Set03 - Book 1st bike", "Set03 - Book 1st bike", "{E5E0E87A-1CDD-4E66-AF66-26EBDD0C6E61}"
ProjectSection(SolutionItems) = preProject
TestData\Set03\Story.json = TestData\Set03\Story.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "001", "001", "{B0BE116C-B05C-4864-9D1F-5CE1A8EC7BD0}"
ProjectSection(SolutionItems) = preProject
TestData\Set03\001\booking_request_bike_20.json = TestData\Set03\001\booking_request_bike_20.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "002", "002", "{C579CA91-17DC-4AC4-8F1B-377A245883FD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Set01 - Log in", "Set01 - Log in", "{A872956F-17F0-416E-9A9A-F28D96F13A94}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "001", "001", "{104F18F2-1261-42C0-96A4-F5BBACF595DA}"
ProjectSection(SolutionItems) = preProject
TestData\Set01\001\authorization_javaminister%40gmail.com_javaminister_HwId1000000000000.json = TestData\Set01\001\authorization_javaminister%40gmail.com_javaminister_HwId1000000000000.json
TestData\Set01\001\bikes_available.json = TestData\Set01\001\bikes_available.json
TestData\Set01\001\bikes_occupied.json = TestData\Set01\001\bikes_occupied.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Set04 - Cancel Booking", "Set04 - Cancel Booking", "{55C5EF2A-FDEB-40F6-ABE9-84B7B1981B2B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "001", "001", "{AADA3B61-8626-43AE-BED9-BA5AA3D93576}"
ProjectSection(SolutionItems) = preProject
TestData\Set04 - Cancel Booking\001\booking_cancel_bike_7.json = TestData\Set04 - Cancel Booking\001\booking_cancel_bike_7.json
EndProjectSection
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestTINKLib", "TestTINKLib\TestTINKLib.csproj", "{730A31A5-6736-43CC-8F84-8FDA5093E283}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LockItShared", "LockItShared\LockItShared.csproj", "{3589ED1D-E734-429D-976F-1BEA4371DF14}"
EndProject
@ -264,6 +209,54 @@ Global
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|x64.Build.0 = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|x86.ActiveCfg = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|x86.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|x64.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|Any CPU.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|ARM.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|ARM.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|iPhone.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|iPhone.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|x64.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|x64.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|x86.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|x86.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|Any CPU.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|ARM.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|ARM.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|iPhone.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|x64.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|x64.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|x86.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|x86.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|Any CPU.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|Any CPU.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|ARM.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|ARM.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|iPhone.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|iPhone.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|x64.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|x64.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|x86.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|x86.Build.0 = Release|Any CPU
{3589ED1D-E734-429D-976F-1BEA4371DF14}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{3589ED1D-E734-429D-976F-1BEA4371DF14}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{3589ED1D-E734-429D-976F-1BEA4371DF14}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
@ -508,19 +501,6 @@ Global
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{50D4A63A-91D8-4EC5-ADF6-9EF72D7AFAF0} = {49C8F824-4752-449E-A53C-35A2722AFA99}
{A5D8D93B-4D4E-4C4C-A70C-44A451D6C722} = {50D4A63A-91D8-4EC5-ADF6-9EF72D7AFAF0}
{D0A2A88B-5DD9-4B40-A8AE-2AED6FB41911} = {50D4A63A-91D8-4EC5-ADF6-9EF72D7AFAF0}
{272FB1A5-BBC5-41DF-91C2-C1C1A85AFD44} = {50D4A63A-91D8-4EC5-ADF6-9EF72D7AFAF0}
{E5E0E87A-1CDD-4E66-AF66-26EBDD0C6E61} = {49C8F824-4752-449E-A53C-35A2722AFA99}
{B0BE116C-B05C-4864-9D1F-5CE1A8EC7BD0} = {E5E0E87A-1CDD-4E66-AF66-26EBDD0C6E61}
{C579CA91-17DC-4AC4-8F1B-377A245883FD} = {E5E0E87A-1CDD-4E66-AF66-26EBDD0C6E61}
{A872956F-17F0-416E-9A9A-F28D96F13A94} = {49C8F824-4752-449E-A53C-35A2722AFA99}
{104F18F2-1261-42C0-96A4-F5BBACF595DA} = {A872956F-17F0-416E-9A9A-F28D96F13A94}
{55C5EF2A-FDEB-40F6-ABE9-84B7B1981B2B} = {49C8F824-4752-449E-A53C-35A2722AFA99}
{AADA3B61-8626-43AE-BED9-BA5AA3D93576} = {55C5EF2A-FDEB-40F6-ABE9-84B7B1981B2B}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C6529CD7-C3F7-4E80-89B5-002E2B8E3EB5}
EndGlobalSection

View file

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" package="com.hauffware.sharee" android:versionName="3.0.222" android:versionCode="222">
<uses-sdk android:minSdkVersion="18" android:targetSdkVersion="30" />
<!-- Google Maps related permissions -->
<permission android:name="com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
<!-- Network connectivity permissions -->
<!-- Access Google based webservices -->
<!-- External storage for caching. -->
<!-- My Location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.location.network" android:required="false" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
<application android:icon="@drawable/sharee" android:label="sharee.bike"></application>
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="000000000-000000000000000000000000000-0" />
</manifest>

View file

@ -49,8 +49,8 @@
<key>CFBundleDisplayName</key>
<string>sharee.bike</string>
<key>CFBundleVersion</key>
<string>238</string>
<string>239</string>
<key>CFBundleShortVersionString</key>
<string>3.0.238</string>
<string>3.0.239</string>
</dict>
</plist>

View file

@ -3,6 +3,7 @@
// ReSharper disable once CheckNamespace
namespace System.Runtime.CompilerServices
{
#if USCSHARP9
/// <summary>
/// Reserved to be used by the compiler for tracking metadata.
/// This class should not be used by developers in source code.
@ -11,4 +12,5 @@ namespace System.Runtime.CompilerServices
internal static class IsExternalInit
{
}
#endif
}

View file

@ -170,99 +170,99 @@ namespace TINK.Model.Connector
/// <param name="p_oBikesAvailable">Response to create bikes from.</param>
/// <returns>New collection of occupied bikes.</returns>
public static BikeCollection GetBikesOccupied(
this BikesReservedOccupiedResponse p_oBikesOccupiedResponse,
string p_strMail,
Func<DateTime> p_oDateTimeProvider)
this BikesReservedOccupiedResponse bikesOccupiedResponse,
string mail,
Func<DateTime> dateTimeProvider)
{
return GetBikesAll(
new BikesAvailableResponse(),
p_oBikesOccupiedResponse,
p_strMail,
p_oDateTimeProvider);
bikesOccupiedResponse,
mail,
dateTimeProvider);
}
/// <summary> Gets bikes occupied from copri server response. </summary>
/// <param name="p_oBikesAvailable">Response to create bikes from.</param>
/// <returns>New collection of occupied bikes.</returns>
public static BikeCollection GetBikesAll(
BikesAvailableResponse p_oBikesAvailableResponse,
BikesReservedOccupiedResponse p_oBikesOccupiedResponse,
BikesAvailableResponse bikesAvailableResponse,
BikesReservedOccupiedResponse bikesOccupiedResponse,
string p_strMail,
Func<DateTime> p_oDateTimeProvider)
{
var l_oBikesDictionary = new Dictionary<string, BikeInfo>();
var l_oDuplicates = new Dictionary<string, BikeInfo>();
var bikesDictionary = new Dictionary<string, BikeInfo>();
var duplicates = new Dictionary<string, BikeInfo>();
// Get bikes from Copri/ file/ memory, ....
if (p_oBikesAvailableResponse != null
&& p_oBikesAvailableResponse.bikes != null)
if (bikesAvailableResponse != null
&& bikesAvailableResponse.bikes != null)
{
foreach (var bikeInfoResponse in p_oBikesAvailableResponse.bikes.Values)
foreach (var bikeInfoResponse in bikesAvailableResponse.bikes.Values)
{
var l_oBikeInfo = BikeInfoFactory.Create(bikeInfoResponse);
if (l_oBikeInfo == null)
var bikeInfo = BikeInfoFactory.Create(bikeInfoResponse);
if (bikeInfo == null)
{
// Response is not valid.
continue;
}
if (l_oBikesDictionary.ContainsKey(l_oBikeInfo.Id))
if (bikesDictionary.ContainsKey(bikeInfo.Id))
{
// Duplicates are not allowed.
Log.Error($"Duplicate bike with id {l_oBikeInfo.Id} detected evaluating bikes available. Bike status is {l_oBikeInfo.State.Value}.");
Log.Error($"Duplicate bike with id {bikeInfo.Id} detected evaluating bikes available. Bike status is {bikeInfo.State.Value}.");
if (!l_oDuplicates.ContainsKey(l_oBikeInfo.Id))
if (!duplicates.ContainsKey(bikeInfo.Id))
{
l_oDuplicates.Add(l_oBikeInfo.Id, l_oBikeInfo);
duplicates.Add(bikeInfo.Id, bikeInfo);
}
continue;
}
l_oBikesDictionary.Add(l_oBikeInfo.Id, l_oBikeInfo);
bikesDictionary.Add(bikeInfo.Id, bikeInfo);
}
}
// Get bikes from Copri/ file/ memory, ....
if (p_oBikesOccupiedResponse != null
&& p_oBikesOccupiedResponse.bikes_occupied != null)
if (bikesOccupiedResponse != null
&& bikesOccupiedResponse.bikes_occupied != null)
{
foreach (var l_oBikeInfoResponse in p_oBikesOccupiedResponse.bikes_occupied.Values)
foreach (var bikeInfoResponse in bikesOccupiedResponse.bikes_occupied.Values)
{
BikeInfo l_oBikeInfo = BikeInfoFactory.Create(
l_oBikeInfoResponse,
BikeInfo bikeInfo = BikeInfoFactory.Create(
bikeInfoResponse,
p_strMail,
p_oDateTimeProvider);
if (l_oBikeInfo == null)
if (bikeInfo == null)
{
continue;
}
if (l_oBikesDictionary.ContainsKey(l_oBikeInfo.Id))
if (bikesDictionary.ContainsKey(bikeInfo.Id))
{
// Duplicates are not allowed.
Log.Error($"Duplicate bike with id {l_oBikeInfo.Id} detected evaluating bikes occupied. Bike status is {l_oBikeInfo.State.Value}.");
if (!l_oDuplicates.ContainsKey(l_oBikeInfo.Id))
Log.Error($"Duplicate bike with id {bikeInfo.Id} detected evaluating bikes occupied. Bike status is {bikeInfo.State.Value}.");
if (!duplicates.ContainsKey(bikeInfo.Id))
{
l_oDuplicates.Add(l_oBikeInfo.Id, l_oBikeInfo);
duplicates.Add(bikeInfo.Id, bikeInfo);
}
continue;
}
l_oBikesDictionary.Add(l_oBikeInfo.Id, l_oBikeInfo);
bikesDictionary.Add(bikeInfo.Id, bikeInfo);
}
}
// Remove entries which are not unique.
foreach (var l_oDuplicate in l_oDuplicates)
foreach (var l_oDuplicate in duplicates)
{
l_oBikesDictionary.Remove(l_oDuplicate.Key);
bikesDictionary.Remove(l_oDuplicate.Key);
}
return new BikeCollection(l_oBikesDictionary);
return new BikeCollection(bikesDictionary);
}
}
@ -416,7 +416,8 @@ namespace TINK.Model.Connector
bikeInfo.GetIsDemo(),
bikeInfo.GetGroup(),
bikeInfo.GetWheelType(),
bikeInfo.GetTypeOfBike());
bikeInfo.GetTypeOfBike(),
bikeInfo.description);
}
catch (ArgumentException ex)
{
@ -465,7 +466,8 @@ namespace TINK.Model.Connector
bikeInfo.GetIsDemo(),
bikeInfo.GetGroup(),
bikeInfo.GetWheelType(),
bikeInfo.GetTypeOfBike());
bikeInfo.GetTypeOfBike(),
bikeInfo.description);
}
catch (ArgumentException ex)
{
@ -480,7 +482,7 @@ namespace TINK.Model.Connector
}
}
public static Bikes.Bike.TariffDescription Create(this TINK.Repository.Response.TariffDescription tariffDesciption)
public static Bikes.Bike.TariffDescription Create(this TariffDescription tariffDesciption)
{
return new Bikes.Bike.TariffDescription
{

View file

@ -405,9 +405,13 @@ namespace TINK.Model
{
new Version(3, 0, 238),
AppResources.ChangeLog3_0_231
},
{
new Version(3, 0, 239),
AppResources.ChangeLog3_0_239
}
};
/// <summary> Manges the whats new information.</summary>

View file

@ -715,6 +715,15 @@ namespace TINK.MultilingualResources {
}
}
/// <summary>
/// Looks up a localized string similar to Bugfix: Bike description is displayed correctly again..
/// </summary>
public static string ChangeLog3_0_239 {
get {
return ResourceManager.GetString("ChangeLog3_0_239", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Lock of rented bike can not be found..
/// </summary>

View file

@ -601,4 +601,7 @@ Layout Anzeige Radnamen und nummern verbessert.</value>
<data name="ChangeLog3_0_237" xml:space="preserve">
<value>Hard- und software information werden an Backend übermittelt bei Radrückgabe.</value>
</data>
<data name="ChangeLog3_0_239" xml:space="preserve">
<value>Fehlerbehebung: Radname wird wieder korrekt angezeigt.</value>
</data>
</root>

View file

@ -697,4 +697,7 @@ Layout of bike names and id display improved.</value>
<data name="ChangeLog3_0_237" xml:space="preserve">
<value>Hard- and software information send to backend when returning bike.</value>
</data>
<data name="ChangeLog3_0_239" xml:space="preserve">
<value>Bugfix: Bike description is displayed correctly again.</value>
</data>
</root>

View file

@ -805,6 +805,10 @@ Layout Anzeige Radnamen und nummern verbessert.</target>
<source>Hard- and software information send to backend when returning bike.</source>
<target state="translated">Hard- und software information werden an Backend übermittelt bei Radrückgabe.</target>
</trans-unit>
<trans-unit id="ChangeLog3_0_239" translate="yes" xml:space="preserve">
<source>Bugfix: Bike description is displayed correctly again.</source>
<target state="translated">Fehlerbehebung: Radname wird wieder korrekt angezeigt.</target>
</trans-unit>
</group>
</body>
</file>

View file

@ -149,6 +149,9 @@ namespace TINK.Repository
}
} ";
/// <summary>
/// Holds three rented bc- bikes.
/// </summary>
const string BIKES_OCCUPIED_REQUEST_SET01_001_FILE = @"
{
""shareejson"" : {
@ -186,6 +189,9 @@ namespace TINK.Repository
}
}";
/// <summary>
/// Two rented bc bikes.
/// </summary>
const string BIKES_OCCUPIED_REQUEST_SET02_001_FILE = @"
{
""shareejson"": {
@ -217,6 +223,9 @@ namespace TINK.Repository
}
}";
/// <summary>
/// One reserved and two rented bikes.
/// </summary>
const string BIKES_OCCUPIED_REQUEST_SET02_002_FILE = @"
{
""shareejson"": {
@ -257,6 +266,9 @@ namespace TINK.Repository
}
}";
/// <summary>
/// Three rented bikes.
/// </summary>
const string BIKES_OCCUPIED_REQUEST_SET02_003_FILE = @"
{
""shareejson"": {
@ -297,6 +309,9 @@ namespace TINK.Repository
}
}";
/// <summary>
/// Two rented bikes.
/// </summary>
const string BIKES_OCCUPIED_REQUEST_SHAREEFR01_SET1_FILE = @"
{
""shareejson"": {
@ -375,7 +390,127 @@ namespace TINK.Repository
""copri_version"" : ""4.1.0.0""
}
}";
/// <summary>
/// One reserved and two rented bikes.
/// </summary>
/// <remarks>
/// Response from BIKES_OCCUPIED_REQUEST_SHAREEFR01_SET2_FILE taken (does not yet contain uri_operator) and reserved bike added.
/// </remarks>
const string BIKES_OCCUPIED_REQUEST_SHAREEFR01_SET2_FILE = @"
{
""shareejson"": {
""privacy_html"": ""site/privacy.html"",
""response"": ""user_bikes_occupied"",
""apiserver"": ""https://shareeapp-fr01.copri.eu"",
""authcookie"": ""5781_d47fc786e740ef77d85a24bcb6f0ff97_oiF2kahH"",
""impress_html"": ""site/impress.html"",
""tariff_info_html"": ""site/tariff_info.html"",
""bikes_occupied"": {
""155776"": {
""K_a"": ""[-83, 104, 55, -74, 16, -105, 124, -103, -68, -17, -127, -113, 56, 43, -61, -86, 124, -54, 63, 57, 0, 0, 0, 0]"",
""real_hours"": ""49.3"",
""bike"": ""1545"",
""tariff_description"": {
""eur_per_hour"" : ""2.50"",
""number"" : ""5494"",
""name"" : ""Tester Basic"",
""max_eur_per_day"" : ""10.00""
},
""lock_state"": ""unlocked"",
""total_price"": ""23.75"",
""station"" : ""103"",
""gps"" : { ""latitude"": ""47.9980383301154"", ""longitude"": ""7.78496129438281"" },
""system"": ""Ilockit"",
""end_time"": ""2020-11-08 19:11:27"",
""bike_group"" : [ ""300029"" ],
""Ilockit_ID"": ""ISHAREIT-2200545"",
""start_time"": ""2020-11-06 17:53:22.784681+01"",
""unit_price"": ""2.50"",
""request_time"": ""2020-11-06 17:52:56.832138+01"",
""state"": ""occupied"",
""Ilockit_GUID"": ""00000000-0000-0000-0000-e38bf9d32234"",
""computed_hours"": ""9.50"",
""K_u"": ""[53, 92, -55, -109, 112, 38, -35, 43, -18, 122, 115, 50, -85, -57, 62, -57, -112, 2, 117, -47, 0, 0, 0, 0]"",
""description"": ""Tester-bike (Ilockit)"",
""K_seed"": ""[119, -47, -91, -36, -29, -17, 35, 47, -80, -112, -55, 2, 70, -45, 60, -62]""
},
""155744"": {
""Ilockit_GUID"": ""00000000-0000-0000-0000-d589a8023487"",
""unit_price"": ""2.50"",
""start_time"": ""2020-10-12 08:38:30.401679+02"",
""request_time"": ""2020-10-12 08:38:12.374231+02"",
""state"": ""occupied"",
""K_u"": ""[93, -45, -89, -38, 50, 107, 21, -119, -26, -90, -15, 99, 17, 44, -20, 24, 34, -111, 125, -31, 0, 0, 0, 0]"",
""computed_hours"": ""112"",
""K_seed"": ""[24, 69, -21, 52, 55, 3, -71, 30, -71, 43, 108, -100, 15, 126, -117, 40]"",
""description"": ""Oliver (Ilockit)"",
""tariff_description"": {
""eur_per_hour"" : ""2.50"",
""number"" : ""5494"",
""name"" : ""Tester Basic"",
""max_eur_per_day"" : ""10.00""
},
""bike"": ""1537"",
""uri_operator"" : ""https://shareeapp-fr01.copri.eu"",
""real_hours"": ""659.55"",
""lock_state"": ""locked"",
""K_a"": ""[109, 35, -55, 78, -65, 87, -43, -4, -90, -104, -16, -45, -80, -80, 106, -25, -77, 111, -79, 58, 0, 0, 0, 0]"",
""system"": ""Ilockit"",
""gps"" : { ""latitude"": ""47.9977741744369"", ""longitude"": ""7.78484562411904"" },
""station"" : ""103"",
""total_price"": ""280.00"",
""Ilockit_ID"": ""ISHAREIT-2200537"",
""bike_group"" : [ ""300029"" ],
""end_time"": ""2020-11-08 19:11:25""
},
""156350"" : {
""total_price"" : ""0.00"",
""description"" : ""Tester-bike Oliver 2"",
""K_u"" : ""[-72, 88, 96, -80, -2, 82, 36, -67, 48, 101, -55, 127, -85, 95, -83, -77, 14, -103, -14, -47, 0, 0, 0, 0]"",
""real_hours"" : ""0"",
""state"" : ""requested"",
""tariff_description"" : {
""eur_per_hour"" : ""3.00"",
""max_eur_per_day"" : ""10.00"",
""number"" : ""5494"",
""name"" : ""Tester Basic""
},
""station"" : ""FR_103"",
""Ilockit_ID"" : ""ISHAREIT-2302373"",
""K_seed"" : ""[-93, -36, 49, -84, 65, 107, 74, 125, -91, -59, 43, 45, 85, -126, 91, -27]"",
""K_a"" : ""[-76, 86, 39, -62, 89, 76, 23, -37, 108, -4, 4, -36, -48, 26, -110, -75, 96, -101, -26, -51, 0, 0, 0, 0]"",
""end_time"" : ""2021-07-04 17:46:00+02"",
""system"" : ""Ilockit"",
""computed_hours"" : ""0"",
""bike"" : ""FR_1004"",
""uri_operator"" : ""https://shareeapp-fr01.copri.eu"",
""start_time"" : ""2021-07-04 17:46:36.237404+02"",
""bike_group"" : [
""FR_300029""
],
""gps"" : {
""latitude"" : ""47.9978876"",
""longitude"" : ""7.7849563""
},
""unit_price"" : ""3.00"",
""lock_state"" : ""locked"",
""Ilockit_GUID"" : ""00000000-0000-0000-0000-fe3962c08bcc"",
""request_time"" : ""2021-07-04 17:46:36.237404+02""
}
},
""bike_info_html"": ""site/bike_info.html"",
""agb_html"": ""site/agb.html"",
""agb_checked"": ""1"",
""user_id"": ""ohauff@posteo.de"",
""response_state"": ""OK: nothing todo "",
""lang"": ""DE"",
""user_group"": [ ""300029"", ""300001"" ],
""debuglevel"": ""1"",
""copri_version"" : ""4.1.0.0""
}
}";
const string BIKES_AVAILABLE_SET01_001_FILE = @"
{
""shareejson"" : {
@ -734,6 +869,9 @@ namespace TINK.Repository
}
}";
/// <summary>
/// Five available bikes.
/// </summary>
const string BIKES_AVAILABLE_REQUEST_SHAREEFR01_SET1_FILE = @"
{
""shareejson"": {
@ -1222,12 +1360,12 @@ namespace TINK.Repository
/// <summary>
/// Gets a list of bikes reserved/ booked by acctive user from Copri.
/// </summary>
/// <param name="p_strSessionCookie">Cookie to authenticate user.</param>
/// <param name="sessionCookie">Cookie to authenticate user.</param>
/// <param name="SampleSet">Sample set to use.</param>
/// <param name="p_lStageIndex">Index of the stage.</param>
/// <returns>Response holding list of bikes.</returns>
public static BikesReservedOccupiedResponse GetBikesOccupied(
string p_strSessionCookie = null,
string sessionCookie = null,
SampleSets sampleSet = DEFAULT_SAMPLE_SET,
long stageIndex = DEFAULT_STAGE_INDEX)
{
@ -1275,6 +1413,9 @@ namespace TINK.Repository
response = CopriCallsStatic.DeserializeResponse<BikesReservedOccupiedResponse>(BIKES_OCCUPIED_REQUEST_SHAREEFR01_SET1_FILE);
break;
case 2:
response = CopriCallsStatic.DeserializeResponse<BikesReservedOccupiedResponse>(BIKES_OCCUPIED_REQUEST_SHAREEFR01_SET2_FILE);
break;
default:
return null;
@ -1288,9 +1429,9 @@ namespace TINK.Repository
return null;
}
return p_strSessionCookie == null || response?.authcookie == p_strSessionCookie
return sessionCookie == null || response?.authcookie == sessionCookie
? response
: ResponseHelper.GetBikesOccupiedNone(p_strSessionCookie);
: ResponseHelper.GetBikesOccupiedNone(sessionCookie);
}

View file

@ -1,37 +1,432 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31229.75
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2027
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TINKLib", "TINKLib.csproj", "{E58134F3-2A53-4825-8580-14554CA405FD}"
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "TINK", "..\TINK\TINK\TINK.shproj", "{5297504F-603F-4E1A-98AA-57C4A0D9D833}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LockItShared", "..\LockItShared\LockItShared.csproj", "{FA5648EF-4A5C-4513-8CBF-3BBB3D66CD9E}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TINK.Android", "..\TINK\TINK.Android\TINK.Android.csproj", "{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LockItBLE", "..\LockItBLE\LockItBLE.csproj", "{2BDECA07-F070-4796-B334-B012729748DA}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TINK.iOS", "..\TINK\TINK.iOS\TINK.iOS.csproj", "{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TINKLib", "TINKLib.csproj", "{B77F4222-0860-4494-A07C-EE8E09FA9983}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestTINKLib", "..\TestTINKLib\TestTINKLib.csproj", "{730A31A5-6736-43CC-8F84-8FDA5093E283}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{49C8F824-4752-449E-A53C-35A2722AFA99}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Set02 - Book 3rd bike", "Set02 - Book 3rd bike", "{50D4A63A-91D8-4EC5-ADF6-9EF72D7AFAF0}"
ProjectSection(SolutionItems) = preProject
..\TestData\Set02\Story.json = ..\TestData\Set02\Story.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "001", "001", "{A5D8D93B-4D4E-4C4C-A70C-44A451D6C722}"
ProjectSection(SolutionItems) = preProject
..\TestData\Set02\001\bikes_available.json = ..\TestData\Set02\001\bikes_available.json
..\TestData\Set02\001\booking_request_bike_8.json = ..\TestData\Set02\001\booking_request_bike_8.json
..\TestData\Set02\001\stations_all.json = ..\TestData\Set02\001\stations_all.json
..\TestData\Set02\001\user_bikes_occupied.json = ..\TestData\Set02\001\user_bikes_occupied.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "002", "002", "{D0A2A88B-5DD9-4B40-A8AE-2AED6FB41911}"
ProjectSection(SolutionItems) = preProject
..\TestData\Set02\002\bikes_available.json = ..\TestData\Set02\002\bikes_available.json
..\TestData\Set02\002\stations_all.json = ..\TestData\Set02\002\stations_all.json
..\TestData\Set02\002\user_bikes_occupied.json = ..\TestData\Set02\002\user_bikes_occupied.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "003", "003", "{272FB1A5-BBC5-41DF-91C2-C1C1A85AFD44}"
ProjectSection(SolutionItems) = preProject
..\TestData\Set02\003\bikes_available.json = ..\TestData\Set02\003\bikes_available.json
..\TestData\Set02\003\stations_all.json = ..\TestData\Set02\003\stations_all.json
..\TestData\Set02\003\user_bikes_occupied.json = ..\TestData\Set02\003\user_bikes_occupied.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Set03 - Book 1st bike", "Set03 - Book 1st bike", "{E5E0E87A-1CDD-4E66-AF66-26EBDD0C6E61}"
ProjectSection(SolutionItems) = preProject
..\TestData\Set03\Story.json = ..\TestData\Set03\Story.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "001", "001", "{B0BE116C-B05C-4864-9D1F-5CE1A8EC7BD0}"
ProjectSection(SolutionItems) = preProject
..\TestData\Set03\001\booking_request_bike_20.json = ..\TestData\Set03\001\booking_request_bike_20.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "002", "002", "{C579CA91-17DC-4AC4-8F1B-377A245883FD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Set01 - Log in", "Set01 - Log in", "{A872956F-17F0-416E-9A9A-F28D96F13A94}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "001", "001", "{104F18F2-1261-42C0-96A4-F5BBACF595DA}"
ProjectSection(SolutionItems) = preProject
..\TestData\Set01\001\authorization_javaminister%40gmail.com_javaminister_HwId1000000000000.json = ..\TestData\Set01\001\authorization_javaminister%40gmail.com_javaminister_HwId1000000000000.json
..\TestData\Set01\001\bikes_available.json = ..\TestData\Set01\001\bikes_available.json
..\TestData\Set01\001\bikes_occupied.json = ..\TestData\Set01\001\bikes_occupied.json
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Set04 - Cancel Booking", "Set04 - Cancel Booking", "{55C5EF2A-FDEB-40F6-ABE9-84B7B1981B2B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "001", "001", "{AADA3B61-8626-43AE-BED9-BA5AA3D93576}"
ProjectSection(SolutionItems) = preProject
..\TestData\Set04 - Cancel Booking\001\booking_cancel_bike_7.json = ..\TestData\Set04 - Cancel Booking\001\booking_cancel_bike_7.json
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestTINK", "..\UITest\TestTINK.csproj", "{240B1AC3-6ECB-4985-BA04-D631668D6CCF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestTINKUI", "..\TestTINKUI\TestTINKUI.csproj", "{B19C892E-2628-4CA7-AD27-08D406A3B14B}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
..\TINK\TINK\TINK.projitems*{5297504f-603f-4e1a-98aa-57c4a0d9d833}*SharedItemsImports = 13
..\TINK\TINK\TINK.projitems*{62b8950a-70b8-4f9d-affc-0a1ebe7bc9e7}*SharedItemsImports = 4
..\TINK\TINK\TINK.projitems*{f2d8208f-a8bf-4403-b0ae-2a1d270e4dc9}*SharedItemsImports = 4
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
Ad-Hoc|ARM = Ad-Hoc|ARM
Ad-Hoc|iPhone = Ad-Hoc|iPhone
Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
Ad-Hoc|x64 = Ad-Hoc|x64
Ad-Hoc|x86 = Ad-Hoc|x86
AppStore|Any CPU = AppStore|Any CPU
AppStore|ARM = AppStore|ARM
AppStore|iPhone = AppStore|iPhone
AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
AppStore|x64 = AppStore|x64
AppStore|x86 = AppStore|x86
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|iPhone = Debug|iPhone
Debug|iPhoneSimulator = Debug|iPhoneSimulator
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|iPhone = Release|iPhone
Release|iPhoneSimulator = Release|iPhoneSimulator
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E58134F3-2A53-4825-8580-14554CA405FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E58134F3-2A53-4825-8580-14554CA405FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E58134F3-2A53-4825-8580-14554CA405FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E58134F3-2A53-4825-8580-14554CA405FD}.Release|Any CPU.Build.0 = Release|Any CPU
{FA5648EF-4A5C-4513-8CBF-3BBB3D66CD9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA5648EF-4A5C-4513-8CBF-3BBB3D66CD9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FA5648EF-4A5C-4513-8CBF-3BBB3D66CD9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FA5648EF-4A5C-4513-8CBF-3BBB3D66CD9E}.Release|Any CPU.Build.0 = Release|Any CPU
{2BDECA07-F070-4796-B334-B012729748DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2BDECA07-F070-4796-B334-B012729748DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2BDECA07-F070-4796-B334-B012729748DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2BDECA07-F070-4796-B334-B012729748DA}.Release|Any CPU.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|x64.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|Any CPU.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|ARM.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|ARM.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|ARM.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|iPhone.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|iPhone.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|iPhone.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|x64.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|x64.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|x64.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|x86.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|x86.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.AppStore|x86.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|ARM.ActiveCfg = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|ARM.Build.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|ARM.Deploy.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|iPhone.Build.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|iPhone.Deploy.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|x64.ActiveCfg = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|x64.Build.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|x64.Deploy.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|x86.ActiveCfg = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|x86.Build.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Debug|x86.Deploy.0 = Debug|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|Any CPU.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|Any CPU.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|ARM.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|ARM.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|ARM.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|iPhone.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|iPhone.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|iPhone.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|x64.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|x64.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|x64.Deploy.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|x86.ActiveCfg = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|x86.Build.0 = Release|Any CPU
{62B8950A-70B8-4F9D-AFFC-0A1EBE7BC9E7}.Release|x86.Deploy.0 = Release|Any CPU
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.AppStore|ARM.ActiveCfg = AppStore|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.AppStore|iPhone.Build.0 = AppStore|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.AppStore|x64.ActiveCfg = AppStore|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.AppStore|x86.ActiveCfg = AppStore|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Debug|Any CPU.ActiveCfg = Debug|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Debug|ARM.ActiveCfg = Debug|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Debug|iPhone.ActiveCfg = Debug|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Debug|iPhone.Build.0 = Debug|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Debug|x64.ActiveCfg = Debug|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Debug|x86.ActiveCfg = Debug|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Release|Any CPU.ActiveCfg = Release|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Release|ARM.ActiveCfg = Release|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Release|iPhone.ActiveCfg = Release|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Release|iPhone.Build.0 = Release|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Release|x64.ActiveCfg = Release|iPhone
{F2D8208F-A8BF-4403-B0AE-2A1D270E4DC9}.Release|x86.ActiveCfg = Release|iPhone
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|ARM.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|iPhone.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|x64.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|x64.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|x86.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.AppStore|x86.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|ARM.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|ARM.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|iPhone.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|x64.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|x64.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|x86.ActiveCfg = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Debug|x86.Build.0 = Debug|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|Any CPU.Build.0 = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|ARM.ActiveCfg = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|ARM.Build.0 = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|iPhone.ActiveCfg = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|iPhone.Build.0 = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|x64.ActiveCfg = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|x64.Build.0 = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|x86.ActiveCfg = Release|Any CPU
{B77F4222-0860-4494-A07C-EE8E09FA9983}.Release|x86.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|x64.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|Any CPU.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|ARM.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|ARM.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|iPhone.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|iPhone.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|x64.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|x64.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|x86.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.AppStore|x86.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|Any CPU.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|ARM.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|ARM.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|iPhone.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|x64.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|x64.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|x86.ActiveCfg = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Debug|x86.Build.0 = Debug|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|Any CPU.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|Any CPU.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|ARM.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|ARM.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|iPhone.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|iPhone.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|x64.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|x64.Build.0 = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|x86.ActiveCfg = Release|Any CPU
{730A31A5-6736-43CC-8F84-8FDA5093E283}.Release|x86.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|x64.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|Any CPU.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|ARM.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|ARM.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|iPhone.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|iPhone.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|x64.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|x64.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|x86.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.AppStore|x86.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|ARM.ActiveCfg = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|ARM.Build.0 = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|iPhone.Build.0 = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|x64.ActiveCfg = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|x64.Build.0 = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|x86.ActiveCfg = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Debug|x86.Build.0 = Debug|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|Any CPU.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|ARM.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|ARM.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|iPhone.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|iPhone.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|x64.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|x64.Build.0 = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|x86.ActiveCfg = Release|Any CPU
{240B1AC3-6ECB-4985-BA04-D631668D6CCF}.Release|x86.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|x64.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|Any CPU.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|ARM.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|ARM.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|iPhone.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|iPhone.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|x64.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|x64.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|x86.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.AppStore|x86.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|ARM.ActiveCfg = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|ARM.Build.0 = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|iPhone.Build.0 = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|x64.ActiveCfg = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|x64.Build.0 = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|x86.ActiveCfg = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Debug|x86.Build.0 = Debug|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|Any CPU.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|ARM.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|ARM.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|iPhone.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|iPhone.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|x64.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|x64.Build.0 = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|x86.ActiveCfg = Release|Any CPU
{B19C892E-2628-4CA7-AD27-08D406A3B14B}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{50D4A63A-91D8-4EC5-ADF6-9EF72D7AFAF0} = {49C8F824-4752-449E-A53C-35A2722AFA99}
{A5D8D93B-4D4E-4C4C-A70C-44A451D6C722} = {50D4A63A-91D8-4EC5-ADF6-9EF72D7AFAF0}
{D0A2A88B-5DD9-4B40-A8AE-2AED6FB41911} = {50D4A63A-91D8-4EC5-ADF6-9EF72D7AFAF0}
{272FB1A5-BBC5-41DF-91C2-C1C1A85AFD44} = {50D4A63A-91D8-4EC5-ADF6-9EF72D7AFAF0}
{E5E0E87A-1CDD-4E66-AF66-26EBDD0C6E61} = {49C8F824-4752-449E-A53C-35A2722AFA99}
{B0BE116C-B05C-4864-9D1F-5CE1A8EC7BD0} = {E5E0E87A-1CDD-4E66-AF66-26EBDD0C6E61}
{C579CA91-17DC-4AC4-8F1B-377A245883FD} = {E5E0E87A-1CDD-4E66-AF66-26EBDD0C6E61}
{A872956F-17F0-416E-9A9A-F28D96F13A94} = {49C8F824-4752-449E-A53C-35A2722AFA99}
{104F18F2-1261-42C0-96A4-F5BBACF595DA} = {A872956F-17F0-416E-9A9A-F28D96F13A94}
{55C5EF2A-FDEB-40F6-ABE9-84B7B1981B2B} = {49C8F824-4752-449E-A53C-35A2722AFA99}
{AADA3B61-8626-43AE-BED9-BA5AA3D93576} = {55C5EF2A-FDEB-40F6-ABE9-84B7B1981B2B}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {616DBD26-7262-4782-9A99-8A7A0228DEC3}
SolutionGuid = {C6529CD7-C3F7-4E80-89B5-002E2B8E3EB5}
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0
$0.DotNetNamingPolicy = $1
$1.DirectoryNamespaceAssociation = PrefixedHierarchical
version = 3.0
EndGlobalSection
EndGlobal

View file

@ -31,9 +31,9 @@ namespace TestTINKLib.Fixtures.ObjectTests.Bike.BluetoothLock
[Test]
public void TestCtorRequested()
{
Assert.AreEqual("12", new BikeInfo("12", 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1)).Id);
Assert.AreEqual(112, new BikeInfo("12", 112, new Guid(), null, null, null, new DateTime(2020,1,1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1)).LockInfo.Id);
Assert.AreEqual(InUseStateEnum.Reserved, new BikeInfo("12", 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1)).State.Value);
Assert.AreEqual("12", new BikeInfo("12", 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1), false /*isDemo*/, null /*group*/, null /*wheelType*/, null /*typeOfBike*/, null /*description*/).Id);
Assert.AreEqual(112, new BikeInfo("12", 112, new Guid(), null, null, null, new DateTime(2020,1,1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1), false /*isDemo*/, null /*group*/, null /*wheelType*/, null /*typeOfBike*/, null /*description*/).LockInfo.Id);
Assert.AreEqual(InUseStateEnum.Reserved, new BikeInfo("12", 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1), false /*isDemo*/, null /*group*/, null /*wheelType*/, null /*typeOfBike*/, null /*description*/).State.Value);
}
[Test]

View file

@ -9,7 +9,6 @@ using UITest.Fixtures.Connector;
namespace TestTINKLib.Fixtures.Misc
{
[TestFixture]
[Explicit("Run with care because this stress impact live system.")]
[Category(TestCopriCallsHttps.CATEGORY_REQUIRESCOPRI)]
public class TestCachetimings
{

View file

@ -154,48 +154,109 @@ namespace TestTINKLib.Fixtures.Connector
}
[Test]
public void TestGetBikesOccupied_BikeNr5GetBooked()
public void TestGetBikesOccupied_BC_BikeNr5GetBooked()
{
var l_oBikesTarget = UpdaterJSON.GetBikesOccupied(
var bikesTarget = UpdaterJSON.GetBikesOccupied(
GetBikesOccupied("4da3044c8657a04ba60e2eaa753bc51a", SampleSets.Set2, 1),
"a@B",
() => new DateTime(2017, 11, 28, 14, 8, 14)); // Date time now for bikes which are reserved
// Check initial count of bikes.
Assert.AreEqual(2, l_oBikesTarget.Count);
Assert.AreEqual(2, bikesTarget.Count);
// Bike 5 is reserved
l_oBikesTarget = UpdaterJSON.GetBikesOccupied(
bikesTarget = UpdaterJSON.GetBikesOccupied(
GetBikesOccupied("4da3044c8657a04ba60e2eaa753bc51a", SampleSets.Set2, 2),
"a@B",
() => new DateTime(2017, 11, 28, 14, 08, 36).Add(new TimeSpan(0, 2, 0))); // Date time now for bikes which are reserved
Assert.AreEqual(3, l_oBikesTarget.Count, "One bike (nr. 5) got reserved");
Assert.NotNull(l_oBikesTarget.GetById("5"));
Assert.AreEqual(InUseStateEnum.Reserved, l_oBikesTarget.GetById("5").State.Value);
Assert.AreEqual("5", l_oBikesTarget.GetById("5").Id);
Assert.AreEqual(TypeOfBike.Cargo, l_oBikesTarget.GetById("5").TypeOfBike);
Assert.AreEqual(WheelType.Two, l_oBikesTarget.GetById("5").WheelType);
Assert.AreEqual(DateTime.Parse("2017-11-28 14:07:13.745568+01"), l_oBikesTarget.GetById("5").State.From); // Sommer/ Winterzeit!
Assert.AreEqual("2360", l_oBikesTarget.GetById("5").State.Code);
Assert.AreEqual(3, bikesTarget.Count, "One bike (nr. 5) got reserved");
Assert.NotNull(bikesTarget.GetById("5"));
Assert.AreEqual(InUseStateEnum.Reserved, bikesTarget.GetById("5").State.Value);
Assert.AreEqual("5", bikesTarget.GetById("5").Id);
Assert.AreEqual("Cargo Long", bikesTarget.GetById("5").Description);
Assert.AreEqual(TypeOfBike.Cargo, bikesTarget.GetById("5").TypeOfBike);
Assert.AreEqual(WheelType.Two, bikesTarget.GetById("5").WheelType);
Assert.AreEqual(DateTime.Parse("2017-11-28 14:07:13.745568+01"), bikesTarget.GetById("5").State.From); // Sommer/ Winterzeit!
Assert.AreEqual("2360", bikesTarget.GetById("5").State.Code);
// Bike 5 is booked
l_oBikesTarget = UpdaterJSON.GetBikesOccupied(
bikesTarget = UpdaterJSON.GetBikesOccupied(
CopriCallsMemory.GetBikesOccupied("4da3044c8657a04ba60e2eaa753bc51a", SampleSets.Set2, 3),
"a@B",
() => DateTime.Now);
Assert.AreEqual(3, l_oBikesTarget.Count, "One bike (nr. 5) got booked");
Assert.AreEqual(3, bikesTarget.Count, "One bike (nr. 5) got booked");
Assert.IsNotNull(l_oBikesTarget.GetById("5"));
Assert.AreEqual(InUseStateEnum.Booked, l_oBikesTarget.GetById("5").State.Value);
Assert.AreEqual("5", l_oBikesTarget.GetById("5").Id);
Assert.AreEqual(TypeOfBike.Cargo, l_oBikesTarget.GetById("5").TypeOfBike);
Assert.AreEqual(WheelType.Two, l_oBikesTarget.GetById("5").WheelType);
Assert.AreEqual(DateTime.Parse("2017 -11-28 14:08:32.756368+01"), l_oBikesTarget.GetById("5").State.From); // Sommer/ Winterzeit!
Assert.AreEqual("2360", l_oBikesTarget.GetById("5").State.Code);
Assert.IsNotNull(bikesTarget.GetById("5"));
Assert.AreEqual(InUseStateEnum.Booked, bikesTarget.GetById("5").State.Value);
Assert.AreEqual("5", bikesTarget.GetById("5").Id);
Assert.AreEqual("Cargo Long", bikesTarget.GetById("5").Description);
Assert.AreEqual(TypeOfBike.Cargo, bikesTarget.GetById("5").TypeOfBike);
Assert.AreEqual(WheelType.Two, bikesTarget.GetById("5").WheelType);
Assert.AreEqual(DateTime.Parse("2017 -11-28 14:08:32.756368+01"), bikesTarget.GetById("5").State.From); // Sommer/ Winterzeit!
Assert.AreEqual("2360", bikesTarget.GetById("5").State.Code);
}
[Test]
public void TestGetBikesOccupied_Bt_BikeNr5GetBooked()
{
var bikesTarget = UpdaterJSON.GetBikesOccupied(
GetBikesOccupied("5781_d47fc786e740ef77d85a24bcb6f0ff97_oiF2kahH", SampleSets.ShareeFr01_Set1, 1),
"a@B",
() => new DateTime(2017, 11, 28, 14, 8, 14)); // Date time now for bikes which are reserved
// Check initial count of bikes.
Assert.AreEqual(2, bikesTarget.Count);
// Bike 5 is reserved
bikesTarget = UpdaterJSON.GetBikesOccupied(
GetBikesOccupied("5781_d47fc786e740ef77d85a24bcb6f0ff97_oiF2kahH", SampleSets.ShareeFr01_Set1, 2),
"a@B",
() => new DateTime(2017, 11, 28, 14, 08, 36).Add(new TimeSpan(0, 2, 0))); // Date time now for bikes which are reserved
Assert.AreEqual(3, bikesTarget.Count, "One bike (nr. 5) got reserved");
var btBikeReserved = bikesTarget.GetById("FR_1004") as BikeInfo;
Assert.NotNull(btBikeReserved);
Assert.AreEqual(InUseStateEnum.Reserved, bikesTarget.GetById("FR_1004").State.Value);
Assert.AreEqual("FR_1004", btBikeReserved.Id);
Assert.AreEqual("Tester-bike Oliver 2", btBikeReserved.Description);
Assert.That(btBikeReserved.TypeOfBike, Is.Null);
Assert.That(btBikeReserved.WheelType, Is.Null);
Assert.AreEqual(DateTime.Parse("2021-07-04 17:46:36.237404+02"), btBikeReserved.State.From); // Sommer/ Winterzeit!
Assert.That(btBikeReserved.State.Code, Is.EqualTo(string.Empty), "Not needed for bt bikes.");
Assert.That(btBikeReserved.TariffDescription.FeeEuroPerHour, Is.EqualTo(3));
Assert.That(btBikeReserved.TariffDescription.MaxFeeEuroPerDay, Is.EqualTo(10));
Assert.That(btBikeReserved.TariffDescription.Number, Is.EqualTo(5494));
Assert.That(btBikeReserved.TariffDescription.Name, Is.EqualTo("Tester Basic"));
Assert.That(btBikeReserved.CurrentStation, Is.EqualTo("FR_103"));
Assert.That(btBikeReserved.LockInfo.Id, Is.EqualTo(2302373));
Assert.That(btBikeReserved.OperatorUri.AbsoluteUri, Does.Contain("https://shareeapp-fr01.copri.eu"));
Assert.That(btBikeReserved.Group.Count, Is.EqualTo(1));
Assert.That(btBikeReserved.Group.ToArray()[0], Is.EqualTo("FR_300029"));
// Bike 5 is booked
var btBikeRented = bikesTarget.GetById("1537") as BikeInfo;
Assert.IsNotNull(btBikeRented);
Assert.AreEqual(InUseStateEnum.Booked, btBikeRented.State.Value);
Assert.AreEqual("1537", btBikeRented.Id);
Assert.AreEqual("Oliver (Ilockit)", btBikeRented.Description);
Assert.That(btBikeRented.TypeOfBike, Is.Null);
Assert.That(btBikeRented.WheelType, Is.Null);
Assert.AreEqual(DateTime.Parse("2020-10-12 08:38:30.401679+02"), btBikeRented.State.From); // Sommer/ Winterzeit!
Assert.AreEqual(string.Empty, btBikeRented.State.Code, "Not needed for bt bikes.");
Assert.That(btBikeRented.TariffDescription.FeeEuroPerHour, Is.EqualTo(2.5));
Assert.That(btBikeRented.TariffDescription.MaxFeeEuroPerDay, Is.EqualTo(10));
Assert.That(btBikeRented.TariffDescription.Number, Is.EqualTo(5494));
Assert.That(btBikeRented.TariffDescription.Name, Is.EqualTo("Tester Basic"));
Assert.That(btBikeRented.CurrentStation, Is.EqualTo("103"));
Assert.That(btBikeRented.LockInfo.Id, Is.EqualTo(2200537));
Assert.That(btBikeRented.OperatorUri.AbsoluteUri, Does.Contain("https://shareeapp-fr01.copri.eu"));
Assert.That(btBikeRented.Group.Count, Is.EqualTo(1));
Assert.That(btBikeRented.Group.ToArray()[0], Is.EqualTo("300029"));
}
@ -491,7 +552,12 @@ namespace TestTINKLib.Fixtures.Connector
"1",
null,
null,
() => DateTime.Now));
() => DateTime.Now,
false, /*isDemo*/
null, /*group*/
null, /*wheelType*/
null, /*typeOfBike*/
null /*description*/));
var response = JsonConvert.DeserializeObject<BikeInfoReservedOrBooked>(@"
{
@ -559,7 +625,12 @@ namespace TestTINKLib.Fixtures.Connector
"1",
null,
null,
() => DateTime.Now));
() => DateTime.Now,
false, /*isDemo*/
null, /*group*/
null, /*wheelType*/
null, /*typeOfBike*/
null /*description*/));
Assert.AreEqual(InUseStateEnum.Reserved, bike.State.Value);