public override void RunCommand(object sender)
        {
            var engine         = (IAutomationEngineInstance)sender;
            var vAccountName   = v_AccountName.ConvertUserVariableToString(engine);
            var vToRecipients  = v_ToRecipients.ConvertUserVariableToString(engine);
            var vCCRecipients  = v_CCRecipients.ConvertUserVariableToString(engine);
            var vBCCRecipients = v_BCCRecipients.ConvertUserVariableToString(engine);
            var vSubject       = v_Subject.ConvertUserVariableToString(engine);
            var vBody          = v_Body.ConvertUserVariableToString(engine);
            var vAttachments   = v_Attachments.ConvertUserVariableToString(engine);

            var toEmailList  = ServerEmailMethods.GetEmailList(vToRecipients);
            var ccEmailList  = ServerEmailMethods.GetEmailList(vCCRecipients);
            var bccEmailList = ServerEmailMethods.GetEmailList(vBCCRecipients);

            var emailMessage = new EmailMessage()
            {
                To      = toEmailList,
                CC      = ccEmailList,
                BCC     = bccEmailList,
                Subject = vSubject,
                Body    = vBody
            };

            if (string.IsNullOrEmpty(vToRecipients))
            {
                throw new NullReferenceException("To Recipient(s) cannot be empty");
            }

            var client = AuthMethods.GetAuthToken();

            ServerEmailMethods.SendServerEmail(client, emailMessage, vAttachments, vAccountName);
        }
        public async override Task RunCommand(object sender)
        {
            var engine       = (IAutomationEngineInstance)sender;
            var vAccountName = (string)await v_AccountName.EvaluateCode(engine);

            var vToRecipients = (List <string>) await v_ToRecipients.EvaluateCode(engine);

            var vSubject = (string)await v_Subject.EvaluateCode(engine);

            var vBody = (string)await v_Body.EvaluateCode(engine);

            var toEmailList = GetEmailList(vToRecipients);

            List <string> vCCRecipients = null;

            if (!string.IsNullOrEmpty(v_CCRecipients))
            {
                vCCRecipients = (List <string>) await v_CCRecipients.EvaluateCode(engine);
            }

            var ccEmailList = GetEmailList(vCCRecipients);

            List <string> vBCCRecipients = null;

            if (!string.IsNullOrEmpty(v_BCCRecipients))
            {
                vBCCRecipients = (List <string>) await v_BCCRecipients.EvaluateCode(engine);
            }

            var bccEmailList = GetEmailList(vBCCRecipients);

            var emailMessage = new EmailMessage()
            {
                To      = toEmailList,
                CC      = ccEmailList,
                BCC     = bccEmailList,
                Subject = vSubject,
                Body    = vBody
            };

            if (vToRecipients == null)
            {
                throw new NullReferenceException("To Recipient(s) cannot be empty");
            }

            List <string> vAttachments = null;

            if (!string.IsNullOrEmpty(v_Attachments))
            {
                vAttachments = (List <string>) await v_Attachments.EvaluateCode(engine);
            }

            var userInfo = ServerSessionVariableMethods.GetUserInfo(engine);

            ServerEmailMethods.SendServerEmail(userInfo, emailMessage, vAttachments, vAccountName);
        }