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; } }
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; }
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; }