public HttpResponseMessage getDrones()
    {
        var drones = DroneDTO.CreateFromQuery(db.drones);
        HttpResponseMessage res = Request.CreateResponse(HttpStatusCode.OK, drones);

        return(res);
    }
        public async Task <ActionResult <Pedido> > PostPedido(Pedido pedido)
        {
            pedido.DroneId          = null;
            pedido.DataHoraInclusao = DateTime.Now;

            DroneDTO droneDTO = await _pedidoService.DroneAtendePedido(pedido);

            if (droneDTO != null)
            {
                pedido.DroneId  = droneDTO.Drone.Id;
                pedido.Situacao = (int)EStatusPedido.DRONE_ASSOCIADO;

                var tempoPercorrerDistancia = (droneDTO.Distancia / droneDTO.Drone.Velocidade);
                var tempoCarregando         = droneDTO.Distancia / droneDTO.Drone.Perfomance;

                pedido.DataHoraFinalizacao = DateTime.Now.AddHours(tempoCarregando + tempoPercorrerDistancia);
            }
            else
            {
                pedido.Situacao            = (int)EStatusPedido.RECUSADO;
                pedido.DataHoraFinalizacao = DateTime.Now;
            }
            _context.Pedido.Add(pedido);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPedido", new { id = pedido.Id }, pedido));
        }
    public HttpResponseMessage getDrones(int id)
    {
        var drone = DroneDTO.CreateFromQuery(db.drones.Where(d => d.iddrone == id));
        HttpResponseMessage res = Request.CreateResponse(HttpStatusCode.OK, drone);

        return(res);
    }
Exemple #4
0
        public async Task Create(DroneDTO dto)
        {
            var entry = _mapper.Map <DroneDTO, Drone>(dto);

            _context.Drones.Add(entry);
            await _context.SaveChangesAsync();
        }
        public IHttpActionResult getById(string id)
        {
            logger.Debug("Fetching /drones/{0}", id);
            Drone target = droneMgr.getById(new Guid(id));

            if (null != target)
            {
                DroneDTO targetDTO = DTOFactory.DTOFactory.createDroneDTO(target);
                return(Ok(targetDTO));
            }
            else
            {
                return(NotFound());
            }
        }
Exemple #6
0
        public async Task Update(DroneDTO dto)
        {
            var entry = await _context.Drones
                        .SingleOrDefaultAsync(x => x.Id == dto.Id);

            if (entry == null)
            {
                return;
            }

            entry = _mapper.Map(dto, entry);

            _context.Drones.Update(entry);
            await _context.SaveChangesAsync();
        }
Exemple #7
0
        public static DroneDTO createDroneDTO(Drone droneObj)
        {
            DroneDTO result = new DroneDTO();

            result.id          = droneObj.id;
            result.sysid       = droneObj.connection.systemId.ToString();
            result.componentid = droneObj.connection.componentId.ToString();
            result.name        = droneObj.id.ToString();
            if (null != droneObj.connection)
            {
                result.port = droneObj.connection.portName();
                if (droneObj.connection.isOpen())
                {
                    result.state = DroneDTO.ConnectionState.CONNECTED;
                }
                else
                {
                    result.state = DroneDTO.ConnectionState.DISCONNECTED;
                }
            }
            result.heartbeat_data        = createHeartbeatDTO(droneObj.getHearbeat());
            result.sys_status_data       = createSystemStatusDTO(droneObj.getSystemStatus());
            result.sys_time_data         = createSystemTimeDTO(droneObj.getSystemTime());
            result.gps_raw_int           = createGpsRawIntDTO(droneObj.getGpsRawInt());
            result.raw_imu               = createRawImuDTO(droneObj.getRawImu());
            result.scaled_pressure       = createScaledPressureDTO(droneObj.getScaledPressure());
            result.attitude              = createAttitudeDTO(droneObj.getAttitude());
            result.global_position_int   = createGlobalPositionIntDTO(droneObj.getGlobalPositionInt());
            result.rc_channels_raw       = createRcChannelsRawDTO(droneObj.getRcChannelsRaw());
            result.server_output_raw     = createServoOutputRawDTO(droneObj.getServerOutputRaw());
            result.mission_current       = createMissionCurrentDTO(droneObj.getMissionCurrent());
            result.nav_controller_output = createNavControllerOutputDTO(droneObj.getNavControllerOutput());
            result.vfr_hud               = createVfrHudDTO(droneObj.getVfrHud());
            result.terrain_report        = createTerrainReportDTO(droneObj.getTerrainReport());
            result.scaled_imu_2          = createScaledImu2DTO(droneObj.getScaledImu2());
            result.power_status          = createPowerStatusDTO(droneObj.getPowerStatus());
            return(result);
        }
        public async Task <ActionResult <Pedido> > PostPedido(Pedido pedido)
        {
            pedido.DroneId          = null;
            pedido.DataHoraInclusao = DateTime.Now;

            DroneDTO droneDTO = await _pedidoService.DroneAtendePedido(pedido);

            if (droneDTO != null)
            {
                pedido.DroneId  = droneDTO.Drone.Id;
                pedido.Situacao = (int)EStatusPedido.DRONE_ASSOCIADO;

                var calculo = (droneDTO.Distancia / droneDTO.Drone.Velocidade);

                var pedidos = await _context.Pedido.ToListAsync();

                //Antes de colocar a data de finalizacao, verifica se o drone não tem outro pedido ainda nao finalizado
                //Caso tiver, considera a data de entrega a partir da data do pedido em aberto
                DateTime dataHoraEntrega = _pedidoService.BuscarDataEntregaPedidoAbertoDrone(pedidos, droneDTO.Drone.Id);

                pedido.DataHoraFinalizacao = dataHoraEntrega.AddHours(calculo);

                //Atualiza o drone com as novas capacidades de acordo com o pedido atendido
                _context.Entry(droneDTO.Drone).State = EntityState.Modified;
            }
            else
            {
                pedido.Situacao            = (int)EStatusPedido.RECUSADO;
                pedido.DataHoraFinalizacao = DateTime.Now;
            }

            _context.Pedido.Add(pedido);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPedido", new { id = pedido.Id }, pedido));
        }
Exemple #9
0
        public async Task <ActionResult <Drone> > PostDrone(DroneDTO droneDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (droneDTO.Autonomia <= 0 || droneDTO.Capacidade <= 0 || droneDTO.Carga <= 0 || droneDTO.Velocidade <= 0)
            {
                return(BadRequest("Valores inválidos para Autonomia, Capacidade, Carga e/ou Velocidade."));
            }

            Drone drone = new Drone()
            {
                Velocidade        = droneDTO.Velocidade,
                Autonomia         = droneDTO.Autonomia,
                AutonomiaRestante = droneDTO.Autonomia,
                Carga             = droneDTO.Carga,
                Capacidade        = droneDTO.Capacidade
            };

            bool result = await _droneService.Insert(drone);

            if (result)
            {
                DroneItinerario droneItinerario = new DroneItinerario();
                droneItinerario.DataHora    = System.DateTime.Now;
                droneItinerario.Drone       = drone;
                droneItinerario.DroneId     = drone.Id;
                droneItinerario.StatusDrone = EnumStatusDrone.Disponivel;

                await _droneItinerarioService.Insert(droneItinerario);
            }

            return(CreatedAtAction("GetDrone", new { id = drone.Id }, drone));
        }
        public async Task <ActionResult <Pedido> > PostPedido(Pedido pedido)
        {
            pedido.DroneId          = null;
            pedido.DataHoraInclusao = DateTime.Now;


            DroneDTO droneDTO = await _pedidoService.AtribuirPedidoDrone(pedido);


            if (droneDTO != null)
            {
                pedido.DroneId  = droneDTO.Drone.Id;
                pedido.Situacao = (int)EStatusPedido.DRONE_ASSOCIADO;
            }
            else
            {
                pedido.Situacao            = (int)EStatusPedido.RECUSADO;
                pedido.DataHoraFinalizacao = DateTime.Now;
            }
            _context.Pedido.Add(pedido);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPedido", new { id = pedido.Id }, pedido));
        }
Exemple #11
0
        public async Task <ActionResult> Update(DroneDTO dto)
        {
            await _service.Create(dto);

            return(Ok());
        }
 public void Delete(DroneDTO entity)
 {
     _dbContext.DroneDTOs.Remove(entity);
 }
 public void Save(DroneDTO entity)
 {
     _dbContext.DroneDTOs.Attach(entity);
 }
Exemple #14
0
 public async Task Update(DroneDTO dto)
 {
     await _repository.Update(dto);
 }
Exemple #15
0
 public async Task Create(DroneDTO dto)
 {
     await _repository.Create(dto);
 }