Example #1
0
        private void LoadFnL()
        {
            EnsureConfigurationIsLoaded();

            // Preferred way in Form and List
            var udt = new UserDefinedTableController();
            var ds  = udt.GetDataSet(ModuleId);

            DtDs               = DataSource.GetDataSource <DataTableDataSource>(valueCollectionProvider: ConfigurationProvider);
            DtDs.Source        = ds.Tables["Data"];
            DtDs.EntityIdField = "UserDefinedRowId";         // default column created by UDT
            DtDs.ContentType   = ContentType;

            // clean up column names if possible, remove spaces in the column-names
            for (var i = 0; i < DtDs.Source.Columns.Count; i++)
            {
                DtDs.Source.Columns[i].ColumnName = DtDs.Source.Columns[i].ColumnName
                                                    .Replace(" ", "");
            }

            // Set the title-field - either the configured one, or if missing, just the first column we find
            if (string.IsNullOrWhiteSpace(TitleField))
            {
                TitleField = DtDs.Source.Columns[1].ColumnName;
            }
            DtDs.TitleField = TitleField;
        }
        private DataTable LoadFnL()
        {
            // check if already loaded, if yes, return that
            if (_dtDs != null)
            {
                return(_dtDs);
            }

            // this parses the config-tokens, resulting in the values we will use in the code below
            EnsureConfigurationIsLoaded();

            // Preferred way in Form and List - use GetDataSet of ModuleId
            var udt = new UserDefinedTableController();
            var ds  = udt.GetDataSet(ModuleId);

            // now build a DataTableDataSource to pass on
            _dtDs               = DataSource.GetDataSource <DataTable>(configLookUp: ConfigurationProvider, parentLog: Log);
            _dtDs.Source        = ds.Tables["Data"];    // the data-table of FnL/UDT
            _dtDs.EntityIdField = "UserDefinedRowId";   // default column created by FnL/UDT
            _dtDs.ContentType   = ContentType;          // a type name what these items are called afterwards

            // clean up column names if possible, remove spaces in the column-names as this would cause trouble in Razor templates
            for (var i = 0; i < _dtDs.Source.Columns.Count; i++)
            {
                _dtDs.Source.Columns[i].ColumnName = _dtDs.Source.Columns[i].ColumnName
                                                     .Replace(" ", "");
            }

            // Set the title-field - either the configured one, or if missing, just the first column we find
            _dtDs.TitleField = string.IsNullOrWhiteSpace(TitleField)
                ? _dtDs.Source.Columns[1].ColumnName
                : TitleField;
            return(_dtDs);
        }
 public static void OnAction(Trigger trigger, int rowId, UserDefinedTableController udtC)
 {
     if (ActionIsTriggered(trigger, udtC.Settings))
     {
         var ds = udtC.GetRow(rowId, true, true);
         ds.Tables.Add(udtC.Context());
         HandleAction(trigger, ds, udtC);
     }
 }
 public static void OnAction(Trigger trigger, int rowId, UserDefinedTableController udtC)
 {
     if (ActionIsTriggered(trigger, udtC.Settings))
     {
         var ds = udtC.GetRow(rowId,true,true);
         ds.Tables.Add(udtC.Context());
         HandleAction(trigger, ds, udtC);
     }
 }
        static void HandleAction(Trigger trigger, DataSet data, UserDefinedTableController udtC)
        {
            var settings = udtC.Settings;
            var subject  = settings.TrackingSubject;
            var message  = settings.TrackingMessage;
            var from     = GetEmailAddressList(settings.TrackingEmailFrom, data);

            if (from.Split(';').Length > 1)
            {
                from = (from.Split(';')[0]);
            }
            var mailTo  = GetEmailAddressList(settings.TrackingEmailTo, data);
            var cc      = GetEmailAddressList(settings.TrackingEmailCc, data);
            var bcc     = GetEmailAddressList(settings.TrackingEmailBcc, data);
            var replyto = GetEmailAddressList(settings.TrackingEmailReplyTo, data);
            var script  = settings.TrackingScript;

            var triggerMessage = string.Empty;

            switch (trigger)
            {
            case Trigger.New:
                triggerMessage = settings.TrackingTextOnNew;
                break;

            case Trigger.Update:
                triggerMessage = settings.TrackingTextOnUpdate;
                break;

            case Trigger.Delete:
                triggerMessage = settings.TrackingTextOnDelete;
                break;
            }


            if (script == "[AUTO]")
            {
                script = "~/DesktopModules/UserDefinedTable/XslStyleSheets/Tracking/Auto.xsl";
            }
            else
            {
                script = Globals.GetPortalSettings().HomeDirectory + script;
            }
            subject =
                ((new TokenReplace()).ReplaceEnvironmentTokens(subject, data.Tables[DataSetTableName.Data].Rows[0]));

            SendMail(from, mailTo, cc, bcc, replyto, subject, data.GetXml(), message, triggerMessage, script);
        }
 string CalculateCurrentExpression()
 {
     var udt = new UserDefinedTableController(ModuleContext);
     int rowId;
     int.TryParse(HttpContext.Current.Request.QueryString[DataTableColumn.RowId], out rowId);
     var ds = udt.GetRow(rowId, true);
     DataRow currentrow;
     if (ds.Tables[DataSetTableName.Data].Rows.Count == 1)
     {
         currentrow = ds.Tables[DataSetTableName.Data].Rows[0];
     }
     else
     {
         currentrow = ds.Tables[DataSetTableName.Data].NewRow();
         ds.Tables[DataSetTableName.Data].Rows.Add(currentrow);
     }
     return currentrow[FieldTitle].ToString();
 }
        static void HandleAction(Trigger trigger, DataSet data, UserDefinedTableController udtC)
        {
            var settings = udtC.Settings;
            var subject = settings.TrackingSubject;
            var message = settings.TrackingMessage;
            var from = GetEmailAddressList(settings.TrackingEmailFrom, data);
            if (from.Split(';').Length > 1)
            {
                from = (from.Split(';')[0]);
            }
            var mailTo = GetEmailAddressList(settings.TrackingEmailTo, data);
            var cc = GetEmailAddressList(settings.TrackingEmailCc, data);
            var bcc = GetEmailAddressList(settings.TrackingEmailBcc, data);
            var replyto = GetEmailAddressList(settings.TrackingEmailReplyTo, data);
            var script = settings.TrackingScript;

            var triggerMessage = string.Empty;
            switch (trigger)
            {
                case Trigger.New:
                    triggerMessage = settings.TrackingTextOnNew;
                    break;
                case Trigger.Update:
                    triggerMessage = settings.TrackingTextOnUpdate;
                    break;
                case Trigger.Delete:
                    triggerMessage = settings.TrackingTextOnDelete;
                    break;
            }


            if (script == "[AUTO]")
            {
                script = "~/DesktopModules/UserDefinedTable/XslStyleSheets/Tracking/Auto.xsl";
            }
            else
            {
                script = Globals.GetPortalSettings().HomeDirectory + script;
            }
            subject =
                ((new TokenReplace()).ReplaceEnvironmentTokens(subject, data.Tables[DataSetTableName.Data].Rows[0]));

            SendMail(from, mailTo, cc, bcc, replyto, subject, data.GetXml(), message, triggerMessage, script);
        }
Example #8
0
        string CalculateCurrentExpression()
        {
            var udt = new UserDefinedTableController(ModuleContext);
            int rowId;

            int.TryParse(HttpContext.Current.Request.QueryString[DataTableColumn.RowId], out rowId);
            var     ds = udt.GetRow(rowId, true);
            DataRow currentrow;

            if (ds.Tables[DataSetTableName.Data].Rows.Count == 1)
            {
                currentrow = ds.Tables[DataSetTableName.Data].Rows[0];
            }
            else
            {
                currentrow = ds.Tables[DataSetTableName.Data].NewRow();
                ds.Tables[DataSetTableName.Data].Rows.Add(currentrow);
            }
            return(currentrow[FieldTitle].ToString());
        }