/// <summary> /// This is to be called when you need save the last change to the database /// </summary> /// <param name="db">The database context for accessing db</param> /// <param name="user">The referemce tiler user</param> /// <returns></returns> public static async Task saveLatestChange(TilerDbContext db, TilerUser user) { TilerUser retrievedUser = await((db.Users) as DbSet <TilerUser>).FindAsync(user.Id).ConfigureAwait(false); if (user.ClearAllId != retrievedUser.ClearAllId) { retrievedUser.ClearAllId = user.ClearAllId; } retrievedUser.LastScheduleModification = DateTime.UtcNow; Task waitForDbSave = null; if (!string.IsNullOrEmpty(retrievedUser.PasswordHash)) { EntityState currentState = db.Entry(retrievedUser).State; if (currentState == EntityState.Detached) { db.Entry(retrievedUser).State = EntityState.Added; } db.Entry(retrievedUser).State = EntityState.Modified; TilerController.dbSaveChanges(db as ApplicationDbContext); } if (waitForDbSave != null) { await waitForDbSave; } }
async virtual public Task <UserAccount> getUserAccount(TilerDbContext db = null) { if (db != null) { return(new UserAccountDirect(UserID, db)); } else { TilerUser User = new TilerUser() { UserName = UserName, Id = UserID }; return(new UserAccountXml(User)); } }
public UserAccountDirect(string userId, TilerDbContext database) { ID = userId; _Database = database; }