Exemplo n.º 1
0
        public int SalvarAnuncio(VagaModel vagaModel, int usuarioID, bool EhAdmin)
        {
            Usuario usuario = _uow.Usuarios.GetByID(usuarioID);

            if (!EhAdmin && usuario.vagas != null && usuario.vagas.Count(v => v.DataExpiracao > DateTime.Now) > 5) return -406;

            if (vagaModel == null || usuario == null) return -1;

            if (vagaModel.ID <= 0)
            {
                Vaga vaga = GetVagaFromVagaModel(vagaModel);

                vaga.DataCriacao = DateTime.Now;
                vaga.DataExpiracao = vaga.DataCriacao.AddDays(vagaModel.TempoExpiracao);
                vaga.Criador = usuario;

                if (!EhAdmin && usuario.vagas != null && usuario.vagas.Count > 0 &&
                    usuario.vagas.Any(v =>
                        v.Titulo == vaga.Titulo ||
                        v.DescricaoMarkdown == vaga.DescricaoMarkdown ||
                        v.Descricao == vaga.Descricao
                        ))
                {
                    return -2;
                }

                vaga = _uow.Vagas.Insert(vaga);
                _uow.Save();

                return vaga.ID;
            }
            else
            {
                Vaga vagaAntiga = _uow.Vagas.GetByID(vagaModel.ID);

                if (vagaAntiga.Criador.ID != usuario.ID && !EhAdmin) return -401;

                Vaga vaga = GetVagaFromVagaModel(vagaModel);

                vagaAntiga.Titulo = vaga.Titulo;
                vagaAntiga.Descricao = vaga.Descricao;
                vagaAntiga.DescricaoMarkdown = vaga.DescricaoMarkdown;

                vagaAntiga.ThumbnailUrl = vaga.ThumbnailUrl;
                vagaAntiga.HeaderImageUrl = vaga.HeaderImageUrl;
                vagaAntiga.PostItemImageUrl = vaga.PostItemImageUrl;

                vagaAntiga.DataCriacao = vaga.DataCriacao;
                vagaAntiga.DataExpiracao = DateTime.Now.AddDays(vagaModel.TempoExpiracao);

                vagaAntiga.TipoVaga = vaga.TipoVaga;

                _uow.Vagas.Update(vagaAntiga);
                _uow.Save();

                return vagaAntiga.ID;
            }
        }
Exemplo n.º 2
0
        private Vaga GetVagaFromVagaModel(VagaModel vagaModel)
        {
            if (vagaModel == null) return null;

            Vaga vaga = new Vaga();

            vagaModel.Titulo = HtmlRemoval.StripTagsRegex(vagaModel.Titulo);
            vagaModel.DescricaoMarkdown = HtmlRemoval.StripTagsRegex(vagaModel.DescricaoMarkdown);
            vagaModel.Descricao = HtmlRemoval.StripTagsRegex(vagaModel.Descricao);

            vagaModel.ThumbnailUrl = HtmlRemoval.StripTagsRegex(vagaModel.ThumbnailUrl);
            vagaModel.PostItemImageUrl = HtmlRemoval.StripTagsRegex(vagaModel.PostItemImageUrl);
            vagaModel.HeaderImageUrl = HtmlRemoval.StripTagsRegex(vagaModel.HeaderImageUrl);

            Uri uriResult;

            if (!(Uri.TryCreate(vagaModel.ThumbnailUrl, UriKind.Absolute, out uriResult) && uriResult.Scheme == Uri.UriSchemeHttp))
            {
                vagaModel.ThumbnailUrl = null;
            }

            if (!(Uri.TryCreate(vagaModel.PostItemImageUrl, UriKind.Absolute, out uriResult) && uriResult.Scheme == Uri.UriSchemeHttp))
            {
                vagaModel.PostItemImageUrl = null;
            }

            if (!(Uri.TryCreate(vagaModel.HeaderImageUrl, UriKind.Absolute, out uriResult) && uriResult.Scheme == Uri.UriSchemeHttp))
            {
                vagaModel.HeaderImageUrl = null;
            }

            vaga.Titulo = vagaModel.Titulo.Substring(0, vagaModel.Titulo.Length > 29 ? 29 : vagaModel.Titulo.Length);
            vaga.Descricao = vagaModel.Descricao.Substring(0, vagaModel.Descricao.Length > 79 ? 79 : vagaModel.Descricao.Length);
            vaga.DescricaoMarkdown = vagaModel.DescricaoMarkdown.Substring(0, vagaModel.DescricaoMarkdown.Length > 3999 ? 3999 : vagaModel.DescricaoMarkdown.Length);

            vaga.ThumbnailUrl = vagaModel.ThumbnailUrl;
            vaga.HeaderImageUrl = vagaModel.HeaderImageUrl;
            vaga.PostItemImageUrl = vagaModel.PostItemImageUrl;

            vaga.DataCriacao = vagaModel.DataCriacao;
            vaga.DataExpiracao = vagaModel.DataExpiracao;

            vaga.TipoVaga = _uow.TiposVaga.GetByID(vagaModel.TipoVagaID);

            return vaga;
        }
Exemplo n.º 3
0
        public VagaModel GetVagaModelByID(int id, int usuarioID = 0)
        {
            Vaga vaga = _uow.Vagas.GetByID(id);
            if (vaga == null) return null;

            VagaModel vagaModel = new VagaModel(vaga);

            Avaliacao avaliacaoUsuario = vaga.avaliacoes.FirstOrDefault(a => a.usuario.ID == usuarioID);

            if (avaliacaoUsuario != null)
            {
                vagaModel.Like = avaliacaoUsuario.Gostou;
            }
            else
            {
                vagaModel.Like = null;
            }

            return vagaModel;
        }