public async Task <WrapperSimpleTypesDTO> CrearGrupo(GruposDTO grupoParaCrear)
        {
            if (grupoParaCrear == null || grupoParaCrear.Personas == null || grupoParaCrear.Personas.Usuarios == null || grupoParaCrear.CategoriasGrupos == null)
            {
                throw new ArgumentNullException("No puedes crear un grupo si grupoParaCrear, la persona, las categorias o el usuario del grupo es nulo!.");
            }
            else if (string.IsNullOrWhiteSpace(grupoParaCrear.Personas.Nombres) || grupoParaCrear.Personas.CodigoPais <= 0 || grupoParaCrear.Personas.TipoPerfil == TipoPerfil.SinTipoPerfil ||
                     grupoParaCrear.Personas.CodigoIdioma <= 0 || string.IsNullOrWhiteSpace(grupoParaCrear.Personas.Telefono) || string.IsNullOrWhiteSpace(grupoParaCrear.Personas.CiudadResidencia))
            {
                throw new ArgumentException("Persona de grupoParaCrear vacio y/o invalido!.");
            }
            else if (string.IsNullOrWhiteSpace(grupoParaCrear.Personas.Usuarios.Usuario) || string.IsNullOrWhiteSpace(grupoParaCrear.Personas.Usuarios.Clave) ||
                     string.IsNullOrWhiteSpace(grupoParaCrear.Personas.Usuarios.Email))
            {
                throw new ArgumentException("Usuario de grupoParaCrear vacio y/o invalido!.");
            }
            else if (grupoParaCrear.CategoriasGrupos.Count <= 0 || !grupoParaCrear.CategoriasGrupos.All(x => x.CodigoCategoria > 0))
            {
                throw new ArgumentException("Categorias de grupoParaCrear vacio y/o invalido!.");
            }

            IHttpClient client = ConfigurarHttpClient();

            WrapperSimpleTypesDTO wrapperCrearGrupo = await client.PostAsync <GruposDTO, WrapperSimpleTypesDTO>("Grupos/CrearGrupo", grupoParaCrear);

            return(wrapperCrearGrupo);
        }
Exemple #2
0
        public async Task <List <int> > ListarCodigoCategoriasDeUnGrupo(int codigoPersona)
        {
            GruposDTO grupo = await _context.Grupos.Where(x => x.CodigoPersona == codigoPersona)
                              .Select(x => new GruposDTO
            {
                CategoriasGrupos = x.CategoriasGrupos.Where(z => z.CodigoGrupo == x.Consecutivo)
                                   .Select(z => new CategoriasGruposDTO
                {
                    CodigoCategoria = z.CodigoCategoria,
                }).ToList(),
            })
                              .FirstOrDefaultAsync();

            return(grupo.CategoriasGrupos.Select(x => x.CodigoCategoria).ToList());
        }
Exemple #3
0
        async Task <WrapperSimpleTypesDTO> CrearGrupo()
        {
            GruposDTO grupoParaCrear = Persona.GrupoDeLaPersona;

            grupoParaCrear.Personas = Persona;

            GruposServices gruposServices = new GruposServices();

            if (IsNotConnected)
            {
                return(null);
            }
            WrapperSimpleTypesDTO wrapper = await gruposServices.CrearGrupo(grupoParaCrear);

            return(wrapper);
        }
        public async Task <WrapperSimpleTypesDTO> ModificarInformacionGrupo(GruposDTO grupoParaModificar)
        {
            if (grupoParaModificar == null)
            {
                throw new ArgumentNullException("No puedes modificar un grupo si grupoParaModificar es nulo!.");
            }
            if (grupoParaModificar.Consecutivo <= 0)
            {
                throw new ArgumentException("grupoParaModificar vacio y/o invalido!.");
            }

            IHttpClient client = ConfigurarHttpClient();

            WrapperSimpleTypesDTO wrapperModificarGrupo = await client.PostAsync <GruposDTO, WrapperSimpleTypesDTO>("Grupos/ModificarInformacionGrupo", grupoParaModificar);

            return(wrapperModificarGrupo);
        }
        public async Task <GruposDTO> BuscarGrupoPorCodigoGrupo(GruposDTO grupoParaBuscar)
        {
            if (grupoParaBuscar == null)
            {
                throw new ArgumentNullException("No puedes buscar un grupo si grupoParaBuscar es nulo!.");
            }
            if (grupoParaBuscar.Consecutivo <= 0)
            {
                throw new ArgumentException("grupoParaBuscar vacio y/o invalido!.");
            }

            IHttpClient client = ConfigurarHttpClient();

            GruposDTO grupoBuscado = await client.PostAsync("Grupos/BuscarGrupoPorCodigoGrupo", grupoParaBuscar);

            return(grupoBuscado);
        }
        public IActionResult Post([FromBody] GruposDTO grupo)
        {
            var nuevoGrupo = _grupos.CrearGrupo(grupo);

            if (!ModelState.IsValid || grupo.usuarios.Length == 0)
            {
                return(BadRequest(ModelState));
            }
            else if (nuevoGrupo.Succes)
            {
                return(Created("api/grupos/", nuevoGrupo));
            }
            else
            {
                return(NotFound(nuevoGrupo));
            }
        }
        /*CUANDO CREO UN GRUPO, TENGO QUE INSERTAR EN LA TABLA estado_de_preferencias el id_grupo y
         *  cantidad_usuarios_por_grupo(contar la cantidad de usuarios que agrego)
         */

        public CrearGrupoResponseApi CrearGrupo(GruposDTO grupo)
        {
            var fechaString = DateTime.Today.ToString();
            //Guardo dentro de fechaSinHora la fec1ha con formato Dia-Mes-Año
            var fechaSinHora = fechaString.Split(' ').FirstOrDefault().Replace("/", "-");

            try
            {
                Grupos grupos = new Grupos()
                {
                    Nombre        = grupo.NombreDelGrupo,
                    Imagen        = grupo.Imagen,
                    FechaCreacion = fechaSinHora
                };

                context.Grupos.Add(grupos);

                var usuarios = grupo.usuarios.Select(x => new GruposUsuarios()
                {
                    IdUsuarios = x.IdUsuario,
                    IdGrupo    = grupos.IdGrupo,
                });

                context.GruposUsuarios.AddRange(usuarios);

                var cantidadDeUsuarios = grupo.usuarios.Count();

                EstadoDePreferencias estadoDePreferencias = new EstadoDePreferencias
                {
                    CantidadUsuariosPorGrupo = cantidadDeUsuarios,
                    IdGrupo = grupos.IdGrupo,
                    ContadorPreferenciasElegidas = 0,
                    ContadorDeVotos = 0
                };
                context.Add(estadoDePreferencias);

                context.SaveChanges();
                return(new CrearGrupoResponseApi(true, "Se guardo el grupo exitosamente"));
            }
            catch (Exception ex)
            {
                return(new CrearGrupoResponseApi(false, "Fallo al guardar los datos del grupo"));
            }
        }
        public async Task <JsonResult> UpdatePerson(PersonasDTO person)
        {
            Result <WrapperSimpleTypesDTO> result = new Result <WrapperSimpleTypesDTO>();

            try
            {
                switch (person.TipoPerfil)
                {
                case TipoPerfil.Candidato:
                    CandidatosDTO candidateToUpdate = new CandidatosDTO();
                    candidateToUpdate           = person.CandidatoDeLaPersona;
                    person.CandidatoDeLaPersona = null;
                    candidateToUpdate.Personas  = person;
                    return(await CreateCandidate(candidateToUpdate));

                case TipoPerfil.Grupo:
                    GruposDTO groupToUpdate = new GruposDTO();
                    groupToUpdate           = person.GrupoDeLaPersona;
                    person.GrupoDeLaPersona = null;
                    groupToUpdate.Personas  = person;
                    return(await CreateGroup(groupToUpdate));

                case TipoPerfil.Representante:
                    RepresentantesDTO agentToUpdate = new RepresentantesDTO();
                    agentToUpdate = person.RepresentanteDeLaPersona;
                    person.RepresentanteDeLaPersona = null;
                    agentToUpdate.Personas          = person;
                    return(await CreateAgent(agentToUpdate));

                default:
                    result.Success = false;
                    result.Message = "No es un perfíl válido";
                    return(Json(result, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception)
            {
                return(Json(Helper.returnErrorSaveObj(UserLoggedIn().PersonaDelUsuario.CodigoIdioma), JsonRequestBehavior.AllowGet));
            }
        }
 public BuscadorModel(GruposDTO grupo) : this(grupo.Personas, TipoBusqueda.Grupo)
 {
 }
        public async Task <JsonResult> CreateGroup(GruposDTO group)
        {
            Result <WrapperSimpleTypesDTO> result = new Result <WrapperSimpleTypesDTO>();

            try
            {
                string newEmail = group.Personas.Usuarios.Email;
                group.Personas.CodigoUsuario  = UserLoggedIn().Consecutivo;
                group.Personas.Usuarios       = UserLoggedIn();
                group.Personas.Usuarios.Email = newEmail;

                GruposServices       groupService   = new GruposServices();
                PersonasServices     personService  = new PersonasServices();
                AuthenticateServices usuarioService = new AuthenticateServices();
                if (group.Consecutivo != 0)
                {
                    group.CategoriasGrupos = null;
                    result.obj             = await personService.ModificarPersona(group.Personas); // Update person

                    if (result.obj != null)
                    {
                        result.obj = await groupService.ModificarInformacionGrupo(group); // Update group
                    }
                    if (result.obj != null)
                    {
                        result.obj = await usuarioService.ModificarEmailUsuario(group.Personas.Usuarios); // Update email user
                    }
                    if (result.obj != null)
                    {
                        UserLoggedIn().PersonaDelUsuario.IdiomaDeLaPersona = group.Personas.IdiomaDeLaPersona;
                    }
                }
                else
                {
                    group.CategoriasGrupos.ToList().ForEach(c => c.Categorias = null);
                    result.obj = await groupService.CrearGrupo(group); // Create a new group

                    if (result.obj != null)
                    {
                        AuthenticateServices service        = new AuthenticateServices();
                        UsuariosDTO          userToValidate = UserLoggedIn();
                        userToValidate.Personas       = null;
                        userToValidate.TiposPerfiles  = null;
                        userToValidate.PlanesUsuarios = null;
                        var userAgent = await service.VerificarUsuario(userToValidate);

                        if (userAgent != null)
                        {
                            setUserLogin(userAgent);
                        }
                    }
                }

                if (result.obj == null)
                {
                    return(Json(Helper.returnErrorSaveObj(UserLoggedIn().PersonaDelUsuario.CodigoIdioma), JsonRequestBehavior.AllowGet));
                }

                result.Message = "La información se ha guardado con éxito";
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                return(Json(Helper.returnErrorSaveObj(UserLoggedIn().PersonaDelUsuario.CodigoIdioma), JsonRequestBehavior.AllowGet));
            }
        }