Esempio n. 1
0
        public Result <MessageDTO> Send(MessageDTO messageDTO)
        {
            var result = new Result();

            Message message = _mapper.Map <Message>(messageDTO);


            try
            {
                _messageRepository.Add(message);
                foreach (int i in messageDTO.Recipients)
                {
                    _messageRepository.AddRecipient(new MessageRecipient {
                        MessageId = message.Id, UserId = i, Status = 0
                    });
                }
                _messageRepository.SaveChanges();
                result.Success = true;
            }
            catch (Exception e)
            {
                result.Success = false;
                var error = new ErrorMessage("dbcontext", e.Message);
                result.Errors = new List <ErrorMessage>()
                {
                    error
                };
            }

            //messageDTO = _mapper.Map<MessageDTO>(message);  -- w ten sposób otrzymujemy obiekt zgodny ze stanem bazy danych, ale z Recipients==null;
            messageDTO.TimeModified = message.TimeModified;

            if (result.Success)
            {
                return(Result.Ok <MessageDTO>(messageDTO));
            }
            else
            {
                return(Result.Failure <MessageDTO>(result.Errors));
            }
        }