Example #1
0
        protected override Clue MakeClueImpl([NotNull] ActivityModel input, Guid accountId)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            // TODO: Create clue specifying the type of entity it is and ID
            var clue = _factory.Create(EntityType.Files.Directory, input.Folder.Id.PrintIfAvailable(), accountId);

            // TODO: Populate clue data
            var data = clue.Data.EntityData;

            var vocab = new ExchangeSharedMailboxActivityVocabulary();

            data.Properties[vocab.From]   = input.Object.From.PrintIfAvailable();
            data.Properties[vocab.Sender] = input.Object.Sender.PrintIfAvailable();
            data.Properties[vocab.To]     = input.Object.DisplayTo.PrintIfAvailable();
            data.Properties[vocab.Cc]     = input.Object.DisplayCc.PrintIfAvailable();
//            data.Properties[vocab.Bcc] = input.Object.DisplayCc.PrintIfAvailable();
            data.Properties[vocab.ReplyTo]              = input.Object.ReplyTo.PrintIfAvailable();
            data.Properties[vocab.ReceivedBy]           = input.Object.ReceivedBy.PrintIfAvailable();
            data.Properties[vocab.ReceivedRepresenting] = input.Object.ReceivedRepresenting.PrintIfAvailable();
            data.Properties[vocab.IsRead]                     = input.Object.IsRead.PrintIfAvailable();
            data.Properties[vocab.InternetMessageId]          = input.Object.InternetMessageId.PrintIfAvailable();
            data.Properties[vocab.ConversationTopic]          = input.Object.ConversationTopic.PrintIfAvailable();
            data.Properties[vocab.IsDeliveryReceiptRequested] = input.Object.IsDeliveryReceiptRequested.PrintIfAvailable();
            data.Properties[vocab.IsResponseRequested]        = input.Object.IsResponseRequested.PrintIfAvailable();
            data.Properties[vocab.References]                 = input.Object.References.PrintIfAvailable();

            data.Name = input.Folder.DisplayName.PrintIfAvailable();

            clue.ValidationRuleSuppressions.AddRange(new[]
            {
                RuleConstants.METADATA_002_Uri_MustBeSet,
                RuleConstants.METADATA_003_Author_Name_MustBeSet,
                RuleConstants.METADATA_005_PreviewImage_RawData_MustBeSet
            });

            //since all clues need at least one edge
            //folder is connected to the provider itself
            _factory.CreateEntityRootReference(clue, EntityEdgeType.PartOf);
            return(clue);
        }
Example #2
0
 static ExchangeSharedMailboxVocabulary()
 {
     Mail                = new ExchangeSharedMailboxMailVocabulary();
     MailHeaders         = new ExchangeSharedMailboxMailHeadersVocabulary();
     ExtendedProperties  = new ExchangeSharedMailboxExtendedPropertiesVocabulary();
     EmailAddresss       = new ExchangeSharedMailboxEmailAddresssVocabulary();
     Contact             = new ExchangeSharedMailboxContactVocabulary();
     Item                = new ExchangeSharedMailboxItemVocabulary();
     Mailbox             = new ExchangeSharedMailboxMailboxVocabulary();
     Folder              = new ExchangeSharedMailboxFolderVocabulary();
     Note                = new ExchangeSharedMailboxNoteVocabulary();
     Appointment         = new ExchangeSharedMailboxAppointmentVocabulary();
     Task                = new ExchangeSharedMailboxTaskVocabulary();
     Post                = new ExchangeSharedMailboxPostVocabulary();
     Activity            = new ExchangeSharedMailboxActivityVocabulary();
     ChatConversation    = new ExchangeSharedMailboxChatConversationVocabulary();
     Document            = new ExchangeSharedMailboxDocumentVocabulary();
     MeetingCancellation = new ExchangeSharedMailboxMeetingCancellationVocabulary();
     MeetingMessage      = new ExchangeSharedMailboxMeetingMessageGenericVocabulary();
     MeetingRequest      = new ExchangeSharedMailboxMeetingRequestVocabulary();
     MeetingResponse     = new ExchangeSharedMailboxMeetingResponseVocabulary();
 }