예제 #1
0
 public BexsTestController(IWriteDestinationFile writer, ITravelPathBusiness travelPathBusiness, IAirportBusiness airportBusiness, IReadDestinationFile fileReader, IConfiguration configuration)
 {
     this.airportBusiness    = airportBusiness;
     this.fileReader         = fileReader;
     this.configuration      = configuration;
     this.travelPathBusiness = travelPathBusiness;
     this.fileWriter         = writer;
 }
예제 #2
0
        public void WriteNewRoute(string origin, string destination, string cost, string filePath, IWriteDestinationFile writer)
        {
            int costParam = 0;

            if (int.TryParse(cost, out costParam))
            {
                if (ContainsRoute(origin, destination, filePath))
                {
                    List <string> fileList = destinationReader.ReadFile(filePath).ToList();
                    for (int i = 0; i < fileList.Count(); i++)
                    {
                        string item = fileList[i];
                        if (item.Contains($"{origin},{destination}"))
                        {
                            item        = $"{origin},{destination},{cost}";
                            fileList[i] = item;
                        }
                    }
                    writer.UpdateRoutes(filePath, fileList);
                }
                else
                {
                    writer.WriteNewRoute(origin, destination, costParam, filePath);
                }
                RefreshCache(filePath, destinationReader);
            }
            else
            {
                throw new Exception("O Parâmetro custo deve ser numérico");
            }
        }