Exemplo n.º 1
0
 public Dynamic(string producer, DynamicMode mode, DynamicType dType, DynamicLocation location)
 {
     Producer = producer;
     Mode     = mode;
     DType    = dType;
     Location = location;
 }
Exemplo n.º 2
0
        private DataTable GetAddresses(System.Data.Common.DbTransaction tran, string AddressType, string WorkflowCode, string FromWorkflowStepCode, string ToWorkflowStepCode, string EntityID, string Comment, string UserName)
        {
            DataTable retVal = new DataTable();
            DataRow   row    = null;

            retVal.Columns.Add("To", typeof(string));
            retVal.Columns.Add("Address", typeof(string));
            retVal.Columns.Add("DisplayName", typeof(string));

            DynamicMode mode = DynamicMode.Static;

            switch (AddressType.ToLower())
            {
            case "to":
                mode = this.ToAddressType;
                break;

            case "cc":
                mode = this.CCAddressType;
                break;

            case "bcc":
                mode = this.BCCAddressType;
                break;

            case "from":
                mode = this.FromAddressType;
                break;
            }

            if (mode == DynamicMode.Static)
            {
                List <EmailAddress> emails = new List <EmailAddress>();



                switch (AddressType.ToLower())
                {
                case "to":
                    emails = this.ToAddresses;
                    break;

                case "cc":
                    emails = this.CCAddresses;
                    break;

                case "bcc":
                    emails = this.BCCAddresses;
                    break;

                case "from":
                    emails.Add(this.FromAddress);
                    break;
                }

                foreach (EmailAddress email in emails)
                {
                    row                = retVal.NewRow();
                    row["To"]          = DBNull.Value;
                    row["Address"]     = email.Address;
                    row["DisplayName"] = email.DisplayName;
                    retVal.Rows.Add(row);
                }
            }
            else
            {
                string DataCommandName               = null;
                string WorkflowCodeParameter         = null;
                string FromWorkflowStepCodeParameter = null;
                string ToWorkflowStepCodeParameter   = null;
                string EntityIDParameter             = null;
                string CommentParameter              = null;
                string UsernameParameter             = null;
                string ToField          = null;
                string AddressField     = null;
                string DisplayNameField = null;

                switch (AddressType.ToLower())
                {
                case "to":
                    DataCommandName               = this.ToAddressDataCommand;
                    WorkflowCodeParameter         = this.ToAddressWorkflowCodeParameter;
                    FromWorkflowStepCodeParameter = this.ToAddressFromWorkflowStepCodeParameter;
                    ToWorkflowStepCodeParameter   = this.ToAddressToWorkflowStepCodeParameter;
                    EntityIDParameter             = this.ToAddressEntityIDParameter;
                    CommentParameter              = this.ToAddressCommentParameter;
                    UsernameParameter             = this.ToAddressUsernameParameter;
                    ToField          = this.ToAddressField;
                    AddressField     = this.ToAddressField;
                    DisplayNameField = this.ToAddressDisplayNameField;
                    break;

                case "cc":
                    DataCommandName               = this.CCAddressDataCommand;
                    WorkflowCodeParameter         = this.CCAddressWorkflowCodeParameter;
                    FromWorkflowStepCodeParameter = this.CCAddressFromWorkflowStepCodeParameter;
                    ToWorkflowStepCodeParameter   = this.CCAddressToWorkflowStepCodeParameter;
                    EntityIDParameter             = this.CCAddressEntityIDParameter;
                    CommentParameter              = this.CCAddressCommentParameter;
                    UsernameParameter             = this.CCAddressUsernameParameter;
                    ToField          = this.CCToAddressField;
                    AddressField     = this.CCAddressField;
                    DisplayNameField = this.CCAddressDisplayNameField;
                    break;

                case "bcc":
                    DataCommandName               = this.BCCAddressDataCommand;
                    WorkflowCodeParameter         = this.BCCAddressWorkflowCodeParameter;
                    FromWorkflowStepCodeParameter = this.BCCAddressFromWorkflowStepCodeParameter;
                    ToWorkflowStepCodeParameter   = this.BCCAddressToWorkflowStepCodeParameter;
                    EntityIDParameter             = this.BCCAddressEntityIDParameter;
                    CommentParameter              = this.BCCAddressCommentParameter;
                    UsernameParameter             = this.BCCAddressUsernameParameter;
                    ToField          = this.BCCToAddressField;
                    AddressField     = this.BCCAddressField;
                    DisplayNameField = this.BCCAddressDisplayNameField;
                    break;

                case "from":
                    DataCommandName               = this.FromAddressDataCommand;
                    WorkflowCodeParameter         = this.FromAddressWorkflowCodeParameter;
                    FromWorkflowStepCodeParameter = this.FromAddressFromWorkflowStepCodeParameter;
                    ToWorkflowStepCodeParameter   = this.FromAddressToWorkflowStepCodeParameter;
                    EntityIDParameter             = this.FromAddressEntityIDParameter;
                    CommentParameter              = this.FromAddressCommentParameter;
                    UsernameParameter             = this.FromAddressUsernameParameter;
                    ToField          = this.FromToAddressField;
                    AddressField     = this.FromAddressField;
                    DisplayNameField = this.FromAddressDisplayNameField;
                    break;
                }

                DataTable data = GetData(tran, DataCommandName,
                                         WorkflowCode, FromWorkflowStepCode, ToWorkflowStepCode, EntityID, Comment, UserName,
                                         WorkflowCodeParameter,
                                         FromWorkflowStepCodeParameter,
                                         ToWorkflowStepCodeParameter,
                                         EntityIDParameter,
                                         CommentParameter,
                                         UsernameParameter);



                foreach (DataRow record in data.Rows)
                {
                    row                = retVal.NewRow();
                    row["To"]          = record[ToField];
                    row["Address"]     = record[AddressField];
                    row["DisplayName"] = record[DisplayNameField];

                    retVal.Rows.Add(row);
                }
            }

            return(retVal);
        }