Ejemplo n.º 1
0
        public async Task <ActionResult> SendBinary([FromBody] SendBinaryRequest req,
                                                    [FromHeader] JwtBody jwt)
        {
            var group = await groupRepo.GetById(req.Title);

            if (group == null)
            {
                return(Json(new BaseResponse(false, "Group does not exist")));
            }

            var sendBinaryModel = new SendBinariesModel()
            {
                base64Data     = req.base64Data,
                senderLanguage = jwt.language,
                recipientIds   = group.membersList.Select(m => m.Id).ToList()
            };

            return(RedirectToAction("SendBinaries", "ChatController", new RouteValueDictionary
                                    (
                                        new
            {
                binariesModel = sendBinaryModel,
                jwtBody = jwt
            }
                                    )));
        }
Ejemplo n.º 2
0
        public async Task <JsonResult> SendBinaries([FromBody] SendBinariesModel binariesModel,
                                                    [FromHeader] JwtBody jwtBody)
        {
            // filter out users
            var recipients = await userRepository
                             .GetAll()
                             .Where(u => binariesModel.recipientIds.Contains(u.Id.ToString()))
                             .Where(u => CanSendToUser(jwtBody.id, u))
                             .ToListAsync();

            var sender = await userRepository.GetById(jwtBody.id);

            bool sent = await messagingService.SendBinaries(sender, recipients,
                                                            binariesModel.fileName, binariesModel.base64Data);

            return(Json(new BaseResponse(sent, sent ? null : "Not all users received message")));
        }