示例#1
0
        public void RefreshChanges()
        {
            logs.Sort(new DBComparer <DBLogItem, int?>(Row.Table.LogTable.PrimaryKey));

            changes.Clear();
            user = string.Empty;
            DBLogItem prev = null;

            foreach (var log in Logs)
            {
                if (log.Status == DBStatus.New)
                {
                    string name = log.UserReg?.DBUser?.Name;
                    if (user.IndexOf(name, StringComparison.Ordinal) < 0)
                    {
                        user += name + "; ";
                    }
                    foreach (var logColumn in log.LogTable.GetLogColumns())
                    {
                        LogEntry map = changes.SelectOne(nameof(LogEntry.Column), CompareType.Equal, logColumn.BaseColumn);
                        if (map == null)
                        {
                            map = new LogEntry
                            {
                                User   = name,
                                Column = logColumn.BaseColumn,
                                Old    = prev?.GetValue(logColumn)
                            };
                            changes.Add(map);
                        }
                        if (!map.User.Contains(name))
                        {
                            map.User += name + "; ";
                        }
                        map.New = log.GetValue(logColumn);
                    }
                    prev = log;
                }
            }
        }
示例#2
0
        public async Task Reject(IUserIdentity user)
        {
            await DBLogItem.Reject(logs, user);

            RefreshLogs();
        }
示例#3
0
        //public bool Check()
        //{
        //    bool flag = true;
        //    foreach (var log in Logs)
        //    {
        //        if (log.Status == DBStatus.New && (((IUserLog)log.UserLog)?.User?.IsCurrent ?? false))// && !log.User.Super
        //        {
        //            flag = false;
        //            break;
        //        }
        //    }
        //    return flag;
        //}

        public async Task Accept(IUserIdentity user)
        {
            await DBLogItem.Accept(row, logs, user);

            RefreshLogs();
        }