public async Task <bool> ChangePassword(Dto.UserId userId, string password)
        {
            try
            {
                Models.User user = await TimeSheetContext.User.Where(x => x.Id == userId.Id).SingleAsync();

                if (user == null)
                {
                    return(false);
                }
                else
                {
                    CreatePasswordHash(password, out byte[] PasswordHash, out byte[] PasswordSalt);
                    user.PasswordHash = PasswordHash;
                    user.PasswordSalt = PasswordSalt;
                    TimeSheetContext.Update(user);
                }
                await TimeSheetContext.SaveChangesAsync();
            }
            catch (Exception e)
            {
                return(false);
            }
            return(true);
        }
        public async Task <bool> Update(Models.Activity activity)
        {
            if (activity == null)
            {
                return(false);
            }
            if (activity.Id == null)
            {
                return(false);
            }
            if (activity.Id == "")
            {
                return(false);
            }
            try{
                Models.Activity activityOld = await TimeSheetContext.Activity.Where(x => x.Id == activity.Id).SingleOrDefaultAsync();

                activity.ProjectId = activityOld.ProjectId;
                TimeSheetContext.Entry(activityOld).State = EntityState.Detached;
                activityOld = null;
                TimeSheetContext.Update(activity);
            }
            catch (Exception e)
            {
                return(false);
            }
            await TimeSheetContext.SaveChangesAsync();

            return(true);
        }
        public async Task <bool> Update(Models.User user)
        {
            if (user == null)
            {
                return(false);
            }
            if (user.Id == null)
            {
                return(false);
            }
            if (user.Id == "")
            {
                return(false);
            }
            try
            {
                Models.User userOld = await TimeSheetContext.User.Where(x => x.Id == user.Id).SingleOrDefaultAsync();

                user.RoleId            = userOld.RoleId;
                user.Email             = userOld.Email;
                user.ChangeHistory     = userOld.ChangeHistory;
                user.DefaultWorkweekId = userOld.DefaultWorkweekId;
                user.PasswordHash      = userOld.PasswordHash;
                user.PasswordSalt      = userOld.PasswordSalt;
                TimeSheetContext.Entry(userOld).State = EntityState.Detached;
                userOld = null;
                TimeSheetContext.Update(user);
            }
            catch (Exception e)
            {
                return(false);
            }
            await TimeSheetContext.SaveChangesAsync();

            return(true);
        }
        public async Task <bool> Update(Models.Project project)
        {
            if (project == null)
            {
                return(false);
            }
            if (project.Id == null)
            {
                return(false);
            }
            if (project.Id == "")
            {
                return(false);
            }
            TimeSheetContext.Update(project);
            await TimeSheetContext.SaveChangesAsync();

            return(true);
        }
        public async Task <bool> Update(Models.Log log)
        {
            if (log == null)
            {
                return(false);
            }
            try
            {
                Models.Log logOld = await TimeSheetContext.Log.Where(x => x.Id == log.Id).SingleOrDefaultAsync();

                log.ProjectId  = logOld.ProjectId;
                log.UserId     = logOld.UserId;
                log.ActivityId = logOld.ActivityId;
            }
            catch (Exception e)
            {
                return(false);
            }
            TimeSheetContext.Update(log);
            await TimeSheetContext.SaveChangesAsync();

            return(true);
        }