/// <summary>
        /// Updates the Executed On property of the <paramref name="ruleVerification"/> in the data-source
        /// </summary>
        /// <param name="session">
        /// The <see cref="ISession"/> instance used to update the contained <see cref="RuleVerification"/> instances on the data-source.
        /// </param>
        /// <param name="ruleVerification">
        /// The <see cref="RuleVerification"/> that is to be updated.
        /// </param>
        /// <returns>An awaitable <see cref="Task"/></returns>
        private async Task UpdateExecutedOn(ISession session, RuleVerification ruleVerification)
        {
            try
            {
                var clone = ruleVerification.Clone(false);

                var transactionContext = TransactionContextResolver.ResolveContext(ruleVerification);
                var transaction        = new ThingTransaction(transactionContext, clone);
                clone.ExecutedOn = DateTime.UtcNow;

                var operationContainer = transaction.FinalizeTransaction();
                await session.Write(operationContainer);
            }
            catch (Exception ex)
            {
                logger.Error(ex);
            }
        }
        /// <summary>
        /// Add an Rule Verification row view model to the list of <see cref="RuleVerification"/>
        /// </summary>
        /// <param name="ruleVerification">
        /// The <see cref="RuleVerification"/> that is to be added
        /// </param>
        private IRuleVerificationRowViewModel <RuleVerification> AddRuleVerificationRowViewModel(RuleVerification ruleVerification)
        {
            var userRuleVerification = ruleVerification as UserRuleVerification;

            if (userRuleVerification != null)
            {
                return(new UserRuleVerificationRowViewModel(userRuleVerification, this.Session, this));
            }
            var builtInRuleVerification = ruleVerification as BuiltInRuleVerification;

            if (builtInRuleVerification != null)
            {
                return(new BuiltInRuleVerificationRowViewModel(builtInRuleVerification, this.Session, this));
            }
            throw new Exception("No RuleVerification to return");
        }