public async Task <IActionResult> Index(String employeeId) { Edital lastEdital = _context.Editals.Last(); if (lastEdital == null) { return(View(new List <Application>())); } DateTime lastOpenDate = lastEdital.OpenDate; DateTime lastCloseDate = lastEdital.CloseDate; var applications = _context.Applications.Include(a => a.ApplicationStat) .Include(a => a.Employee).Include(a => a.Student).Include(a => a.BilateralProtocol1) .Include(a => a.BilateralProtocol2).Include(a => a.BilateralProtocol3) .Where(a => a.CreationDate >= lastOpenDate && a.CreationDate <= lastCloseDate); if (_context.Editals.Count() > 1) { Edital pendingEdital = _context.Editals.OrderByDescending(e => e.CloseDate).Skip(1).Take(1).FirstOrDefault(); DateTime pendingOpenDate = pendingEdital.OpenDate; DateTime pendingCloseDate = pendingEdital.CloseDate; var lastApplications = _context.Applications.Include(a => a.ApplicationStat) .Include(a => a.Employee).Include(a => a.Student).Include(a => a.BilateralProtocol1) .Include(a => a.BilateralProtocol2).Include(a => a.BilateralProtocol3) .Where(a => a.CreationDate >= pendingOpenDate && a.CreationDate <= pendingCloseDate); ViewData["lastApplications"] = lastApplications; } var interviews = _context.Interviews.Include(i => i.Application).ThenInclude(a => a.Student) .Include(i => i.Employee).Where(i => i.InterviewDate >= DateTime.Now) .OrderByDescending(i => i.InterviewDate); ViewData["Interviews"] = interviews; return(View(await applications.ToListAsync())); }
/// <summary> /// Publishes a News with the new seriation link so the users can access it. /// </summary> private void publishSeriationNews() { Edital latestEdital = _context.Editals.OrderByDescending(e => e.Id).FirstOrDefault(); string title = "Seriação " + latestEdital.CloseDate.Year; string content = "Encontra-se disponivel a seriação dos alunos respetiva do ultimo edital"; News news = new News() { EmployeeId = this.User.FindFirstValue(ClaimTypes.NameIdentifier), IsPublished = true, Title = title, TextContent = content }; Document urlDoc = new Document { EmployeeId = news.EmployeeId, Description = "Documento de " + news.Title, FileUrl = "Seriacoes", UploadDate = DateTime.Now }; _context.Add(urlDoc); news.Document = urlDoc; _context.Add(news); _context.SaveChanges(); }
//atualiza os dados do edital cadastrado public bool AtualizaEdital(Edital edital) { try{ //update edital set nome = ?, uf = ?, ativo = ? where id = ? _context.edital.Update(edital); _context.SaveChanges(); return(true); } catch (Exception ex) { return(false); } }
public static void Send(string nome, string email, Edital edital, string assunto, string titulo) { var message = new MimeMessage(); message.To.Add(new MailboxAddress(nome, email)); message.From.Add(new MailboxAddress("Central de Licitações", "*****@*****.**")); message.Subject = assunto; var mensagem = @$ " <article style='padding-top: 90px'> <h1 style='font-size: 2.1em;font-weight: 600;letter-spacing: 0.2em;line-height: 1.1em;margin: 0 0 0.6em 0; text-align: center'>CENTRAL DE LICITAÇÕES</h1> <p style='font-family: "Times New Roman", serif;line-height: 1.3em;margin: 0 0 1em 0'>Notificação</p>
public IActionResult CadastraEdital(Edital modelo) { if (!Dados.logado) { return(RedirectToAction("Index")); } ViewBag.logado = Dados.logado; if (ModelState.IsValid) { Dados.incluirEdital(modelo); return(RedirectToAction("Editais")); } return(View()); }
public ActionResult <string> PostEdital(Edital novoEdital) { bool resp; resp = _editalService.CadastrarEdital(novoEdital); if (resp) { return("Solicitação executada com sucesso!"); } else { return("Falha ao executar a solicitação!"); } }
/// <summary> /// Validates if a document with a link already exists in the database, if it exists will obtain that document and return it. /// Otherwise it will create a new document and return the new one. /// </summary> /// <param name="edital">Current edital.</param> /// <param name="link">Link to validate.</param> /// <returns>Valid document.</returns> private Document CreateAndValidateDocument(Edital edital, string link) { Document urlDoc = _context.Documents.Where(d => d.FileUrl.Equals(link)).FirstOrDefault(); if (urlDoc == null) { urlDoc = new Document { EmployeeId = edital.EmployeeId, Description = "Documento de " + edital.Title, FileUrl = link, UploadDate = DateTime.Now }; _context.Add(urlDoc); } return(urlDoc); }
//cadastra um novo edital na tabela public bool CadastrarEdital(Edital edital) { bool resp = true; try{ //insert into edital (nome, uf, ativo) values (?, ?, ?) _context.edital.Add(edital); //commita a instrução no banco de dados _context.SaveChanges(); } catch (Exception ex) { Console.WriteLine(ex); resp = false; } return(resp); }
public ActionResult <Edital> PutEdital(int id, Edital edital) { if (id != edital.id) { return(BadRequest()); } bool resp = _editalService.AtualizaEdital(edital); if (!resp) { return(NotFound()); } edital = _editalService.GetEdital(id); return(edital); }
public async Task <IActionResult> Create([Bind("OpenDate,CloseDate,Id,EmployeeId,Title,TextContent,IsPublished,DocumentId")] Edital edital, string link) { if (ModelState.IsValid) { if (!String.IsNullOrEmpty(link)) { edital.Document = CreateAndValidateDocument(edital, link); } //news.DocumentId = doc.DocumentId; _context.Add(edital); await _context.SaveChangesAsync(); EmailSender emailSender = new EmailSender(); List <string> emails = _context.Students.Select(s => s.Email).ToList(); emailSender.SendMultipleEmail(emails, "Edital Publicado", "Saudações a todos os estudantes, " + "encontra-se disponivel na plataforma o edital para as novas inscrições de Erasmus nas datas " + edital.OpenDate.ToShortDateString() + " e " + edital.CloseDate.ToShortDateString() + ". Obrigado, CIMOB"); return(RedirectToAction("Index", "News")); } return(View(edital)); }
public async Task <IActionResult> Edit(int id, [Bind("OpenDate,CloseDate,Id,EmployeeId,Title,TextContent,IsPublished,DocumentId")] Edital edital, string link) { if (id != edital.Id) { return(NotFound()); } var editalToUpdate = await _context.Editals.Include(n => n.Document).Include(n => n.Employee).SingleOrDefaultAsync(n => n.Id == id); editalToUpdate.Title = edital.Title; //If it's desired to change employee id to the one updating it //newsToUpdate.EmployeeId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); Document editedDoc = CreateAndValidateDocument(edital, link); editedDoc.EmployeeId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); editalToUpdate.Document = editedDoc; editalToUpdate.TextContent = edital.TextContent; if (ModelState.IsValid) { try { _context.Update(editalToUpdate); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EditalExists(editalToUpdate.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index", "News")); } return(View(editalToUpdate)); }
public static void EnviarEmailNotificacaoCadastroLicitacao(string nome, string email, string titulo, Edital edital) => NotificacaoCadastroLicitacao.Send(nome, email, titulo, edital);
public static void EnviarEmailNotificacaoAlteracaoEdital(string nome, string email, Edital edital, string assunto = "Alteração - Central de Licitação") => NotificacaoAlteracaoEdital.Send(nome, email, edital, assunto);
public static void EnviarEmailNotificacaoSobreEdital(string nome, string email, Edital edital, string assunto = "Notificação - Central de Licitação", string titulo = "Nova Licitação Aberta") => NotificacaoEdital.Send(nome, email, edital, assunto, titulo);