public async Task <BaseResponse <MailgunMessage> > update(MailgunMessageRequest messageRequest) { var message = _mapper.Map <MailgunMessage>(messageRequest); MailgunMessage messageFound = null; var finalResponse = BaseResponseFactory <MailgunMessage> .CreateDefaultBaseResponse(); var filter = false; if (messageRequest.Token.NotEmpty()) { messageFound = await _context.MailgunMessages.FirstOrDefaultAsync(e => e.Token == messageRequest.Token); if (messageFound == null) { finalResponse.Errors.Add(new ApiError { description = "Token not found." }); } filter = true; } if (messageRequest.MessageId.NotEmpty()) { messageFound = await _context.MailgunMessages.FirstOrDefaultAsync(e => e.MessageId == messageRequest.MessageId); if (messageFound == null) { finalResponse.Errors.Add(new ApiError { description = "MessageId not found." }); } filter = true; } if (messageFound != null) { _context.Attach(messageFound).State = EntityState.Modified; await _context.SaveChangesAsync(); finalResponse.Data.Add(messageFound); } if (!filter) { finalResponse.Errors.Add(new ApiError { description = "inform either MessageId or Token to delete." }); } return(finalResponse); }