protected override Task Validate()
        {
            if (!IsContinueButtonClicked())
            {
                //No need to validate for now
                return(Task.FromResult(0));
            }

            var templateList = GetControl <DropDownList>("DocuSignTemplate");

            if (ValidationManager.ValidateControlExistance(templateList))
            {
                ValidationManager.ValidateTemplateList(templateList);
            }

            var sourceConfigControl = GetControl <DropDownList>("DataSource");

            if (ValidationManager.ValidateControlExistance(sourceConfigControl))
            {
                if (DocuSignValidationUtils.AtLeastOneItemExists(sourceConfigControl))
                {
                    if (!DocuSignValidationUtils.ItemIsSelected(sourceConfigControl))
                    {
                        ValidationManager.SetError("Data source is not selected", sourceConfigControl);
                    }
                }
                else
                {
                    ValidationManager.SetError("No data source exists", sourceConfigControl);
                }
            }

            return(Task.FromResult(0));
        }
        protected override Task Validate()
        {
            ActivityUi activityUi = ConfigurationControls;

            if (activityUi == null)
            {
                ValidationManager.SetError(DocuSignValidationUtils.ControlsAreNotConfiguredErrorMessage);
                return(Task.FromResult(0));
            }

            if (!AtLeastOneNotificationIsSelected(activityUi))
            {
                ValidationManager.SetError("At least one notification option must be selected", activityUi.EnvelopeSignedOption);
            }

            if (!EnvelopeConditionIsSelected(activityUi))
            {
                ValidationManager.SetError("At least one envelope option must be selected", activityUi.TemplateRecipientOptionSelector);
            }

            if (RecipientIsRequired(activityUi))
            {
                if (DocuSignValidationUtils.ValueIsSet(activityUi.Recipient))
                {
                    ValidationManager.ValidateEmail(_configRepository, activityUi.Recipient, DocuSignValidationUtils.RecipientIsNotValidErrorMessage);
                }
                else
                {
                    ValidationManager.SetError(DocuSignValidationUtils.RecipientIsNotSpecifiedErrorMessage, activityUi.Recipient);
                }
            }

            if (TemplateIsRequired(activityUi))
            {
                ValidationManager.ValidateTemplateList(activityUi.TemplateList);
            }

            return(Task.FromResult(0));
        }