mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2025-04-21 12:36:28 +02:00
Version 3.0.239
This commit is contained in:
parent
2a2d814243
commit
553eaaa4e0
15 changed files with 773 additions and 180 deletions
|
@ -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
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue