Пример #1
0
        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()));
        }
Пример #2
0
        /// <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();
        }
Пример #3
0
 //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);
     }
 }
Пример #4
0
        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: &quot;Times New Roman&quot;, serif;line-height: 1.3em;margin: 0 0 1em 0'>Notificação</p>
Пример #5
0
 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());
 }
Пример #6
0
        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!");
            }
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        //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);
        }
Пример #9
0
        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);
        }
Пример #10
0
        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));
        }
Пример #11
0
        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));
        }
Пример #12
0
 public static void EnviarEmailNotificacaoCadastroLicitacao(string nome, string email, string titulo, Edital edital)
 => NotificacaoCadastroLicitacao.Send(nome, email, titulo, edital);
Пример #13
0
 public static void EnviarEmailNotificacaoAlteracaoEdital(string nome, string email, Edital edital, string assunto = "Alteração - Central de Licitação")
 => NotificacaoAlteracaoEdital.Send(nome, email, edital, assunto);
Пример #14
0
 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);