public async Task <MessageDataModel> AddAttachmentMessage(Message message, int groupId, string senderId) { var whoSent = await usersRepository.GetByIdAsync(senderId); if (whoSent == null) { throw new InvalidDataException( $"Failed to retrieve user with id {senderId} from database: no such user exists"); } var attachmentKind = await attachmentKindsRepository.GetById(message.AttachmentInfo.AttachmentKind); var attachment = await attachmentRepository.AddAsync( MessageAttachmentDataModel.Create(attachmentKind, message)); var model = MessageDataModel .Create(whoSent, groupId) .AsAttachment(attachment); var result = await messagesRepository.AddAsync(model); await unitOfWork.Commit(); await SetLastMessage(senderId, groupId, result.MessageID); return(result); }
public static MessageAttachment ToMessageAttachment(this MessageAttachmentDataModel value) { return(new MessageAttachment { AttachmentKind = value.AttachmentKind.Kind, ContentUrl = value.ContentUrl, AttachmentName = value.AttachmentName, ImageHeight = value.ImageHeight, ImageWidth = value.ImageWidth, FileSize = value.FileSize }); }
public static MessageDataModel AsAttachment(this MessageDataModel value, MessageAttachmentDataModel attachment) { value.AttachmentInfo = attachment; value.Type = MessageType.Attachment; return(value); }