/// <summary> /// Method that save received data in tables of database /// </summary> /// <param name="dep_time">departure time</param> /// <param name="arr_time">arrival time</param> /// <param name="rDepTime">return departure time</param> /// <param name="rArrTime">return arrival time</param> /// <param name="cost">price of flight</param> /// <param name="airline">airline company that provide the flight</param> /// <param name="siteName">the name of website</param> /// <param name="leg">index of investigated route</param> private void SaveDataInDatabase(string dep_time, string arr_time, string rDepTime, string rArrTime, string cost, List <string> airline, string siteName, int leg) { Roundtrip roundtrip = new Roundtrip(); SearchResult result = new SearchResult(); Database.Database database = new Database.Database(_controller.Config.DatabaseRemote, _controller.Config.DatabaseUser, _controller.Config.DatabasePassword, _controller.Config.DatabaseName, (uint)_controller.Config.DatabasePort); if (_controller.ArrivalDate != null) { roundtrip.ArrDate = DateTime.Parse($"{_controller.ArrivalDate:d}"); roundtrip.DepTime = DateTime.Parse(rArrTime); roundtrip.ArrTime = DateTime.Parse(rDepTime); roundtrip.DepDate = roundtrip.ArrTime > roundtrip.DepTime ? roundtrip.ArrDate : roundtrip.ArrDate.AddDays(1); roundtrip.Departure = _controller.FlightLegs[leg].Arrival; roundtrip.Arrival = _controller.FlightLegs[leg].Departure; roundtrip.ServiceClass = 2; roundtrip.ValidateCarrier = database.GetAirlineCode(airline[0]); } result.SearchTime = DateTime.Now; result.DepDate = DateTime.Parse($"{_controller.DepartureDate:d}"); result.DepTime = DateTime.Parse(dep_time); result.ArrTime = DateTime.Parse(arr_time); result.ArrDate = result.ArrTime < result.DepTime ? result.DepDate.AddDays(1) : result.DepDate; result.Price = decimal.Parse(cost); result.ValidateCarrier = database.GetAirlineCode(airline[0]); result.ServiceClass = 2; result.Type1 = 3; result.Url = siteName; result.Departure = _controller.FlightLegs[leg].Departure; result.Arrival = _controller.FlightLegs[leg].Arrival; if (roundtrip.ValidateCarrier == null) { roundtrip.ValidateCarrier = result.ValidateCarrier; } if (roundtrip.ArrTime != null) { int rid = database.RoundtripIsExistsInDatabase(roundtrip); if (rid != 0) { result.Rtrip = 1; result.RoundtripId = rid; } else { rid = database.InsertRoundtripsToDatabase(roundtrip); result.Rtrip = 1; result.RoundtripId = rid; } } if (database.SearchResultsIsExistsInDatabase(result) == 0) { var n = database.InsertSearchResultsToDatabase(result); } }