public ActionResult Create(MessageCreateModel model)
        {
            bool   success = true;
            string html    = "";

            if (!ModelState.IsValid)
            {
                success = false;
            }
            else
            {
                MessageCreateDTO messageDTO     = Mapper.Map <MessageCreateModel, MessageCreateDTO>(model);
                ServiceMessage   serviceMessage = service.Create(messageDTO);

                if (!serviceMessage.Succeeded)
                {
                    foreach (string error in serviceMessage.Errors)
                    {
                        ModelState.AddModelError("", error);
                    }

                    success = false;
                }
            }

            if (!success)
            {
                html = RenderHelper.PartialView(this, "~/Views/Message/Create.cshtml", model);
            }

            return(Json(new { success = success, html = html }));
        }
        public async Task <ActionResult <MessageDTO> > MessageCreate(MessageCreateDTO messageCreateDto)
        {
            var username = User.GetUsername();

            if (username == messageCreateDto.ReceiverUsername.ToLower())
            {
                return(BadRequest("You cannot message yourself!"));
            }

            var sender = await _userRepository.GetUserByUsernameAsync(username);

            var receiver = await _userRepository.GetUserByUsernameAsync(messageCreateDto.ReceiverUsername);

            if (receiver == null)
            {
                return(NotFound());                  //if we dont have the receiver
            }
            var message = new Message
            {
                Sender           = sender,
                Receiver         = receiver,
                SenderUsername   = sender.UserName,
                ReceiverUsername = receiver.UserName,
                Content          = messageCreateDto.Content
            };

            _messageRepository.AddMessage(message);

            if (await _messageRepository.SaveAllAsync())
            {
                return(Ok(_mapper.Map <MessageDTO>(message)));
            }

            return(BadRequest("The message was not sent"));
        }
        public async Task <IActionResult> Createmessage(string senderId, MessageCreateDTO messageCreateDTO)
        {
            var a = User.FindFirst(ClaimTypes.NameIdentifier).Value;

            if (senderId != User.FindFirst(ClaimTypes.NameIdentifier).Value)
            {
                return(Unauthorized());
            }
            var receiver = await _unitofWork.PartnerFinder.GetUser(messageCreateDTO.ReceiverId);

            if (receiver == null)
            {
                return(BadRequest("receiver not found"));
            }
            var message = _mapper.Map <Message>(messageCreateDTO);

            _unitofWork.MessageRepository.Add(message);
            var result = await _unitofWork.Save();

            if (result == 0)
            {
                return(StatusCode(500, "saving probem"));
            }
            return(Ok());
        }
Esempio n. 4
0
        public async Task <IActionResult> PostUserMessages([FromBody] MessageCreateDTO request, string username, int latest = 0)
        {
            _memoryCache.Set(CacheFields.Latest, latest);
            await _messageRepository.AddMessage(request, username);

            //AverageMessages.IncTo(_userRepository.AverageMessagesPostedByUser());
            //TotalMessages.Inc();
            return(NoContent());
        }
Esempio n. 5
0
        public ServiceMessage Create(MessageCreateDTO messageDTO)
        {
            List <string> errors    = new List <string>();
            bool          succeeded = Validate(messageDTO, errors);

            if (succeeded)
            {
                try
                {
                    UserEntity userEntity = unitOfWork.Users.Get(messageDTO.SenderLogin);
                    if (userEntity != null)
                    {
                        TopicEntity topicEntity = unitOfWork.Topics.Get(messageDTO.TopicId);
                        if (topicEntity != null)
                        {
                            MessageEntity messageEntity = new MessageEntity
                            {
                                Text             = messageDTO.Text,
                                Sender           = userEntity,
                                Topic            = topicEntity,
                                DateCreated      = DateTime.Now,
                                DateLastModified = DateTime.Now
                            };
                            topicEntity.DateOfLastMessage = DateTime.Now;

                            unitOfWork.Messages.Add(messageEntity);
                            unitOfWork.Commit();
                        }
                        else
                        {
                            succeeded = false;
                            errors.Add("Topic was not found");
                        }
                    }
                    else
                    {
                        succeeded = false;
                        errors.Add("User was not found");
                    }
                }
                catch (Exception ex)
                {
                    ExceptionMessageBuilder.FillErrors(ex, errors);
                    succeeded = false;
                }
            }

            return(new ServiceMessage
            {
                Errors = errors,
                Succeeded = succeeded
            });
        }
Esempio n. 6
0
        private bool Validate(MessageCreateDTO messageDTO, ICollection <string> errors)
        {
            bool validated = true;

            if (String.IsNullOrEmpty(messageDTO.Text))
            {
                validated = false;
                errors.Add("Text cannot be empty");
            }
            if (String.IsNullOrEmpty(messageDTO.SenderLogin))
            {
                validated = false;
                errors.Add("Message must have an author");
            }

            return(validated);
        }
Esempio n. 7
0
        public ActionResult RegisterMessage([FromBody] MessageCreateDTO messageData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new
                {
                    Message = "La informacion de registro de skills de usuario invalidos.",
                    ErrorsCount = ModelState.ErrorCount,
                    Errors = ModelState.Select(x => x.Value.Errors)
                }));
            }

            var newMessage = this._mapper.Map <Message>(messageData);

            if (newMessage == null)
            {
                return(BadRequest(new { Error = "No se enviaron los datos esperados." }));
            }

            var tempMessage = this._appDBContext.Messages.Add(newMessage);

            this._appDBContext.SaveChanges();

            var messageModel = this._mapper.Map <MessageResponseDTO>(tempMessage.Entity);
            var userInfo     = this._appDBContext.Users.FirstOrDefault(x => x.Id == messageModel.FromUserId);

            if (userInfo != null)
            {
                messageModel.User = this._mapper.Map <UserResponseDTO>(userInfo);
            }

            return(Ok(new
            {
                Message = "Ok",
                Result = messageModel
            }));
        }
Esempio n. 8
0
        public MessageDTO CreateMessage(MessageCreateDTO newMessage, int senderID)
        {
            var user = _userMockRepository.GetUserByID(senderID);

            if (user == null)
            {
                throw new NotFoundException("User with passed ID is not found...");
            }

            Message entity = mapper.Map <Message>(newMessage);

            entity.SenderID = senderID;

            if (_messageRepository.CheckDidIBlockUser(senderID, entity.ReceiverID))
            {
                throw new BlockingException("You have blocked this user and you can not send him message.");
            }


            if (!_messageRepository.CheckDoIFollowUser(senderID, entity.ReceiverID))
            {
                throw new BlockingException("You are not following this user and you can not send him message.");
            }

            try
            {
                entity.IsSent = true;
                var message = _messageRepository.CreateMessage(entity);
                _messageRepository.SaveChanges();
                return(mapper.Map <MessageDTO>(message));
            }
            catch (Exception ex)
            {
                throw new ErrorOccurException(ex.Message);
            }
        }
 public Guid SendMessage(Guid session, Guid sendTo, MessageCreateDTO message)
 {
     throw new NotImplementedException();
 }