track activities

main
Paul Schneider 9 years ago
parent 11f9714b65
commit ae4edf1e79
2 changed files with 15 additions and 19 deletions

@ -9,6 +9,7 @@ using Microsoft.Extensions.Logging;
namespace Yavsc.Controllers namespace Yavsc.Controllers
{ {
using System.Security.Claims;
using Models; using Models;
using Models.Workflow; using Models.Workflow;
@ -137,7 +138,7 @@ namespace Yavsc.Controllers
if (ModelState.IsValid) if (ModelState.IsValid)
{ {
_context.Activities.Add(activity); _context.Activities.Add(activity);
_context.SaveChanges(); _context.SaveChanges(User.GetUserId());
return RedirectToAction("Index"); return RedirectToAction("Index");
} }
SetSettingClasseInfo(); SetSettingClasseInfo();
@ -174,7 +175,7 @@ namespace Yavsc.Controllers
if (ModelState.IsValid) if (ModelState.IsValid)
{ {
_context.Update(activity); _context.Update(activity);
_context.SaveChanges(); _context.SaveChanges(User.GetUserId());
return RedirectToAction("Index"); return RedirectToAction("Index");
} }
return View(activity); return View(activity);
@ -205,7 +206,7 @@ namespace Yavsc.Controllers
{ {
Activity activity = _context.Activities.Single(m => m.Code == id); Activity activity = _context.Activities.Single(m => m.Code == id);
_context.Activities.Remove(activity); _context.Activities.Remove(activity);
_context.SaveChanges(); _context.SaveChanges(User.GetUserId());
return RedirectToAction("Index"); return RedirectToAction("Index");
} }
} }

@ -5,10 +5,8 @@ using System.Threading.Tasks;
using Microsoft.AspNet.Authentication.OAuth; using Microsoft.AspNet.Authentication.OAuth;
using Microsoft.AspNet.Identity.EntityFramework; using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Data.Entity; using Microsoft.Data.Entity;
using System.Web;
using System.Threading; using System.Threading;
using Yavsc.Models.Haircut; using Yavsc.Models.Haircut;
using Yavsc.Models.Messaging;
namespace Yavsc.Models namespace Yavsc.Models
{ {
@ -28,6 +26,7 @@ namespace Yavsc.Models
using Musical.Profiles; using Musical.Profiles;
using Workflow.Profiles; using Workflow.Profiles;
using Drawing; using Drawing;
public class ApplicationDbContext : IdentityDbContext<ApplicationUser> public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{ {
protected override void OnModelCreating(ModelBuilder builder) protected override void OnModelCreating(ModelBuilder builder)
@ -123,7 +122,7 @@ namespace Yavsc.Models
public Task ClearTokensAsync() public Task ClearTokensAsync()
{ {
Tokens.RemoveRange(this.Tokens); Tokens.RemoveRange(this.Tokens);
SaveChanges(); SaveChanges(null);
return Task.FromResult(0); return Task.FromResult(0);
} }
@ -138,7 +137,7 @@ namespace Yavsc.Models
if (item != null) if (item != null)
{ {
Tokens.Remove(item); Tokens.Remove(item);
SaveChanges(); SaveChanges(email);
} }
return Task.FromResult(0); return Task.FromResult(0);
} }
@ -184,7 +183,7 @@ namespace Yavsc.Models
item.RefreshToken = value.RefreshToken; item.RefreshToken = value.RefreshToken;
Tokens.Update(item); Tokens.Update(item);
} }
SaveChanges(); SaveChanges(googleUserId);
return Task.FromResult(0); return Task.FromResult(0);
} }
@ -225,13 +224,11 @@ namespace Yavsc.Models
public DbSet<GeneralSettings> GeneralSettings { get; set; } public DbSet<GeneralSettings> GeneralSettings { get; set; }
public DbSet<CoWorking> WorkflowProviders { get; set; } public DbSet<CoWorking> WorkflowProviders { get; set; }
private void AddTimestamps() private void AddTimestamps(string currentUsername)
{ {
var entities = ChangeTracker.Entries().Where(x => x.Entity.GetType().GetInterface("IBaseTrackedEntity")!=null && (x.State == EntityState.Added || x.State == EntityState.Modified)); var entities = ChangeTracker.Entries().Where(x => x.Entity.GetType().GetInterface("IBaseTrackedEntity")!=null && (x.State == EntityState.Added || x.State == EntityState.Modified));
var currentUsername = !string.IsNullOrEmpty(System.Web.HttpContext.Current?.User?.Identity?.Name) // Microsoft.AspNet.Identity;
? HttpContext.Current.User.Identity.Name
: "Anonymous";
foreach (var entity in entities) foreach (var entity in entities)
{ {
@ -245,15 +242,13 @@ namespace Yavsc.Models
((IBaseTrackedEntity)entity.Entity).UserModified = currentUsername; ((IBaseTrackedEntity)entity.Entity).UserModified = currentUsername;
} }
} }
public int SaveChanges(string userId) {
AddTimestamps(userId);
override public int SaveChanges() {
AddTimestamps();
return base.SaveChanges(); return base.SaveChanges();
} }
public override async Task<int> SaveChangesAsync(CancellationToken ctoken = default(CancellationToken)) { public async Task<int> SaveChangesAsync(string userId, CancellationToken ctoken = default(CancellationToken)) {
AddTimestamps(); AddTimestamps(userId);
return await base.SaveChangesAsync(); return await base.SaveChangesAsync();
} }

Loading…