public void Set(UscitaGAC uscita) { GetToken getToken = new GetToken(_client, _configuration, _memoryCache, _writeLog, _httpContext); var lstUscite = new List <UscitaGAC>() { uscita }; var requestManager = new HttpRequestManager <List <Response> >(_client, _memoryCache, _writeLog, _httpContext, _configuration); requestManager.Configure(); var jsonString = JsonConvert.SerializeObject(lstUscite); var content = new StringContent(jsonString); var uri = new Uri(_configuration.GetSection("UrlExternalApi").GetSection("GacApi").Value + Costanti.GacUscitaMezzo); var result = requestManager.PutAsync(uri, content, getToken.GeneraToken()).Result; }
public async Task <List <Mezzo> > Get(List <string> sedi, string genereMezzo = null, string codiceMezzo = null, List <MessaggioPosizione> posizioneFlotta = null) { var pinNodi = sedi.Select(s => new PinNodo(s, true)); var ListaCodiciComandi = new List <string>(); var ListaCodiciSedi = new List <string>(); var listaSediAlberate = _getAlberaturaUnitaOperative.ListaSediAlberata(); foreach (var figlio in listaSediAlberate.GetSottoAlbero(pinNodi)) { var codice = figlio.Codice; string codiceE = ""; codiceE = ListaCodiciSedi.Find(x => x.Equals(codice)); if (string.IsNullOrEmpty(codiceE)) { if (!ListaCodiciComandi.Contains(codice.Split('.')[0])) { ListaCodiciComandi.Add(codice.Split('.')[0]); } ListaCodiciSedi.Add(codice); } } var ListaPosizioneFlotta = new List <MessaggioPosizione>(); if (posizioneFlotta == null) { ListaPosizioneFlotta = _getPosizioneFlotta.Get(0).Result; } else { ListaPosizioneFlotta = posizioneFlotta; } var ListaAnagraficaMezzo = GetAnagraficaMezziByCodComando(ListaCodiciComandi).Result; var ListaMezzi = new List <Mezzo>(); #region LEGGO DA API ESTERNA GetToken getToken = new GetToken(_client, _configuration, _memoryCache, _writeLog, _httpContext); var token = getToken.GeneraToken(); var lstMezziDto = new List <MezzoDTO>(); try { Parallel.ForEach(sedi, sede => { var httpManager = new HttpRequestManager <List <MezzoDTO> >(_client, _memoryCache, _writeLog, _httpContext, _configuration); httpManager.Configure("Mezzi_" + sede); var lstSediQueryString = string.Join("&codiciSedi=", ListaCodiciSedi.Where(s => sede.Contains(s.Split(".")[0])).ToArray()); var url = new Uri($"{_configuration.GetSection("UrlExternalApi").GetSection("GacApi").Value}{Classi.Costanti.GacGetMezziUtilizzabili}?codiciSedi={lstSediQueryString}"); lock (lstMezziDto) lstMezziDto.AddRange(httpManager.GetAsync(url, token).Result); }); } catch (Exception e) { throw new Exception("Elenco dei mezzi non disponibile"); } #endregion LEGGO DA API ESTERNA //MAPPING ListaMezzi = lstMezziDto.Select(m => { //if (!mezzoFake.Equals("CMOB")) //{ var anagraficaMezzo = ListaAnagraficaMezzo.Find(x => x.Targa.Equals(m.Descrizione)); var mezzo = MapMezzo(anagraficaMezzo, m); if (mezzo != null) { //listaMezziBySedeAppo.Add(mezzo); ListaMezzi.Add(mezzo); } //} return(mezzo); }).ToList(); ListaMezzi = ListaMezzi.Select(mezzo => { var CoordinateMezzoGeoFleet = ListaPosizioneFlotta.Find(x => x.CodiceMezzo.Equals(mezzo.Codice)); if (CoordinateMezzoGeoFleet == null) { mezzo.Coordinate = mezzo.Distaccamento.Coordinate; mezzo.CoordinateFake = true; } else { mezzo.Coordinate = new Coordinate(CoordinateMezzoGeoFleet.Localizzazione.Lat, CoordinateMezzoGeoFleet.Localizzazione.Lon); mezzo.CoordinateFake = false; } return(mezzo); }).ToList(); return(GetListaMezziConStatoAggiornat(ListaMezzi)); }