/// <summary> /// Retorna a SessionID necessária para que a chamada ao serviço seja realizada. /// Consome as configurações previamente definidas. /// </summary> /// <param name="client">Instância do serviço a ser criada pelo método consumidor</param> /// <returns>SessionID gerada pelo serviço.</returns> public string GetSessionID(EfbServiceSoapClient client) { return(client.GetSessionID(Instance.PartnerUser, Instance.PartnerPassword, Instance.CustomerUser, Instance.CustomerPassword)); }
/// <summary> /// Recupera os dados do serviço proveniente. /// </summary> /// <returns></returns> private List <IntegracaoSoap> GetData() { using (var client = new EfbServiceSoapClient()) { var sessionId = Settings.Instance.GetSessionID(client); try { var dataInicial = new DateTime(2019, 1, 23); //DateTime.Now.AddDays(-1); var dataFinal = new DateTime(2019, 1, 24); //DateTime.Now; var dateChangedAfter = new DateTime(2019, 1, 23);; // DateTime.Now.AddDays(-1); var flights = client.GetFlightListSearch(sessionId, dataInicial, dataFinal, dateChangedAfter, null, false, null, null, null, null); var result = new List <IntegracaoSoap>(); foreach (var item in flights.Items) { var flight = client.GetFlight(sessionId, item.ID, false, false, false, false); var atcData = new StringBuilder(); atcData.AppendLine(flight.ATCData.ATCAcco); atcData.AppendLine(flight.ATCData.ATCAlt1); atcData.AppendLine(flight.ATCData.ATCAlt2); atcData.AppendLine(flight.ATCData.ATCCap); atcData.AppendLine(flight.ATCData.ATCColo); atcData.AppendLine(flight.ATCData.ATCCover); atcData.AppendLine(flight.ATCData.ATCCtot); atcData.AppendLine(flight.ATCData.ATCDep); atcData.AppendLine(flight.ATCData.ATCDest); atcData.AppendLine(flight.ATCData.ATCDing); atcData.AppendLine(flight.ATCData.ATCEET); atcData.AppendLine(flight.ATCData.ATCEndu); atcData.AppendLine(flight.ATCData.ATCEqui); atcData.AppendLine(flight.ATCData.ATCFL); atcData.AppendLine(flight.ATCData.ATCID); atcData.AppendLine(flight.ATCData.ATCInfo); atcData.AppendLine(flight.ATCData.ATCJack); atcData.AppendLine(flight.ATCData.ATCNum); atcData.AppendLine(flight.ATCData.ATCPers); atcData.AppendLine(flight.ATCData.ATCPIC); atcData.AppendLine(flight.ATCData.ATCRadi); atcData.AppendLine(flight.ATCData.ATCRem); atcData.AppendLine(flight.ATCData.ATCRoute); atcData.AppendLine(flight.ATCData.ATCRule); atcData.AppendLine(flight.ATCData.ATCSpeed); atcData.AppendLine(flight.ATCData.ATCSSR); atcData.AppendLine(flight.ATCData.ATCSurv); atcData.AppendLine(flight.ATCData.ATCTime); atcData.AppendLine(flight.ATCData.ATCTOA); atcData.AppendLine(flight.ATCData.ATCType); atcData.AppendLine(flight.ATCData.ATCWake); var routeString = new StringBuilder(); routeString.AppendLine(flight.RouteStrings.ToAlt1); routeString.AppendLine(flight.RouteStrings.ToAlt2); routeString.AppendLine(flight.RouteStrings.ToDest); var sidAlternatives = new StringBuilder(); if (flight.SIDAlternatives != null) { foreach (var sidItem in flight.SIDAlternatives) { sidAlternatives.AppendLine(sidItem.Distance + " / " + sidItem.ProcedureName + " / " + sidItem.RunwayName); } } var freeTexts = new StringBuilder(); if (flight.FreeTextItems != null) { foreach (var textItem in flight.FreeTextItems) { freeTexts.AppendLine(textItem.Numbering + " | " + textItem.Value); } } var messages = new StringBuilder(); if (flight.Messages != null) { foreach (var message in flight.Messages) { messages.AppendLine("From: " + message.SentFrom); List <string> recipients = new List <string>(); foreach (var recipient in message.Recipients) { recipients.Add(recipient.Recipient + "(" + recipient.RecipientType + ")"); } messages.AppendLine("Recipients: " + string.Join(",", recipients.ToArray())); messages.AppendLine("Subject: " + message.Subject); messages.AppendLine("Message: " + message.Text); messages.AppendLine("---------------------------------------------------------------------"); } } var crews = new List <string>(); if (flight.Crews != null) { foreach (var crew in flight.Crews) { crews.Add(crew.CrewName + "(" + crew.CrewType + ")"); } } var melItens = new StringBuilder(); if (flight.MelItems != null) { foreach (var melItem in flight.MelItems) { melItens.AppendLine("Identifier: " + melItem.Identifier); melItens.AppendLine("Limitations: " + melItem.Limitations); melItens.AppendLine("Remark: " + melItem.Remark); } } result.Add(new IntegracaoSoap { Toa = flight.TOA, ACFTAIL = flight.ACFTAIL, FlightLogID = flight.FlightLogID, Disp = flight.DISP, Dep = flight.DEP, Dest = flight.DEST, Alt1 = flight.ALT1, Alt2 = flight.ALT2, Toalt = flight.TOALT, STD = flight.STD, ETA = flight.ETA, PAX = flight.PAX, TrafficLoad = (double.Parse(flight.TrafficLoad) * Conversao_LBS_KGS), EmptyWeight = double.Parse(flight.EmptyWeight) * Conversao_LBS_KGS, ZFM = (double.Parse(flight.ZFM) * Conversao_LBS_KGS), TripFuel = flight.TripFuel * Conversao_LBS_KGS, DestTime = flight.DestTime, AltFuel = flight.AltFuel * Conversao_LBS_KGS, AltTime = flight.AltTime, Alt2Fuel = flight.Alt2Fuel * Conversao_LBS_KGS, Alt2Time = flight.Alt2Time, HoldFuel = flight.HoldFuel * Conversao_LBS_KGS, HoldTime = flight.HoldTime, FuelMin = double.Parse(flight.FUELMIN) * Conversao_LBS_KGS, TimeMin = flight.TIMEMIN, FuelExtra = double.Parse(flight.FUELEXTRA) * Conversao_LBS_KGS, TimeExtra = flight.TIMEEXTRA, FuelTaxi = flight.FUELTAXI, Fuel = flight.FUEL * Conversao_LBS_KGS, TotalDistance = flight.TotalDistance, ActTOW = flight.ActTOW * Conversao_LBS_KGS, MaxTOM = flight.MaxTOM * Conversao_LBS_KGS, Elw = flight.Elw * Conversao_LBS_KGS, MaxLM = flight.MaxLM * Conversao_LBS_KGS, FL = flight.Fl, GCD = flight.GCD, ESAD = flight.ESAD, WindComponent = flight.WindComponent, Climb = flight.Climb, Descend = flight.Descend, AddFuel = flight.AddFuel * Conversao_LBS_KGS, FinalReserveFuel = flight.FinalReserveFuel * Conversao_LBS_KGS, Crew = string.Join(",", crews.ToArray()), DESTSTDALT = flight.DESTSTDALT, TIMETAXI = flight.TIMETAXI, FUELLDG = double.Parse(flight.FUELLDG) * Conversao_LBS_KGS, TIMELDG = flight.TIMELDG, FUELBIAS = flight.FUELBIAS, SCHBLOCKTIME = flight.SCHBLOCKTIME, LastEditDate = flight.LastEditDate, RouteName = flight.RouteName, AltDist = flight.AltDist, FuelPolicy = flight.FuelPolicy, MaxZFM = double.Parse(flight.MaxZFM) * Conversao_LBS_KGS, FuelPL = flight.FuelPL, StepClimbProfile = flight.StepClimbProfile, ATCData = atcData.ToString(), RouteStrings = routeString.ToString(), SIDPlanned = flight.SIDPlanned == null ? null : flight.SIDPlanned.Distance + " / " + flight.SIDPlanned.ProcedureName + " / " + flight.SIDPlanned.RunwayName, SIDAlternatives = sidAlternatives.ToString(), FinalReserveMinutes = flight.FinalReserveMinutes, AddFuelMinutes = flight.AddFuelMinutes, FreeTextItems = freeTexts.ToString(), SidAndStarProcedures = flight.SidAndStarProcedures == null ? null : flight.SidAndStarProcedures.Sid.Name + " | " + flight.SidAndStarProcedures.Star.Name, Messages = messages.ToString(), FuelAltDef = flight.FuelAltDef, WeatherObsTime = flight.WeatherObsTime, WeatherPlanTime = flight.WeatherPlanTime, MelItems = melItens.ToString() }); } Log.WriteEntry(Settings.Instance.PrefixSuccessGetData + ": Os dados foram recuperados do serviço com sucesso. Concluido em " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"), EventLogEntryType.Information); return(result); } catch (Exception ex) { Log.WriteEntry(Settings.Instance.PrefixErrorMessageGetData + ": " + ex.Message, EventLogEntryType.Error); throw; } } }