/// <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;
     }
 }