public async Task <ActionResult <MessageFromPastSelf> > PostMessageFromPastSelf(
            MessageFromPastSelfDto messageFromPastSelfdto)
        {
            if (!EmailValidator.Validate(messageFromPastSelfdto.To) || messageFromPastSelfdto.Body.Length < 1)
            {
                return(BadRequest());
            }

            MessageFromPastSelf messageFromPastSelf = new MessageFromPastSelf
            {
                Body       = messageFromPastSelfdto.Body,
                IsBodyHtml = messageFromPastSelfdto.IsBodyHtml,
                Subject    = messageFromPastSelfdto.Subject,
                To         = messageFromPastSelfdto.To,
                when       = messageFromPastSelfdto.when
            };

            _context.messages.Add(messageFromPastSelf);
            await _context.SaveChangesAsync();

            var jobid = _mailService.scheduleEmail(messageFromPastSelf);

            messageFromPastSelf.jobid = jobid;
            return(CreatedAtAction("GetMessageFromPastSelf", new { id = messageFromPastSelf.Id }, messageFromPastSelf));
        }
        public async Task <IActionResult> PutMessageFromPastSelf(long id, MessageFromPastSelf messageFromPastSelf)
        {
            if (id != messageFromPastSelf.Id || !EmailValidator.Validate(messageFromPastSelf.To) || messageFromPastSelf.Body.Length < 1)
            {
                return(BadRequest());
            }
            var jobid = _mailService.updateEmail(messageFromPastSelf);

            messageFromPastSelf.jobid = jobid;
            _context.Entry(messageFromPastSelf).State = EntityState.Modified;

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

            return(NoContent());
        }