private void AssignShipmentToDrone(ShipmentInfo shipment, DroneInfo drone) { _logger.Log("Assignig shipment #{0} to drone {1}", shipment.Id, drone.Name); shipment.DroneId = drone.Id; _shipmentBll.UpdateShipment(shipment); _shipmentBll.AssignDroneToShipment(drone.Id, shipment.Id); }
public int AddShipment(ShipmentInfo shipment) { shipment.SourceAddress.Id = _addressBll.AddAddress(shipment.SourceAddress); shipment.DestinationAddress.Id = _addressBll.AddAddress(shipment.DestinationAddress); shipment.Id = _shipmentDal.AddShipment(shipment); return shipment.Id; }
public int AddShipment(ShipmentInfo shipment) { int id = 0; using (SqlDataReader rdr = SqlHelper.ExecuteReader(_connString, INSERT_SHIPMENT, shipment.SourceAddress.Id, shipment.DestinationAddress.Id, shipment.Weight, shipment.Status)) { if (rdr.Read()) id = Convert.ToInt32(rdr.GetDecimal(0)); } shipment.Id = id; return id; }
public ActionResult AddShipment( string sourceAddress, string sourceCity, string sourcePostalCode , string destinationAddress, string destinationCity, string destinationPostalCode , decimal weight) { var shipment = new ShipmentInfo { SourceAddress = new AddressInfo{Address1 = sourceAddress, City = sourceCity, ZipCode = sourcePostalCode}, DestinationAddress = new AddressInfo{Address1 = destinationAddress, City = destinationCity, ZipCode = destinationPostalCode}, Weight = weight }; var bll = new ShipmentBLL(); bll.AddShipment(shipment); return RedirectToAction("Index"); }
static void Main(string[] args) { ShipmentBLL shipBll = new ShipmentBLL(); DroneBLL droneBll = new DroneBLL(); ShipmentInfo shipment = new ShipmentInfo(); shipment.DestinationAddress = new AddressInfo(); shipment.DestinationAddress.Address1 = "335 Laird Road"; shipment.DestinationAddress.City = "Guelph"; shipment.DestinationAddress.Country = "Canada"; shipment.DestinationAddress.State = "Ontario"; shipment.DestinationAddress.ZipCode = "N1H 6J3"; shipment.DestinationAddress.Latitude = 43.50501M; shipment.DestinationAddress.Longitude = -80.26827M; shipment.Weight = 1M; shipment.Status = ShipmentStatus.AwaitingShipment; shipment.SourceAddress = new AddressInfo(); shipment.SourceAddress.Address1 = "8725 Yonge St"; shipment.SourceAddress.City = "Richmond Hill"; shipment.SourceAddress.Country = "Canada"; shipment.SourceAddress.State = "Ontario"; shipment.SourceAddress.ZipCode = "L4C 6Z1"; shipment.SourceAddress.Latitude = 43.84292M; shipment.SourceAddress.Longitude = -79.43053M; shipBll.AddShipment(shipment); DroneInfo drone = new DroneInfo(); drone.Latitude = 43.86071M; drone.Longitude = -79.37736M; drone.MaxWeight = 1000M; drone.Name = "DRONE 001"; drone.Status = DroneStatus.Available; droneBll.AddDrone(drone); shipBll.AssignDroneToShipment(drone.Id, shipment.Id); }
private DroneInfo GetNearestDrone(ShipmentInfo shipment) { _logger.Log("Getting the nearest drone"); var drones = GetAvailableDrones(shipment.Weight); if (!drones.Any()) { _logger.Log("No drone is available that can handle shipment's weight ({0})", shipment.Weight); return null; } double shortestDistance = double.MaxValue; DroneInfo candidDrone = null; foreach (var drone in drones) { double distance = _addressBll.GetDistanceKm( (double) shipment.SourceAddress.Latitude, (double) shipment.SourceAddress.Longitude, (double) drone.Latitude, (double) drone.Longitude); _logger.Log("Drone {0} distance: {1}km", drone.Name, distance); if (distance < shortestDistance) { _logger.Log("Drone {0} is a candidate", drone.Name); shortestDistance = distance; candidDrone = drone; } } _logger.Log("Drone {0} is the best choice", candidDrone.Name); return candidDrone; }
public void UpdateShipment(ShipmentInfo shipment) { _shipmentDal.UpdateShipment(shipment); _addressBll.UpdateAddress(shipment.SourceAddress); _addressBll.UpdateAddress(shipment.DestinationAddress); }
private ShipmentInfo FillFromReader(SqlDataReader rdr) { ShipmentInfo shipment = new ShipmentInfo(); shipment.Id = (int)rdr["Id"]; if (rdr["Status"] != DBNull.Value) { shipment.Status = (ShipmentStatus)((int)rdr["Status"]); } if (rdr["Weight"] != DBNull.Value) { shipment.Weight = (decimal)rdr["Weight"]; } int sourceAddressId = (int)rdr["SourceAddressId"]; shipment.SourceAddress = _addressDal.GetAddress(sourceAddressId); int destinationAddressId = (int)rdr["DestinationAddressId"]; shipment.DestinationAddress = _addressDal.GetAddress(destinationAddressId); if (rdr["DroneId"] != DBNull.Value) { shipment.DroneId = (int) rdr["DroneId"]; } return shipment; }
public void UpdateShipment(ShipmentInfo shipment) { SqlHelper.ExecuteNonQuery(_connString, UPDATE_SHIPMENT, shipment.Id, shipment.SourceAddress.Id, shipment.DestinationAddress.Id, shipment.Weight, shipment.Status, shipment.DroneId); }