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; } } }
public async Task Reject(IUserIdentity user) { await DBLogItem.Reject(logs, user); RefreshLogs(); }
//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(); }