示例#1
0
        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
     });
 }
示例#3
0
 public static MessageDataModel AsAttachment(this MessageDataModel value, MessageAttachmentDataModel attachment)
 {
     value.AttachmentInfo = attachment;
     value.Type           = MessageType.Attachment;
     return(value);
 }