/// <summary> /// Sets current user to email participant. /// </summary> protected virtual void SetCurrentPatricipant() { Guid userContactId = UserConnection.CurrentUser.ContactId; var senderContacts = GetContactsByEmails(UserConnection, new List <string> { SenderEmail }); bool addAsRecepient = !InsertedValues.ContainsKey(userContactId) && !IsEmailParticipantExistsByRoles(userContactId, ParticipantRoles); bool addAsSender = senderContacts.ContainsKey(userContactId) || (SenderEmail.IsEmpty() && addAsRecepient); if (addAsSender) { AddActivityParticipantToInsertedValues(userContactId, new Dictionary <string, object> { { "ReadMark", true }, { "RoleId", ParticipantRoles["From"] } }, true); } else if (addAsRecepient) { AddActivityParticipantToInsertedValues(userContactId, new Dictionary <string, object> { { "RoleId", ParticipantRoles["To"] } }, false); } }
/// <summary> /// Adds activity participant to inserted values. /// </summary> /// <param name="participantId">Participant uniqueidentifier.</param> /// <param name="participantParams">Participant parameters.</param> /// <param name="overrideExistingParticipant">Flag, true if it need to update activity participant.</param> protected virtual void AddActivityParticipantToInsertedValues(Guid participantId, Dictionary <string, object> participantParams, bool overrideExistingParticipant) { if (!IsEmailParticipantExistsByRoles(participantId, ParticipantRoles) && (overrideExistingParticipant || !InsertedValues.ContainsKey(participantId))) { InsertedValues[participantId] = participantParams; } }