public async Task <ActionResult <MessageDTO> > CreateMessageAsync(CreateMessageVM messageVM)
        {
            var createdMessage = await messageService
                                 .CreateAsync(mapper.Map <MessageDTO>(messageVM), GetCurrentUserId());

            return(CreatedAtAction(nameof(GetMessage), new { id = createdMessage.Id }, createdMessage));
        }
Beispiel #2
0
        public IHttpActionResult Send(CreateMessageVM message)
        {
            if (message == null)
            {
                return(BadRequest());
            }
            if (new UsersRepository().UserByEmail(message.EmailFrom) == null || new UsersRepository().UserByEmail(message.EmailTo) == null)
            {
                if (new UsersRepository().UserByUsername(message.EmailFrom) == null || new UsersRepository().UserByUsername(message.EmailTo) == null)
                {
                    return(BadRequest("User Couldn't be found"));
                }
            }
            if (message.MessageContent == null || message.MessageContent == "")
            {
                return(BadRequest("No Content to send."));
            }

            if (new UsersRepository().UserByEmail(message.EmailFrom) != null && new UsersRepository().UserByEmail(message.EmailTo) != null)
            {
                new MailRepository().Add(new Message {
                    Description = message.Description, MailContent = message.MessageContent, RecieverId = new UsersRepository().UserByEmail(message.EmailTo).Id, SenderId = new UsersRepository().UserByEmail(message.EmailFrom).Id
                });
            }
            else
            {
                new MailRepository().Add(new Message {
                    Description = message.Description, MailContent = message.MessageContent, RecieverId = new UsersRepository().UserByUsername(message.EmailTo).Id, SenderId = new UsersRepository().UserByUsername(message.EmailFrom).Id
                });
            }
            return(Ok());
        }
Beispiel #3
0
        public async Task <IActionResult> Create(CreateMessageVM vm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var currentUser = await _userManager.GetUserAsync(HttpContext.User);

            var recipient = await _db.Users.FirstOrDefaultAsync(x => x.UserName == vm.Recipient);

            if (currentUser == null || recipient == null)
            {
                return(BadRequest());
            }

            var message = _mapper.Map <Models.Message>(vm);

            message.Author = currentUser.UserName;

            await _db.Messages.AddAsync(message);

            await _db.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Post(CreateMessageVM model)
        {
            var message = await _messagesService.CreateAsync(model);

            await _hub.Clients.All.SendAsync("CreateOne", message);

            return(Ok(new { message.Id }));
        }
Beispiel #5
0
        public async Task <IActionResult> Create(string id)
        {
            var currentUser = await _userManager.GetUserAsync(HttpContext.User);

            var recipient = await _db.Users.FirstOrDefaultAsync(x => x.UserName == id);

            if (currentUser == null || recipient == null)
            {
                return(BadRequest());
            }

            var vm = new CreateMessageVM
            {
                Recipient = recipient.UserName,
            };

            return(View(vm));
        }
Beispiel #6
0
 private ActionResult ProcessImage(CreateMessageVM model, string viewName = null)
 {
     if (CheckMessageImage())
     {
         var imageUrl = UserImages.SaveMessageImage(Request.Files, User.UserID);
         if (!imageUrl.IsEmpty())
         {
             var value = ModelState["Description"].Value;
             image = HtmlControls.Image(imageUrl);
             ModelState["Description"].Value =
                 new ValueProviderResult(
                     new[] { model.Description + image },
                     value.AttemptedValue + image, null);
         }
     }
     if (viewName.IsEmpty())
     {
         return(View(model));
     }
     return(View(viewName, model));
 }
Beispiel #7
0
        public async Task <MessageVM> CreateAsync(CreateMessageVM model)
        {
            var message = new Message
            {
                UserId    = model.UserId,
                Text      = model.Text,
                CreatedAt = DateTime.Now,
                UserName  = model.UserName
            };

            await _db.Messages.AddAsync(message);

            await _db.SaveChangesAsync();

            return(new MessageVM
            {
                Id = message.Id,
                Text = message.Text,
                UserName = message.UserName,
                UserId = message.UserId,
                UpdatedAt = message.UpdatedAt,
                IsDeleted = message.IsDeleted
            });
        }