Пример #1
0
        //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);
            }
        }
Пример #2
0
        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);
            }
        }