async Task <WrapperSimpleTypesDTO> AsignarCategoriaCandidato()
        {
            // Guardo la categoria que seleccione para guardar
            CategoriasCandidatosDTO categoriaCandidatoParaBorrar = new CategoriasCandidatosDTO
            {
                CodigoCandidato       = _persona.CandidatoDeLaPersona.Consecutivo,
                CodigoCategoria       = _categoriaSeleccionada.CodigoCategoria,
                PosicionCampo         = _categoriaSeleccionada.PosicionJugador,
                HabilidadesCandidatos = _habilidadesCandidato.Where(x => x.Habilidades.CodigoCategoria == _categoriaSeleccionada.CodigoCategoria).ToList()
            };

            WrapperSimpleTypesDTO wrapper = null;

            if (!EsRegistroCategoria)
            {
                // Jalo el codigo de categoria que estoy viendo, no la que estoy seleccionando
                categoriaCandidatoParaBorrar.Consecutivo = _categoriaParaVer.CodigoCategoriaPerfil;

                if (IsNotConnected)
                {
                    return(null);
                }
                wrapper = await _categoriaService.ModificarCategoriaCandidato(categoriaCandidatoParaBorrar);
            }
            else
            {
                if (IsNotConnected)
                {
                    return(null);
                }
                wrapper = await _categoriaService.CrearCategoriaCandidatos(categoriaCandidatoParaBorrar);
            }

            return(wrapper);
        }
        public async Task <JsonResult> CreateCandidateSkills(CategoriasCandidatosDTO category)
        {
            Result <WrapperSimpleTypesDTO> result = new Result <WrapperSimpleTypesDTO>();

            try
            {
                category.Categorias = null;
                category.HabilidadesCandidatos.ToList().ForEach(c => { c.Habilidades = null; c.Consecutivo = 0; c.CodigoCategoriaCandidato = 0; });
                CategoriasServices categoryService = new CategoriasServices();
                if (category.Consecutivo != 0)
                {
                    result.obj = await categoryService.ModificarCategoriaCandidato(category);
                }
                else
                {
                    result.obj = await categoryService.CrearCategoriaCandidatos(category);
                }
                if (result.obj == null)
                {
                    return(Json(Helper.returnErrorSaveObj(UserLoggedIn().PersonaDelUsuario.CodigoIdioma), JsonRequestBehavior.AllowGet));
                }

                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                return(Json(Helper.returnErrorSaveObj(UserLoggedIn().PersonaDelUsuario.CodigoIdioma), JsonRequestBehavior.AllowGet));
            }
        }
Пример #3
0
        public async Task <CategoriasCandidatosDTO> BuscarCategoriaCandidatoPorConsecutivoAndIdioma(CategoriasCandidatos categoriaCandidatoParaBuscar)
        {
            IQueryable <CategoriasCandidatos> queryCandidato = _context.CategoriasCandidatos.Where(x => x.Consecutivo == categoriaCandidatoParaBuscar.Consecutivo).AsQueryable();

            CategoriasCandidatosDTO categoriaCandidatoBuscada = await queryCandidato
                                                                .Select(x => new CategoriasCandidatosDTO
            {
                Consecutivo     = x.Consecutivo,
                CodigoCandidato = x.CodigoCandidato,
                CodigoCategoria = x.CodigoCategoria,
                PosicionCampo   = x.PosicionCampo,
                Categorias      = new CategoriasDTO
                {
                    Consecutivo              = x.Categorias.Consecutivo,
                    CodigoArchivo            = x.Categorias.CodigoArchivo,
                    DescripcionIdiomaBuscado = x.Categorias.CategoriasContenidos.Where(y => y.CodigoIdioma == categoriaCandidatoParaBuscar.CodigoIdiomaUsuarioBase).Select(y => y.Descripcion).FirstOrDefault(),
                    CategoriasContenidos     = x.Categorias.CategoriasContenidos.Where(y => y.CodigoIdioma == categoriaCandidatoParaBuscar.CodigoIdiomaUsuarioBase)
                                               .Select(z => new CategoriasContenidosDTO
                    {
                        Consecutivo  = z.Consecutivo,
                        Descripcion  = z.Descripcion,
                        CodigoIdioma = z.CodigoIdioma
                    }).ToList()
                }
            })
                                                                .AsNoTracking()
                                                                .FirstOrDefaultAsync();

            return(categoriaCandidatoBuscada);
        }
        void AdicionarCategoriaSeleccionadaEnEntidad(int consecutivoCreado = 0)
        {
            switch (_persona.TipoPerfil)
            {
            case TipoPerfil.Candidato:

                CategoriasCandidatosDTO categoriaCandidato = new CategoriasCandidatosDTO
                {
                    Consecutivo           = consecutivoCreado,
                    CodigoCategoria       = _categoriaSeleccionada.CodigoCategoria,
                    CodigoCandidato       = _persona.CandidatoDeLaPersona.Consecutivo,
                    PosicionCampo         = _categoriaSeleccionada.PosicionJugador,
                    HabilidadesCandidatos = _habilidadesCandidato.Where(x => x.Habilidades.CodigoCategoria == _categoriaSeleccionada.CodigoCategoria).ToList(),
                    Categorias            = new CategoriasDTO
                    {
                        CodigoArchivo = _categoriaSeleccionada.CodigoArchivo
                    }
                };

                _persona.CandidatoDeLaPersona.CategoriasCandidatos.Add(categoriaCandidato);

                break;

            case TipoPerfil.Grupo:

                CategoriasGruposDTO categoriaGrupo = new CategoriasGruposDTO
                {
                    Consecutivo     = consecutivoCreado,
                    CodigoCategoria = _categoriaSeleccionada.CodigoCategoria,
                    CodigoGrupo     = _persona.GrupoDeLaPersona.Consecutivo,
                    Categorias      = new CategoriasDTO
                    {
                        CodigoArchivo = _categoriaSeleccionada.CodigoArchivo
                    }
                };

                _persona.GrupoDeLaPersona.CategoriasGrupos.Add(categoriaGrupo);

                break;

            case TipoPerfil.Representante:

                CategoriasRepresentantesDTO categoriaRepresentante = new CategoriasRepresentantesDTO
                {
                    Consecutivo         = consecutivoCreado,
                    CodigoCategoria     = _categoriaSeleccionada.CodigoCategoria,
                    CodigoRepresentante = _persona.RepresentanteDeLaPersona.Consecutivo,
                    Categorias          = new CategoriasDTO
                    {
                        CodigoArchivo = _categoriaSeleccionada.CodigoArchivo
                    }
                };

                _persona.RepresentanteDeLaPersona.CategoriasRepresentantes.Add(categoriaRepresentante);

                break;
            }
        }
        public async Task <CategoriasCandidatosDTO> BuscarCategoriaCandidatoPorConsecutivoAndIdioma(CategoriasCandidatos categoriaCandidatoParaBuscar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                CategoriasRepository    categoriasRepo            = new CategoriasRepository(context);
                CategoriasCandidatosDTO categoriaCandidatoBuscada = await categoriasRepo.BuscarCategoriaCandidatoPorConsecutivoAndIdioma(categoriaCandidatoParaBuscar);

                return(categoriaCandidatoBuscada);
            }
        }
        async Task <WrapperSimpleTypesDTO> BorrarCategoriaCandidato()
        {
            CategoriasCandidatosDTO categoriaCandidatoParaBorrar = new CategoriasCandidatosDTO
            {
                Consecutivo = _categoriaParaVer.CodigoCategoriaPerfil
            };

            if (IsNotConnected)
            {
                return(null);
            }
            WrapperSimpleTypesDTO wrapper = await _categoriaService.EliminarCategoriaCandidato(categoriaCandidatoParaBorrar);

            return(wrapper);
        }
Пример #7
0
        public async Task <WrapperSimpleTypesDTO> EliminarCategoriaCandidato(CategoriasCandidatosDTO categoriaCandidatoParaBorrar)
        {
            if (categoriaCandidatoParaBorrar == null)
            {
                throw new ArgumentNullException("No puedes eliminar una categoriaCandidato si categoriaCandidatoParaBorrar es nula!.");
            }
            if (categoriaCandidatoParaBorrar.Consecutivo <= 0)
            {
                throw new ArgumentException("categoriaCandidatoParaBorrar vacio y/o invalido!.");
            }

            IHttpClient client = ConfigurarHttpClient();

            WrapperSimpleTypesDTO wrapperEliminarCategoriaCandidato = await client.PostAsync <CategoriasCandidatosDTO, WrapperSimpleTypesDTO>("Categorias/EliminarCategoriaCandidato", categoriaCandidatoParaBorrar);

            return(wrapperEliminarCategoriaCandidato);
        }
Пример #8
0
        public async Task <CategoriasCandidatosDTO> BuscarCategoriaCandidatoPorConsecutivoAndIdioma(CategoriasCandidatosDTO categoriaCandidatoParaBuscar)
        {
            if (categoriaCandidatoParaBuscar == null)
            {
                throw new ArgumentNullException("No puedes buscar una categoriaCandidato si categoriaCandidatoParaBuscar es nulo!.");
            }
            if (categoriaCandidatoParaBuscar.Consecutivo <= 0 || categoriaCandidatoParaBuscar.IdiomaBase == Idioma.SinIdioma)
            {
                throw new ArgumentException("categoriaCandidatoParaBuscar vacio y/o invalido!.");
            }

            IHttpClient client = ConfigurarHttpClient();

            CategoriasCandidatosDTO categoriaCandidatoBuscada = await client.PostAsync("Categorias/BuscarCategoriaCandidatoPorConsecutivoAndIdioma", categoriaCandidatoParaBuscar);

            return(categoriaCandidatoBuscada);
        }
Пример #9
0
        public async Task <IHttpActionResult> BuscarCategoriaCandidatoPorConsecutivoAndIdioma(CategoriasCandidatos categoriaCandidatoParaBuscar)
        {
            if (categoriaCandidatoParaBuscar == null || categoriaCandidatoParaBuscar.Consecutivo <= 0 || categoriaCandidatoParaBuscar.IdiomaBase == Idioma.SinIdioma)
            {
                return(BadRequest("categoriaAnuncioParaBuscar vacio y/o invalido!."));
            }

            try
            {
                CategoriasCandidatosDTO categoriaCandidatoBuscada = await _categoriasBusiness.BuscarCategoriaCandidatoPorConsecutivoAndIdioma(categoriaCandidatoParaBuscar);

                return(Ok(categoriaCandidatoBuscada));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Пример #10
0
        public async Task <WrapperSimpleTypesDTO> ModificarCategoriaCandidato(CategoriasCandidatosDTO categoriaCandidatoParaModificar)
        {
            if (categoriaCandidatoParaModificar == null || categoriaCandidatoParaModificar.HabilidadesCandidatos == null)
            {
                throw new ArgumentNullException("No puedes modificar una categoriaCandidato si categoriaCandidatoParaModificar es nula!.");
            }
            if (categoriaCandidatoParaModificar.Consecutivo <= 0 || categoriaCandidatoParaModificar.CodigoCategoria <= 0 || categoriaCandidatoParaModificar.CodigoCandidato <= 0 ||
                categoriaCandidatoParaModificar.HabilidadesCandidatos.Count <= 0 ||
                !categoriaCandidatoParaModificar.HabilidadesCandidatos.All(x => x.CodigoHabilidad > 0 && x.NumeroEstrellas >= 0 && x.NumeroEstrellas <= 5))
            {
                throw new ArgumentException("categoriaCandidatoParaModificar vacio y/o invalido!.");
            }

            IHttpClient client = ConfigurarHttpClient();

            WrapperSimpleTypesDTO wrapperModificarCategoriaCandidato = await client.PostAsync <CategoriasCandidatosDTO, WrapperSimpleTypesDTO>("Categorias/ModificarCategoriaCandidato", categoriaCandidatoParaModificar);

            return(wrapperModificarCategoriaCandidato);
        }
        public async Task <JsonResult> DeleteCandidateSkills(CategoriasCandidatosDTO category)
        {
            Result <WrapperSimpleTypesDTO> result = new Result <WrapperSimpleTypesDTO>();

            try
            {
                CategoriasServices categoryService = new CategoriasServices();
                result.obj = await categoryService.EliminarCategoriaCandidato(category);

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

                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                return(Json(Helper.returnErrorDelete(UserLoggedIn().PersonaDelUsuario.CodigoIdioma), JsonRequestBehavior.AllowGet));
            }
        }
Пример #12
0
        public async Task CategoriasServices_CrearCategoriaCandidatos_ShouldCreate()
        {
            CategoriasServices categoriaService = new CategoriasServices();

            CategoriasCandidatosDTO categoriaCandidato = new CategoriasCandidatosDTO
            {
                CodigoCandidato       = 5,
                CodigoCategoria       = 3,
                HabilidadesCandidatos = new List <HabilidadesCandidatosDTO>
                {
                    new HabilidadesCandidatosDTO {
                        CodigoHabilidad = 2, NumeroEstrellas = 3
                    }
                }
            };

            WrapperSimpleTypesDTO wrapper = await categoriaService.CrearCategoriaCandidatos(categoriaCandidato);

            Assert.IsNotNull(wrapper);
            Assert.IsTrue(wrapper.Exitoso);
        }
        void RemoverCategoriaParaVerDeEntidad()
        {
            switch (_persona.TipoPerfil)
            {
            case TipoPerfil.Candidato:
                CategoriasCandidatosDTO categoriaCandidato = _persona.CandidatoDeLaPersona.CategoriasCandidatos.Where(x => x.CodigoCategoria == _categoriaParaVer.CodigoCategoria).FirstOrDefault();
                _persona.CandidatoDeLaPersona.CategoriasCandidatos.Remove(categoriaCandidato);

                break;

            case TipoPerfil.Grupo:
                CategoriasGruposDTO categoriaGrupo = _persona.GrupoDeLaPersona.CategoriasGrupos.Where(x => x.CodigoCategoria == _categoriaParaVer.CodigoCategoria).FirstOrDefault();
                _persona.GrupoDeLaPersona.CategoriasGrupos.Remove(categoriaGrupo);

                break;

            case TipoPerfil.Representante:
                CategoriasRepresentantesDTO categoriaRepresentante = _persona.RepresentanteDeLaPersona.CategoriasRepresentantes.Where(x => x.CodigoCategoria == _categoriaParaVer.CodigoCategoria).FirstOrDefault();
                _persona.RepresentanteDeLaPersona.CategoriasRepresentantes.Remove(categoriaRepresentante);

                break;
            }
        }
Пример #14
0
        public async Task <List <CategoriasCandidatosDTO> > ListarCategoriasDeUnCandidatoPorIdioma(CategoriasCandidatosDTO categoriaCandidatoParaListar)
        {
            if (categoriaCandidatoParaListar == null)
            {
                throw new ArgumentNullException("No puedes buscar una categoriaCandidato si categoriaCandidatoParaListar es nulo!.");
            }
            if (categoriaCandidatoParaListar.CodigoCandidato <= 0 || categoriaCandidatoParaListar.IdiomaBase == Idioma.SinIdioma)
            {
                throw new ArgumentException("categoriaCandidatoParaListar vacio y/o invalido!.");
            }

            IHttpClient client = ConfigurarHttpClient();

            List <CategoriasCandidatosDTO> listaCategoriasCandidatos = await client.PostAsync <CategoriasCandidatosDTO, List <CategoriasCandidatosDTO> >("Categorias/ListarCategoriasDeUnCandidatoPorIdioma", categoriaCandidatoParaListar);

            return(listaCategoriasCandidatos);
        }
Пример #15
0
 public CategoriasModel(CategoriasCandidatosDTO categoriaCandidato)
     : this(categoriaCandidato.CodigoCategoria, categoriaCandidato.Consecutivo, categoriaCandidato.Categorias.CodigoArchivo, categoriaCandidato.Categorias.DescripcionIdiomaBuscado, categoriaCandidato.Categorias.UrlArchivo, categoriaCandidato.PosicionCampo)
 {
 }
        public override async void Init(object initData)
        {
            base.Init(initData);

            ControlPerfil control = initData as ControlPerfil;

            // La persona que estoy viendo, puede ser yo, otra persona o un primer registro
            _persona = control.PersonaParaVer;

            // La categoria que seleccione para ver, si es una nueva, el codigo de categoria es <= 0
            // Si es registro de categoria esto es nulo y no hay problema
            _categoriaParaVer = control.CategoriaSeleccionada;

            // Marco esa categoria como seleccionada
            // Si es registro de categoria esto es nulo y no hay problema
            _categoriaSeleccionada = control.CategoriaSeleccionada;

            // Si voy a registrar una nueva categoria, soy yo o es un nuevo registro
            if (EsMiPersonaYNoPrimerRegistro || EsPrimerRegistro)
            {
                CategoriasDTO categoria = new CategoriasDTO
                {
                    IdiomaBase = App.IdiomaPersona
                };

                try
                {
                    if (IsNotConnected)
                    {
                        return;
                    }
                    List <CategoriasModel> listaCategorias = CategoriasModel.CrearListaCategorias(await _categoriaService.ListarCategoriasPorIdioma(categoria));

                    // Filtro las categorias que ya estan agregadas y que no es la que seleccione, asi evito repetir categorias
                    listaCategorias = listaCategorias.Where(x => x.CodigoCategoria == _categoriaParaVer.CodigoCategoria || !control.CategoriasQueYaEstanAgregadas.Contains(x.CodigoCategoria)).ToList();

                    if (!EsRegistroCategoria || EsPrimerRegistroEdicionCategoria)
                    {
                        // Si no estoy registrando una categoria, selecciono la categoria que estoy editando
                        CategoriasModel categoriaModel = listaCategorias.Where(x => x.CodigoCategoria == _categoriaParaVer.CodigoCategoria).FirstOrDefault();

                        categoriaModel.EstaSeleccionado      = true;
                        categoriaModel.CodigoCategoriaPerfil = _categoriaParaVer.CodigoCategoriaPerfil;

                        listaCategorias.Remove(categoriaModel);
                        listaCategorias.Insert(0, categoriaModel);

                        categoriaModel.PosicionJugador = control.CategoriaSeleccionada.PosicionJugador;

                        _categoriaParaVer      = categoriaModel;
                        _categoriaSeleccionada = categoriaModel;
                    }

                    Categorias = new ObservableCollection <CategoriasModel>(listaCategorias);
                }
                catch (Exception)
                {
                    await CoreMethods.DisplayAlert(SportsGoResources.Error, SportsGoResources.ErrorListarDeportes, "OK");

                    return;
                }
            }
            else
            {
                // Si no soy yo o no es un primer registro, cargo la categoria que estoy viendo nada mas
                Categorias = new ObservableCollection <CategoriasModel> {
                    _categoriaParaVer
                };
            }

            // Si soy candidato, no estoy registrando una categoria y no es un primer registro,
            // Listo las habilidades del candidato, sin importar si soy yo u otra persona viendo mi perfil
            if (EsCandidato && !EsRegistroCategoria && !EsPrimerRegistro)
            {
                HabilidadesCandidatosDTO habilidadesCandidatoParaBuscar = new HabilidadesCandidatosDTO
                {
                    CodigoCategoriaCandidato = _categoriaParaVer.CodigoCategoriaPerfil,
                    IdiomaBase = App.IdiomaPersona
                };

                try
                {
                    if (IsNotConnected)
                    {
                        return;
                    }
                    HabilidadesCandidato = new ObservableRangeCollection <HabilidadesCandidatosDTO>(await _habilidadesService.ListarHabilidadesCandidatoPorCategoriaCandidatoAndIdioma(habilidadesCandidatoParaBuscar) ?? new List <HabilidadesCandidatosDTO>());
                }
                catch (Exception)
                {
                    await CoreMethods.DisplayAlert(SportsGoResources.Error, SportsGoResources.ErrorListarHabilidades, "OK");
                }
            }
            else if (EsCandidato && EsPrimerRegistroEdicionCategoria)
            {
                CategoriasCandidatosDTO categoriaParaVer = _persona.CandidatoDeLaPersona.CategoriasCandidatos.Where(x => x.CodigoCategoria == _categoriaParaVer.CodigoCategoria).FirstOrDefault();
                HabilidadesCandidato = new ObservableRangeCollection <HabilidadesCandidatosDTO>(categoriaParaVer.HabilidadesCandidatos);
            }
        }