using BeWo.Data.Entities; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BeWo.Service.ServiceUtils.DistanceCalculator { public class AddressRouteMatrix { public int OriginsLength { get; set; } public int DestinationsLength { get; set; } public Address[] OriginAddresses { get; set; } public Address[] DestinationAddresses { get; set; } public Dictionary
Origins { get; set; } public Dictionary Destinations { get; set; } public AddressRoute[,] Routes { get; set; } public AddressRouteMatrix(Address[] originAddresses, Address[] destinationAddresses) { OriginAddresses = originAddresses; Origins = new Dictionary(); OriginsLength = originAddresses.Length; DestinationAddresses = destinationAddresses; Destinations = new Dictionary(); DestinationsLength = destinationAddresses.Length; int i; for (i = 0; i < OriginsLength; i++) { Origins.Add(originAddresses[i], i); } for (i = 0; i < DestinationsLength; i++) { Destinations.Add(destinationAddresses[i], i); } Routes = new AddressRoute[OriginsLength, DestinationsLength]; } public void SetRoute(Address origin, Address destination, AddressRoute value) => Routes[Origins[origin], Destinations[destination]] = value; public AddressRoute GetRoute(Address origin, Address destination) { return Routes[Origins[origin], Destinations[destination]]; } public IEnumerable