using TINK.Repository.Response;
using TINK.Repository;
using System.Linq;
using Newtonsoft.Json;
using System.Text.RegularExpressions;
namespace TestFramework.Repository
{
public static class CopriCallsHelper
{
///
/// Filters bikes available response by station.
///
///
///
///
public static BikesAvailableResponse FilterByStation(this BikesAvailableResponse bikes, string stationId)
{
if (string.IsNullOrEmpty(stationId))
{
// If filter is off there is nothing to filter.
return bikes;
}
var bikesText = JsonConvert.SerializeObject(bikes);
var response = CopriCallsStatic.DeserializeResponse($"{{ \"{nameof(VersionindependentResponse.shareejson)}\" : {bikesText} }}");
var bikeIdList = response.bikes.Select(x => x.Value.bike).ToList();
foreach (var bike in bikeIdList)
{
response.bikes.Remove(bike);
};
var allBikes = bikes.bikes.Values.Where(x => x.station == stationId).ToList();
foreach (var bike in allBikes)
{
response.bikes.Add(bike.bike, bike);
}
return response;
}
///
/// Filters bikes available response by station.
///
///
///
///
public static BikesAvailableResponse FilterByBike(this BikesAvailableResponse bikes, string bikeId)
{
if (string.IsNullOrEmpty(bikeId))
{
// If filter is off there is nothing to filter.
return bikes;
}
var bikesText = JsonConvert.SerializeObject(bikes);
var response = CopriCallsStatic.DeserializeResponse($"{{ \"{nameof(VersionindependentResponse.shareejson)}\" : {bikesText} }}");
var bikeIdList = response.bikes.Select(x => x.Value.bike).ToList();
foreach (var bike in bikeIdList)
{
response.bikes.Remove(bike);
};
var allBikes = bikes.bikes.Values.Where(x => Regex.IsMatch(x.bike, bikeId)).ToList();
foreach (var bike in allBikes)
{
response.bikes.Add(bike.bike, bike);
}
return response;
}
}
}