public async Task <ActionResult <Flights> > Get([FromQuery] string relative_To) { string urlRequest = Request.QueryString.Value; IEnumerable <Flights> flightList = new List <Flights>(); // The pattern we asked for. string patternAndSync = @"^?relative_to=(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z+(&sync_all)$"; string patternWithoutSync = @"^?relative_to=(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z$"; // Check if the givven dateTime in relative_to is availible. if (!CheckObjects.CheckDateTime(relative_To)) { return(BadRequest()); } if (Regex.IsMatch(urlRequest, patternAndSync)) { flightList = await flightManager.GetFlightsByDateTimeAndSync(relative_To); } else if (Regex.IsMatch(urlRequest, patternWithoutSync)) { flightList = flightManager.GetFlightsByDateTime(relative_To); } else { return(BadRequest()); } if (flightList == null) { return(NotFound(flightList)); } return(Ok(flightList)); }
public ActionResult Post([FromBody] FlightPlan flightPlan) { if (!CheckObjects.CheckFlightPlan(flightPlan)) { return(BadRequest()); } string idOfAddedFlightPlan = flightPlanManager.AddFlightPlan(flightPlan); return(CreatedAtAction(actionName: "GetFlightPlan", new { id = idOfAddedFlightPlan }, flightPlan)); }
public ActionResult Post([FromBody] Server server) { if (!CheckObjects.CheckProperServer(server)) { return(BadRequest()); } string idOfAddedServer = serverManager.AddServer(server); if (idOfAddedServer == null) { return(NotFound(idOfAddedServer)); } return(Ok(idOfAddedServer)); }
// Function that returns FlightPlan according to the given id. public async Task <FlightPlan> GetFlightPlanById(string id) { // Take the line from FlightPlanSQL which the Id equals to id. object[] lineFlightPlanSQL = GetLineInformationFromSQLWithCommand( "SELECT * FROM FlightPlanSQL WHERE Id=\"" + id + "\""); // If this id is not exist then return null. Otherwise, set a FlightPlan. if (lineFlightPlanSQL != null) { return(SetFlightPlanByListObjects(lineFlightPlanSQL, id)); } List <Server> listOfExternalServers = GetExternalServers(); if (listOfExternalServers == null) { return(null); } int i = 0; for (; i < listOfExternalServers.Count; ++i) { mutexOfFlightsFromServer.WaitOne(); object[] idFlightFromExternalServer = GetLineInformationFromSQLWithCommand( "SELECT IdFlight FROM FlightsFromExternalServersSQL WHERE IdFlight=\"" + id + "\""); mutexOfFlightsFromServer.ReleaseMutex(); if (idFlightFromExternalServer == null) { continue; } string url = GetUrlWithoutSlashInTheEnd(listOfExternalServers[i].ServerURL); url += "/api/FlightPlan/" + id; FlightPlan flightPlanFromExternalServer = await GetGenericFromAnotherServer <FlightPlan>(url); if (!CheckObjects.CheckFlightPlan(flightPlanFromExternalServer)) { continue; } if (flightPlanFromExternalServer != null) { return(flightPlanFromExternalServer); } } return(null); }
// Adding flightPlan to our SQL tables, and returns the id. public string AddFlightPlan(FlightPlan flightPlan) { // Check if the givven flightplan is proper. if (!CheckObjects.CheckFlightPlan(flightPlan)) { return(null); } OpenConnection(); // Random id. string id = SetRandId(); bool succeedToAddToFlightPlanSQL, succeedToAddToSegmentSQL; bool succeedToAddToInitialLocationSQL; // Check if add to FlightPlanSQL table succeed. succeedToAddToFlightPlanSQL = AddToFlightPlanTable(flightPlan, id); if (!succeedToAddToFlightPlanSQL) { CloseConnection(); return(null); } // Check if add to InitialLocationSQL table succeed. succeedToAddToInitialLocationSQL = AddToInitialLocationTable(flightPlan, id); if (!succeedToAddToInitialLocationSQL) { CloseConnection(); return(null); } // Check if add to SegmentSQL table succeed. succeedToAddToSegmentSQL = AddListToSegmentTable(flightPlan.Segments, id); if (!succeedToAddToSegmentSQL) { CloseConnection(); return(null); } CloseConnection(); return(id); }
// Function that deletes and creates a table in the name of ServerId and // Updates the fields. private void CreateOrDeleteSQLFlightFromOtherServer(List <Flights> flightsFromOtherServer, string idOfServer) { mutexOfFlightsFromServer.WaitOne(); DeleteLineFromTable("DELETE FROM FlightsFromExternalServersSQL WHERE ServerId=\"" + idOfServer + "\""); if (flightsFromOtherServer == null) { mutexOfFlightsFromServer.ReleaseMutex(); return; } int i = 0; for (; i < flightsFromOtherServer.Count; ++i) { if (!CheckObjects.CheckFlights(flightsFromOtherServer[i])) { continue; } AddFlightIdToFlightsFromExternalServersSQL( flightsFromOtherServer[i].FlightId, idOfServer); } mutexOfFlightsFromServer.ReleaseMutex(); }