public async Task <ChatMessageResult> SendFile([FromBody] ChatMessageFileDto file) { var chatRoom = await _chatRoomRepository.GetAsync(file.chatRoomId); if (chatRoom == null) { var messageDto = new MessageDto() { account = file.account, chatRoomId = file.chatRoomId, message = "" }; await _chatMessageWriteCommand.CreateForEmptyRoomAsync(file.profileId, messageDto); return(await _chatMessageFileWriteCommand.CreateFile(file)); } return(await _chatMessageFileWriteCommand.CreateFile(file)); }
/// <summary> /// Функция создания сообщения /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <ChatMessageResult> CreateFile(ChatMessageFileDto file) { var user = await _userRepository.GetWithId(file.profileId); var userTo = await _userRepository.GetProfileForUserName(file.account); var message = new ChatMessage { ChatRoomId = file.chatRoomId, DateTime = DateTime.Now, Message = "", UserId = user.Id }; var fileBase64String = Convert.FromBase64String(file.fileBinary); var chatMessageFile = new ChatMessageFile { ChatMessageId = message.Id, FileBinary = fileBase64String, fileName = file.fileName }; await _chatMessageRepository.CreateAsync(message); await _chatMessageFileRepository.Create(chatMessageFile); await _domainContext.SaveChangesAsync(); return(new ChatMessageResult { DateTime = message.DateTime, fileId = chatMessageFile.Id, fileName = chatMessageFile.fileName, IsFile = true, Message = "", profileId = file.profileId, profileTo = userTo.ProfileId, }); }