Example #1
0
        public async Task <ActionResult <EmailDTO> > PostNew([FromBody] EmailSendDTO emailSend)
        {
            if (!loadHandlerEmail(Request))
            {
                return(null);
            }

            Guid guid = Guid.NewGuid();

            EmailMessage email = _handler.CrearEmail(guid, emailSend.Subject, emailSend.Body, emailSend.To, emailSend.Cc, emailSend.Bcc, emailSend.attachments);

            // Enviar correo
            if (_handler.Enviar(email))
            {
                // Recuperar el Email enviado para recuperar algunos datos.
                email = _handler.FindEmailWithGUID(guid.ToString());

                EmailLinkDTO emailLink = new EmailLinkDTO();
                emailLink.emailId           = email.Id.UniqueId;
                emailLink.empresasId        = emailSend.empresasId;
                emailLink.maquinesMatricula = emailSend.maquinesMatricula;
                emailLink.projectesId       = emailSend.projectesId;

                EmailDTO oEmail = _handler.ObtenerEmail(emailLink.emailId, true, true);
                //if (oEmail == null) return false;

                clsHandlerCorreu oHandlerCorreu = new clsHandlerCorreu(_context);
                Correu           oCorreu        = oHandlerCorreu.newCorreu(oEmail, emailLink);

                TryValidateModel(oCorreu);

                _context.Correus.Add(oCorreu);

                try
                {
                    await _context.SaveChangesAsync();

                    _handler.saveFileEmail(oEmail.emailId, oEmail.guid);
                }
                catch (Exception ex)
                {
                    string msg = ex.Message;
                }


                return(CreatedAtAction("GetEmaiId", new { id = email.Id.UniqueId }, oEmail));
            }
            else
            {
                return(NoContent());
            }
        }
Example #2
0
        public async Task <ActionResult <EmailDTO> > Put([FromQuery] int id, [FromBody] EmailLinkDTO emailLink)
        {
            if (!loadHandlerEmail(Request))
            {
                return(null);
            }

            Correu oCorreu = await _context.Correus
                             .Include(x => x.Empreses)
                             .Include(x => x.Maquines)
                             .Include(x => x.Projectes)
                             .FirstOrDefaultAsync(x => x.CorreuId == id);

            //.FindAsync(id);

            if (oCorreu == null)
            {
                return(NotFound());
            }
            //if (oCorreu.MissatgeId != oEmailLink.emailId) return BadRequest(); // TO DO Que comparas?

            clsHandlerCorreu oHandlerCorreu = new clsHandlerCorreu(_context);

            oHandlerCorreu.modCorreu(ref oCorreu, emailLink);

            _context.Entry(oCorreu).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CorreuExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #3
0
        public async Task <ActionResult <EmailDTO> > Delete([FromQuery] string id)
        {
            if (!loadHandlerEmail(Request))
            {
                return(null);
            }

            _handler.moveTrash(id);

            Correu correu = _context.Correus.FirstOrDefault(x => x.EmailId == id);

            if (correu != null)
            {
                _context.Correus.Remove(correu);
                await _context.SaveChangesAsync();

                clsHandlerCorreu oHandlerCorreu = new clsHandlerCorreu(_context);
                oHandlerCorreu.delCorreu(ref correu);
            }

            //if (email == null) return NotFound();

            return(Ok());
        }
Example #4
0
        public async Task <ActionResult <EmailDTO> > Post([FromQuery] string id, [FromBody] EmailLinkDTO emailLink)//, [FromBody] EmailDTO email)
        {
            if (!loadHandlerEmail(Request))
            {
                return(null);
            }

            if (id != emailLink.emailId)
            {
                return(BadRequest());
            }

            EmailDTO oEmail = _handler.ObtenerEmail(emailLink.emailId, true, true);
            //if (oEmail == null) return false;

            clsHandlerCorreu oHandlerCorreu = new clsHandlerCorreu(_context);
            Correu           oCorreu        = oHandlerCorreu.newCorreu(oEmail, emailLink);

            TryValidateModel(oCorreu);

            _context.Correus.Add(oCorreu);

            try
            {
                await _context.SaveChangesAsync();

                // TO DO Guardar el correo
                _handler.saveFileEmail(oEmail.emailId, oEmail.guid);
            }
            catch (Exception ex)
            {
                string msg = ex.Message;
            }

            return(CreatedAtAction("GetEmaiId", new { id = id }, oEmail)); //email);
        }