示例#1
0
        private static void AddLockedByIcon(SimpleDataRow newRow, DataRow row)
        {
            var    lockedBy = (int?)row.Field <decimal?>(FieldName.LockedBy);
            string icon, toolTip;

            if (lockedBy == QPContext.CurrentUserId)
            {
                icon    = LockedByYouIcon;
                toolTip = SiteStrings.Tooltip_LockedByYou;
            }
            else if (lockedBy.HasValue)
            {
                icon = LockedNotByYouIcon;
                var lockerDisplayName = row.Field <string>(FieldName.LockerFirstName) + " " + row.Field <string>(FieldName.LockerLastName);
                toolTip = string.Format(SiteStrings.Tooltip_LockedByUser, lockerDisplayName);
            }
            else
            {
                icon    = EmptyIcon;
                toolTip = string.Empty;
            }

            newRow.Add(FieldName.LockedByIcon, icon);
            newRow.Add(FieldName.LockedByTooltip, toolTip);
        }
        }         // func ExecuteNoneResult

        /// <summary>Execute the command and return one row.</summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public IDataRow ExecuteSingleRow(object args)
        {
            var      first  = true;
            IDataRow result = null;

            foreach (var c in ExecuteResult(args, PpsDataTransactionExecuteBehavior.SingleRow))
            {
                if (first)
                {
                    using (var r = c.GetEnumerator())
                    {
                        if (r.MoveNext())
                        {
                            result = new SimpleDataRow(r.Current);
                        }
                    }
                    first = false;
                }
                else
                {
                    c.GetEnumerator()?.Dispose();
                }
            }
            return(result);
        }         // func ExecuteSingleRow
示例#3
0
        private static void AddInvisibleIcon(SimpleDataRow newRow, DataRow row)
        {
            var    visible = row.Field <bool?>(FieldName.Visible);
            string icon, toolTip;

            if (visible.HasValue && visible.Value)
            {
                icon    = EmptyIcon;
                toolTip = string.Empty;
            }
            else
            {
                icon    = IsInvisibleIcon;
                toolTip = ArticleStrings.IsInvisibleTooltip;
            }
            newRow.Add(FieldName.VisibleIcon, icon);
            newRow.Add(FieldName.VisibleTooltip, toolTip);
        }
示例#4
0
        private static void AddScheduledIcon(SimpleDataRow newRow, DataRow row)
        {
            var    scheduled = row.Field <bool?>(FieldName.Scheduled);
            string icon, toolTip;

            if (scheduled.HasValue && scheduled.Value)
            {
                icon    = IsScheduledIcon;
                toolTip = ArticleStrings.IsScheduledTooltip;
            }
            else
            {
                icon    = EmptyIcon;
                toolTip = string.Empty;
            }
            newRow.Add(FieldName.ScheduledIcon, icon);
            newRow.Add(FieldName.ScheduledTooltip, toolTip);
        }
示例#5
0
        public static SimpleDataRow ToSimpleDataRow(this DataRow dr)
        {
            var sr = new SimpleDataRow();
            var dt = dr?.Table;

            if (dt?.Columns.Count > 0)
            {
                sr = new SimpleDataRow();
                foreach (DataColumn dc in dt.Columns)
                {
                    var columnName  = dc.ColumnName;
                    var columnValue = dr[columnName];

                    sr.Add(columnName, columnValue);
                }
            }

            return(sr);
        }
示例#6
0
    public void UpdateDbClientVersion()
    {
        rowClientVersion = null;
        try
        {
            List <SimpleDataRow> rows = dbManager.QueryGeneric("select create_type, create_time from client_cleate_type_master").rows;

            if (rows.Count == 0)
            {
                return;
            }

            rowClientVersion = rows[0];
        }
        catch (Exception e)
        {
            Debug.Log("Sqlite3: Exception: " + e.ToString());
            return;
        }
    }
示例#7
0
        internal static IEnumerable <SimpleDataRow> GetResult(List <DataRow> rows, List <Field> fieldList, bool?onlyIds)
        {
            var articleIds = rows.Select(x => (int)x.Field <decimal>(FieldName.ContentItemId)).ToList();

            if (onlyIds.HasValue && onlyIds.Value)
            {
                foreach (var id in articleIds)
                {
                    var dr = new SimpleDataRow {
                        { FieldName.ContentItemId, (decimal)id }
                    };
                    yield return(dr);
                }
            }
            else
            {
                var m2MFieldValues = new Dictionary <string, List <string> >();
                var m2OFieldValues = new Dictionary <string, List <string> >();
                var m2OFields      = fieldList.Where(x => x.ExactType == FieldExactTypes.M2ORelation && x.ViewInList).ToList();
                var m2MFields      = fieldList.Where(x => x.ExactType == FieldExactTypes.M2MRelation && x.ViewInList).ToList();

                foreach (var field in m2OFields)
                {
                    var m2ODisplayFieldName = ArticleService.GetTitleName(field.BackRelation.ContentId);
                    var m2OValues           = ArticleService.GetM2OValuesBatch(articleIds, field.BackRelation.ContentId, field.Id, field.BackRelation.Name, m2ODisplayFieldName);
                    foreach (var val in m2OValues)
                    {
                        m2OFieldValues.Add(val.Key, val.Value);
                    }
                }

                foreach (var field in m2MFields)
                {
                    // ReSharper disable once PossibleInvalidOperationException
                    var m2MDisplayFieldName = ArticleService.GetTitleName(field.RelateToContentId.Value);

                    // ReSharper disable once PossibleInvalidOperationException
                    var m2MValues = ArticleService.GetM2MValuesBatch(articleIds, field.LinkId.Value, m2MDisplayFieldName, field.RelateToContentId.Value);
                    foreach (var val in m2MValues)
                    {
                        m2MFieldValues.Add(val.Key, val.Value);
                    }
                }

                var resultValues = m2MFieldValues.Union(m2OFieldValues).ToDictionary(k => k.Key, v => v.Value);

                foreach (var row in rows)
                {
                    var dr = new SimpleDataRow();
                    CopyValue(dr, row, FieldName.ContentItemId);
                    CopyValue(dr, row, FieldName.StatusTypeName);
                    CopyValue(dr, row, "STATUS_TYPE_COLOR");
                    CopyValue(dr, row, FieldName.ModifierLogin);

                    dr.Add(FieldName.Modified, row.Field <DateTime>(FieldName.Modified).ValueToDisplay());
                    dr.Add(FieldName.Created, row.Field <DateTime>(FieldName.Created).ValueToDisplay());

                    AddLockedByIcon(dr, row);
                    AddSplittedIcon(dr, row);
                    AddInvisibleIcon(dr, row);
                    AddScheduledIcon(dr, row);

                    var currentArticleId = (int)row.Field <decimal>(FieldName.ContentItemId);
                    var relationCounters = new Dictionary <int, int>();
                    foreach (var field in fieldList)
                    {
                        var sourceValue = GetSourceDynamicValue(field, row, relationCounters);
                        var destValue   = GetDestDynamicValue(field, sourceValue, currentArticleId, resultValues);
                        dr.Add(field.FormName, destValue);
                    }

                    yield return(dr);
                }
            }
        }
示例#8
0
 private static void CopyValue(SimpleDataRow newRow, DataRow oldRow, string key)
 {
     newRow.Add(key, oldRow[key]);
 }