public List <string> GetCreatorNRICs() { if (AccountBLL.IsAdministrator()) { return(logDAL.RetrieveCreatorNRICs()); } return(null); }
public List <string> GetActions() { if (AccountBLL.IsAdministrator()) { return(logDAL.RetrieveActions()); } return(null); }
public void InsertAnonymizedTableToDb() { if (AccountBLL.IsAdministrator()) { //dataDAL.ResetGeneralizationLevel(); DataTable dt = dataDAL.RetrieveColumns(); Anonymizer anonymizer = new Anonymizer(); Tuple <DataTable, Dictionary <string, int> > anonDtAndGenLevel = anonymizer.anonymize(dt, 3, 0.10); DataTable anonymizedDataTable = anonDtAndGenLevel.Item1; Dictionary <string, int> genLevel = anonDtAndGenLevel.Item2; dataDAL.ClearAnonymizedTable(); dataDAL.InsertIntoAnonymizedTable(anonymizedDataTable); dataDAL.UpdateGeneralizationLevel(genLevel); } }
public List <LogEvent> GetLogs(List <string> subjectNRICs, List <string> actions, DateTime?dateTimeFrom, DateTime?dateTimeTo) { if (AccountBLL.IsAdministrator()) { List <Tuple <string, string> > subjectNRICsValidated = new List <Tuple <string, string> >(); Dictionary <string, string> subjectNRICsValidatedDictionary = GetCreatorNRICs().ToDictionary(x => x); foreach (string subjectNRIC in subjectNRICs) { if (subjectNRICsValidatedDictionary.ContainsKey(subjectNRIC)) { subjectNRICsValidated.Add(new Tuple <string, string>("@" + subjectNRIC, subjectNRIC)); } } List <Tuple <string, string> > actionsValidated = new List <Tuple <string, string> >(); Dictionary <string, string> actionsValidatedDictionary = GetActions().ToDictionary(x => x); foreach (string action in actions) { if (actionsValidatedDictionary.ContainsKey(action)) { actionsValidated.Add(new Tuple <string, string>("@" + action.Replace(" ", string.Empty), action)); } } string dateTimeFromValidated = string.Empty; if (dateTimeFrom != null) { dateTimeFromValidated = dateTimeFrom?.ToString("yyyy-MM-dd HH:mm:ss"); } string dateTimeToValidated = string.Empty; if (dateTimeTo != null) { dateTimeToValidated = dateTimeTo?.ToString("yyyy-MM-dd HH:mm:ss"); } // Build Query StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(@"SELECT id, creator_nric, action, description, create_time FROM permission "); if (subjectNRICsValidated.Count > 0 || actionsValidated.Count > 0 || dateTimeFrom != null || dateTimeTo != null) { stringBuilder.Append(" WHERE "); } List <string> temp = new List <string>(); if (subjectNRICsValidated.Count > 0) { temp.Add(string.Join(" OR ", subjectNRICsValidated.Select(t => "creator_nric = " + t.Item1))); } if (actionsValidated.Count > 0) { temp.Add(string.Join(" OR ", actionsValidated.Select(t => "action = " + t.Item1))); } if (!string.IsNullOrEmpty(dateTimeFromValidated)) { temp.Add("create_time >= @dateTimeFromValidated"); } if (!string.IsNullOrEmpty(dateTimeToValidated)) { temp.Add("create_time <= @dateTimeToValidated"); } stringBuilder.Append(string.Join(" AND ", temp)); stringBuilder.Append(" ORDER BY create_time DESC LIMIT 200;"); return(logDAL.Retrieve(stringBuilder.ToString(), subjectNRICsValidated, actionsValidated, dateTimeFromValidated, dateTimeToValidated)); } return(null); }