public async Task <IActionResult> AddMessageAttachmentAsync(Guid messageId, IFormCollection model)
        {
            // TODO: Improve validation to validate both WebAPI and SignalR request models in the same place.
            var file = model?.Files?.FirstOrDefault();

            if (file == null || file.Length <= 0)
            {
                return(BadRequest("Attached file can not be empty"));
            }

            // TODO: Replace this helper by some NuGet or smth else.
            var extension           = AttachmentsUtils.GetExtensionFromMimeType(file.ContentType);
            var supportedExtensions = new[] { "jpg", "png", "mp4" };

            if (extension == null || !supportedExtensions.Contains(extension))
            {
                return(BadRequest($"Only {string.Join(", ", supportedExtensions)} formats are supported"));
            }

            using (var stream = file.OpenReadStream())
            {
                var request = new AddMessageAttachmentRequest(GetCurrentSaasUserId(), messageId, stream, extension, file.ContentType, file.Length);
                var result  = await _messageSocketService.AddMessageAttachmentAsync(request);

                return(Ok(result));
            }
        }
        public async Task <IActionResult> AddMessageAttachmentAsync(Guid messageId, IFormCollection model)
        {
            var userId = GetCurrentUserId();

            if (model?.Files == null)
            {
                return(BadRequest(new ErrorDto(ErrorCode.NotFound, "There is not photo")));
            }
            var file = model.Files.Count == 0 ? null : model.Files.First();

            if (file == null)
            {
                return(BadRequest(new ErrorDto(ErrorCode.NotFound, "There is no files in the request")));
            }
            var type = AttachmentsUtils.GetExtentionFromMimeType(file.ContentType);

            if (type != "jpg" && type != "png" && type != "mp4")
            {
                return(BadRequest(new Exception("Only jpg, png, mp4 formats are supported.")));
            }
            if (file.Length > 0)
            {
                using (var stream = file.OpenReadStream())
                {
                    await _messageService.AddMessageAttachmentAsync(new AddMessageAttachmentRequest(userId, messageId, stream, type, file.ContentType, file.Length));
                }
            }
            return(Ok());
        }