//En este metodo agarro las respuestas de todos los usuarios del grupo y agarro la intersección para después hacer la query de establecimientos sugeridos private PreferenciasDTO DeserializarPreferenciasDelUsuario(int id_grupo) { //EN CASO DE QUE SEA VERDADERO(todos respondieron) parseo las respuestas de los usuarios if (validarSiRespondieronTodosLosUsuariosDelGrupo(id_grupo)) { var respuestasUsuarios = context.RespuestasUsuariosGrupos.Where(x => x.IdGrupo == id_grupo) .Select(x => x.Respuestas).ToList(); PreferenciasDTO preferencias = new PreferenciasDTO { IdsBarrios = new List <int>(), IdsCaracteristicas = new List <int>(), IdsGastronomia = new List <int>(), Response = true }; foreach (var respuestas in respuestasUsuarios) { var respuestaDeserializada = JsonConvert.DeserializeObject <PreferenciasDTO>(respuestas); preferencias.IdsBarrios.AddRange(respuestaDeserializada.IdsBarrios); preferencias.IdsCaracteristicas.AddRange(respuestaDeserializada.IdsCaracteristicas); preferencias.IdsGastronomia.AddRange(respuestaDeserializada.IdsGastronomia); } return(preferencias); } else { PreferenciasDTO preferenciasResponse = new PreferenciasDTO { Response = false }; return(preferenciasResponse); } }
private PreferenciasDTO GetIntersecciones(int id_grupo) { //Agarro en una nueva lista las intersecciones de cada lista de preferencias. var listasDeserializadas = DeserializarPreferenciasDelUsuario(id_grupo); if (listasDeserializadas.Response) { var barrios = Utilities.GetElementosRepetidosDeUnaLista(DeserializarPreferenciasDelUsuario(id_grupo).IdsBarrios); var caracteristicas = Utilities.GetElementosRepetidosDeUnaLista(DeserializarPreferenciasDelUsuario(id_grupo).IdsCaracteristicas); var gastronomia = Utilities.GetElementosRepetidosDeUnaLista(DeserializarPreferenciasDelUsuario(id_grupo).IdsGastronomia); PreferenciasDTO preferencias = new PreferenciasDTO { IdsBarrios = barrios, IdsCaracteristicas = caracteristicas, IdsGastronomia = gastronomia, Response = true }; return(preferencias); } else { PreferenciasDTO preferenciasFlag = new PreferenciasDTO { Response = false }; return(preferenciasFlag); } }