예제 #1
0
        public ActionResult Test()
        {
            Exponent.WeatherAPI TheWeather = new Exponent.WeatherAPI();
            var Today = TheWeather.GetByLocation(25.2048, 55.2708);

            return(View(Today));
        }
        public async Task <bool> UpdateFlightSummary()
        {
            Exponent.WeatherAPI weather = new Exponent.WeatherAPI();
            var CurrentCondition        = weather.GetByLocation((Double)_FlightMapData.Latitude, (Double)_FlightMapData.Longitude);

            var flightInfo = new Models.FlightInfo {
                FlightID      = _FlightID,
                Condition     = CurrentCondition.Today.ConditionText,
                WindSpeed     = CurrentCondition.Today.WindSpeed.ToString(),
                Humidity      = CurrentCondition.Today.Humidity.ToString(),
                Visibility    = (Decimal)CurrentCondition.Today.Visibility,
                Pressure      = (Decimal)CurrentCondition.Today.Pressure,
                Temperature   = CurrentCondition.Today.Temperature.ToString(),
                Wind          = CurrentCondition.Today.WindDirection.ToString(),
                MaxAltiude    = (Decimal)AltitudeSummary.Max,
                MinAltitude   = (Decimal)AltitudeSummary.Min,
                AvgAltitude   = (Decimal)AltitudeSummary.Avg,
                MaxSatellites = (Decimal)SatelliteSummary.Max,
                MinSatellites = (Decimal)SatelliteSummary.Min,
                AvgSatellites = (Decimal)SatelliteSummary.Avg,
                MaxSpeed      = (Decimal)SpeedSummary.Max,
                MinSpeed      = (Decimal)SpeedSummary.Min,
                AvgSpeed      = (Decimal)SpeedSummary.Avg
            };

            using (FlightProcessorConnection cn = new Models.FlightProcessorConnection()) {
                cn.FlightInfo.Add(flightInfo);
                await cn.SaveChangesAsync();
            }

            return(true);
        }
예제 #3
0
    public async Task<ActionResult> FlightReport([Bind(Prefix = "ID")]int FlightID = 0) {
      // if (!exLogic.User.hasAccess("FLIGHT.MAP")) return RedirectToAction("NoAccess", "Home");
      ViewBag.FlightID = FlightID;

      var FlightData = await (
        from n in db.DroneFlight
        where n.ID == FlightID
        select new FlightViewModel {
          ID = n.ID,
          PilotID = n.PilotID,
          GSCID = n.GSCID,
          FlightDate = n.FlightDate,
          FlightHours = n.FlightHours,
          FlightDistance = n.FlightDistance,
          DroneID = n.DroneID,
          CreatedOn = n.CreatedOn,
          ApprovalID = n.ApprovalID
        }).FirstOrDefaultAsync();
      if (FlightData == null)
        return HttpNotFound();

      if (FlightData.FlightHours == null)
        FlightData.FlightHours = 0;
      FlightData.PilotName = await (
        from n in db.MSTR_User
        where n.UserId == FlightData.PilotID
        select n.FirstName + " " + n.LastName).FirstOrDefaultAsync();

      FlightData.GSCName = await (
        from n in db.MSTR_User
        where n.UserId == FlightData.GSCID
        select n.FirstName + " " + n.LastName).FirstOrDefaultAsync();

      FlightData.DroneName = await (
        from n in db.MSTR_Drone
        where n.DroneId == FlightData.DroneID
        select n.DroneName).FirstOrDefaultAsync();

      FlightData.PortalAlerts = await (
        from n in db.PortalAlerts
        where n.FlightID == FlightID
        select n).ToListAsync();


      var thisApproval =
        from n in db.GCA_Approval
        where n.ApprovalID == FlightData.ApprovalID
        select n;
      FlightData.Approval = await thisApproval.FirstOrDefaultAsync();

      //set Alert message for Report
      //setReportMessages(FlightData.PortalAlerts, FlightData.Approval);

      FlightData.MapData = await (
        from n in db.FlightMapDatas
        where n.FlightID == FlightID
        orderby n.FlightMapDataID
        select new LatLng{
          Lat = (Decimal)n.Latitude,
          Lng =(Decimal)n.Longitude
          }
        ).ToListAsync();

      FlightData.Videos = await (
        from n in db.DroneFlightVideos
        where n.FlightID == FlightID
        select n)
        .OrderBy(o => o.CreatedDate)
        .ToListAsync();


      FlightData.Approvals = await (
        from n in db.GCA_Approval
        where FlightData.FlightDate >= n.StartDate &&
              FlightData.FlightDate <= n.EndDate &&
              n.DroneID == FlightData.DroneID
        select n
      ).ToListAsync();

      FlightData.Info = await (
        from n in db.FlightInfoes
        where n.FlightID == FlightID
        select n).FirstOrDefaultAsync();
      if(FlightData.Info == null) {
        FlightData.Info = new Models.FlightInfo();
        LatLng FirstPoint = FlightData.MapData.FirstOrDefault();
        Exponent.WeatherAPI ReportWeather = new Exponent.WeatherAPI();      
        Exponent.WeatherForcast Condition = ReportWeather.GetByLocation((Double)FirstPoint.Lat, (Double)FirstPoint.Lng);
        FlightData.Info.Condition = Condition.Today.ConditionText;
        FlightData.Info.WindSpeed = Condition.Today.WindSpeed.ToString("0.0");
        FlightData.Info.Humidity = Condition.Today.Humidity.ToString("0");
        FlightData.Info.Visibility = (Decimal)Condition.Today.Visibility;
        FlightData.Info.Pressure = (Decimal)Condition.Today.Pressure;
        FlightData.Info.Temperature = Condition.Today.Temperature.ToString("0.0");
      }


      //Billing 
      int BillingGroupID = 1;
      BillingModule.BillingGroup grp = new BillingModule.BillingGroup(BillingGroupID);
      BillingModule.BillingNOC noc = new BillingModule.BillingNOC();
      Models.DroneFlight flight = await noc.LoadNocForFlight(FlightID);
      //await noc.GenerateFields();
      FlightData.Billing = await grp.GenerateBilling(noc, flight);


      return View(FlightData);
    }