Exemplo n.º 1
0
        public List <string> GetCreatorNRICs()
        {
            if (AccountBLL.IsAdministrator())
            {
                return(logDAL.RetrieveCreatorNRICs());
            }

            return(null);
        }
Exemplo n.º 2
0
        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);
     }
 }
Exemplo n.º 4
0
        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);
        }