Пример #1
0
        /// <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;
            }
        }
Пример #2
0
 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));
     }
 }
Пример #3
0
 public UserAccountDirect(string userId, TilerDbContext database)
 {
     ID        = userId;
     _Database = database;
 }