public static ClientData BuildFromDataLine(this ClientDataBuilder builder, string dataLine)
        {
            string[] fields = dataLine.Split(FieldSplitCharacter);

            PilotBuilder pilotBuilder = new PilotBuilder
            {
                Callsign         = fields[ClientFieldPositions["callsign"]],
                ClientID         = fields[ClientFieldPositions["cid"]].ToInt(),
                ClientType       = fields[ClientFieldPositions["clienttype"]],
                Frequency        = fields[ClientFieldPositions["frequency"]].ToDecimal(),
                LastAtisRecieved = fields[ClientFieldPositions["time_last_atis_received"]].ToDateTime(),
                LogOnTime        = fields[ClientFieldPositions["time_logon"]].ToDateTime(),
                Rating           = fields[ClientFieldPositions["rating"]],
                RealName         = fields[ClientFieldPositions["realname"]],
                Server           = fields[ClientFieldPositions["server"]]
            };

            builder.Pilot = pilotBuilder.Build();

            PositionBuilder positionBuilder = new PositionBuilder
            {
                AltimeterInHg = fields[ClientFieldPositions["QNH_iHg"]].ToDecimal(),
                AltimeterMb   = fields[ClientFieldPositions["QNH_Mb"]].ToInt(),
                Altitude      = fields[ClientFieldPositions["altitude"]].ToInt(),
                GroundSpeed   = fields[ClientFieldPositions["groundspeed"]].ToInt(),
                Heading       = fields[ClientFieldPositions["heading"]].ToInt(),
                Latitude      = fields[ClientFieldPositions["latitude"]].ToDecimal(),
                Longitude     = fields[ClientFieldPositions["longitude"]].ToDecimal(),
                Transponder   = fields[ClientFieldPositions["transponder"]].ToInt()
            };

            builder.Position = positionBuilder.Build();

            FlightPlanBuilder flightPlanBuilder = new FlightPlanBuilder
            {
                Aircraft           = fields[ClientFieldPositions["planned_aircraft"]],
                AlternativeAirport = fields[ClientFieldPositions["planned_altairport"]],
                Altitude           = fields[ClientFieldPositions["planned_altitude"]],
                ArrivalAirport     = fields[ClientFieldPositions["planned_destairport"]],
                CruiseSpeed        = fields[ClientFieldPositions["planned_tascruise"]].ToInt(),
                DepartureAirport   = fields[ClientFieldPositions["planned_depairport"]],
                DepartureTime      = fields[ClientFieldPositions["planned_deptime"]],
                FlightType         = fields[ClientFieldPositions["planned_flighttype"]],
                Remarks            = fields[ClientFieldPositions["planned_remarks"]],
                Route = fields[ClientFieldPositions["planned_route"]]
            };
            int enRouteHours = fields[ClientFieldPositions["planned_hrsenroute"]].ToInt();
            int enRouteMins  = fields[ClientFieldPositions["planned_minenroute"]].ToInt();

            flightPlanBuilder.EnRouteTime = new TimeSpan(enRouteHours, enRouteMins, 0);

            int enduranceHours = fields[ClientFieldPositions["planned_hrsfuel"]].ToInt();
            int enduranceMins  = fields[ClientFieldPositions["planned_minfuel"]].ToInt();

            flightPlanBuilder.FuelEndurance = new TimeSpan(enduranceHours, enduranceMins, 0);

            builder.FlightPlan = flightPlanBuilder.Build();

            return(new ClientData(builder));
        }
示例#2
0
 internal ClientData(ClientDataBuilder builder)
 {
     Pilot      = builder.Pilot;
     Position   = builder.Position;
     FlightPlan = builder.FlightPlan;
 }