Example #1
0
        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);
        }