// Function for organizing data to be saved in the log and logging model changes // Use context to find url public async void Save(T values, LogType.Type type, HttpContext context) { var page = context.Request.GetDisplayUrl(); var changesToSave = GetValues(values, typeof(T)); await Save(values, type, changesToSave, page); }
// Function that saves log data internal async Task Save(T values, LogType.Type type, string newValues, string url) { // Create the log object var log = new Log { Url = url, DateUpdate = DateTime.Now, Type = type.ToString() }; // Selects which logging method to save switch (type) { case LogType.Type.Create: log.After = newValues; break; case LogType.Type.Update: { // When it is update, consult the current values of the table, to register in the before. var currentData = await GetCurrentModelState(values); var oldModel = GetValues(currentData, typeof(T)); log.After = newValues; log.Before = oldModel; break; } case LogType.Type.Delete: log.Before = newValues; break; default: log.After = newValues; break; } await SaveLog(log); }
// Function for organizing data to be saved in the log and logging model changes // Change url is passed by parameter public async void Save(T values, LogType.Type type, string page) { var changesToSave = GetValues(values, typeof(T)); await Save(values, type, changesToSave, page); }