public void UavWasRejected(UAV uav) { var userConnections = activeConnections.Where(p => p.Value == uav.User.user_id).Select(p => p.Key); //(IHubCallerConnectionContext<dynamic>)userConnections.uavWasRejected(uav); Clients.Clients((IList<string>)userConnections).uavWasRejected(uav); //Clients.All.uavWasRejected(uav); }
public async Task<IHttpActionResult> PostUAV(UAV uAV) { if (!ModelState.IsValid) { return BadRequest(ModelState); } _db.UAVs.Add(uAV); await _db.SaveChangesAsync(); return CreatedAtRoute("DefaultApi", new { id = uAV.Id }, uAV); }
public async Task<IHttpActionResult> PostUAVWithConfig(UAV uav) { if (!ModelState.IsValid) { return BadRequest(ModelState); } uav.Configurations = new Configuration { Classification = "quadrotor", create_date = DateTime.Now, modified_date = DateTime.Now, Name = "autogen", NumberOfMotors = 4, }; uav.Schedules.Add(new Schedule { UAVId = uav.Id, create_date = DateTime.Now, modified_date = DateTime.Now, CurrentMission = null }); _db.UAVs.Add(uav); await _db.SaveChangesAsync(); return Ok(uav); }
public async Task<IHttpActionResult> PutUAV(int id, UAV uAV) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != uAV.Id) { return BadRequest(); } _db.Entry(uAV).State = System.Data.Entity.EntityState.Modified; try { await _db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UAVExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public async Task<IHttpActionResult> generateUAVs(int number) { Random num = new Random(); for (int i = 0; i < number; i++) { UAV uav = new UAV { Callsign = getName().ToUpper() + num.Next(1, 99), NumDeliveries = num.Next(1, 2000), Mileage = num.Next(1, 100), Id = i, create_date = DateTime.Now, modified_date = DateTime.Now, MaxAcceleration = 20, MaxVelocity = 20, MaxVerticalVelocity = 20, MinDeliveryAlt = 100, UpdateRate = 1000, CruiseAltitude = 400, isActive = true, }; uav.Schedules.Add(new Schedule { UAVId = uav.Id, create_date = DateTime.Now, modified_date = DateTime.Now, CurrentMission = null }); Configuration config = new Configuration { Classification = "Predator", create_date = DateTime.Now, modified_date = DateTime.Now, Name = "Default", NumberOfMotors = 4 }; var flights = new List<FlightState> { new FlightState { Longitude = -118.5288, Latitude = 34.2420, Altitude = 400, VelocityX = 0, VelocityY = 0, VelocityZ = 0, Yaw = 0, Roll = 0, Pitch = 0, YawRate = 0, RollRate = 0, PitchRate = 0, BatteryLevel = .99, UAVId = i }, }; flights.ForEach(f => { f.Timestamp = DateTime.Now; f.create_date = DateTime.Now; f.modified_date = DateTime.Now; }); DateTime dateValue = new DateTime(); dateValue = DateTime.Now; var randPoint = getDistance(); uav.Configurations = config; uav.FlightStates = flights; //uav.Schedules = sched; _db.UAVs.Add(uav); //db.Missions.Add(mission.First()); //db.Maintenances.Add(maintenances.First()); _db.Configurations.Add(config); //db.Schedules.Add(sched.First()); _db.FlightStates.Add(flights.First()); try { _db.SaveChanges(); } catch (DbUpdateException e) { Console.Write(e.Entries); } } var drones = from u in _db.UAVs.Include(u => u.FlightStates) select new { Id = u.Id, Mileage = u.Mileage, NumDeliveries = u.NumDeliveries, Callsign = u.Callsign, create_date = u.create_date, modified_date = u.modified_date, MaxVelocity = u.MaxVelocity, MaxAcceleration = u.MaxAcceleration, MaxVerticalVelocity = u.MaxVerticalVelocity, UpdateRate = u.UpdateRate, FlightState = u.FlightStates.OrderBy(fs => fs.Timestamp).FirstOrDefault(), EventLog = u.EventLogs }; return Ok(drones); }
public HttpResponseMessage AddUavAndAssign(UAV uav) { try { uav.estimated_workload = 0; _db.UAVs.Add(uav); var nextUserInQueue = _db.Users.FirstOrDefault(u => u.position_in_queue == 1); var users = _db.Users; if (nextUserInQueue != null) { nextUserInQueue.UAVs.Add(uav); uav.User = nextUserInQueue; foreach (var user in users.Where(user => user.user_id != nextUserInQueue.user_id && user.UserRole.role_type == "Flight Dispatcher")) { user.position_in_queue--; _db.Entry(user).State = System.Data.Entity.EntityState.Modified; } nextUserInQueue.position_in_queue = users.Count(); _db.Entry(nextUserInQueue).State = System.Data.Entity.EntityState.Modified; _db.Entry(uav).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); } else { return Request.CreateResponse(HttpStatusCode.Conflict); } } catch (Exception exception) { return Request.CreateResponse(HttpStatusCode.Conflict); } return Request.CreateResponse(HttpStatusCode.OK); //emit to user that uav has been tasked to them later via signalr }