public void CheckUnfinishedEntries() { using (var context = new AppsEntities()) { var unfinishedUsages = context.Usages .Where(u => u.IsCurrent && u.UsageType == UsageTypes.Login) .AsNoTracking() .ToList(); var unfinishedLogs = context.Logs .Where(l => !l.Finished) .AsNoTracking() .ToList(); if (unfinishedUsages.Count > 0) { foreach (var usage in unfinishedUsages) { SaveUnfinishedUsage(usage); } } if (unfinishedLogs.Count > 0) { unfinishedLogs.ForEach(l => { l.Finished = true; context.Entry(l).State = EntityState.Modified; }); context.SaveChanges(); } } }
public async Task SaveModifiedEntityAsync <T>(T item) where T : class { using (var context = new AppsEntities()) { context.Entry <T>(item).State = EntityState.Modified; await context.SaveChangesAsync(); } }
public void SaveModifiedEntity <T>(T item) where T : class { using (var context = new AppsEntities()) { context.Entry <T>(item).State = EntityState.Modified; context.SaveChanges(); } }
public async Task DeleteEntityRangeAsync <T>(IEnumerable <T> range) where T : class { using (var context = new AppsEntities()) { foreach (var item in range) { context.Entry <T>(item).State = EntityState.Deleted; } await context.SaveChangesAsync(); } }
public void DeleteEntityRange <T>(IEnumerable <T> range) where T : class { using (var context = new AppsEntities()) { foreach (var item in range) { context.Entry <T>(item).State = EntityState.Deleted; } context.SaveChanges(); } }
public async Task SaveModifiedEntityRangeAsync <T>(IEnumerable <T> items) where T : class { using (var context = new AppsEntities()) { foreach (var item in items) { context.Entry(item).State = EntityState.Modified; } await context.SaveChangesAsync(); } }
private void SaveUnfinishedUsage(Usage usage) { using (var context = new AppsEntities()) { var lastLog = context.Logs.Where(l => l.UsageID == usage.UsageID) .OrderByDescending(l => l.DateCreated) .FirstOrDefault(); var lastUsage = context.Usages.Where(u => u.SelfUsageID == usage.UsageID) .OrderByDescending(u => u.UsageEnd) .FirstOrDefault(); var lastLogDate = DateTime.MinValue; var lastUsageDate = DateTime.MinValue; if (lastLog != null) { lastLogDate = lastLog.DateEnded; } if (lastUsage != null) { lastUsageDate = lastUsage.UsageEnd; } var latestDateKnown = new DateTime[] { lastLogDate, lastUsageDate } .OrderByDescending(d => d.Ticks) .FirstOrDefault(); if (latestDateKnown == DateTime.MinValue) { latestDateKnown = usage.UsageStart; } usage.UsageEnd = latestDateKnown; usage.IsCurrent = false; context.Entry(usage).State = EntityState.Modified; context.SaveChanges(); } }