private async void RegisterMethod() { string errors = null; if (IsValid(ValidatesProperties, out errors)) { Errors = errors; var salt = PasswordHasher.GenerateSalt(); var hashedPassword = PasswordHasher.ComputeHash(Password, salt); if (Password != ConfirmPassword) { Errors += "Password and Confirm password fields must match.\r\n"; return; } if (!_database.Users.Any(u => u.Login == Login)) { var user = _database.Users.Add(new User { Login = Login, Password = Convert.ToBase64String(hashedPassword), Salt = Convert.ToBase64String(salt), Name = FirstName, Surname = LastName, Birthday = DateTime.Parse(Birthday), PositionId = Position.Id, IsActive = true }); await _database.SaveChangesAsync(); user.UserRoles.Add(new UserRole { RoleId = Constants.UserRole, UserId = user.Id }); await _database.SaveChangesAsync(); GoToLoginPageMethod(); } else { Errors += "User with same login is already exists.\r\n"; } } else { Errors = errors; } Errors = Errors?.Trim(); }
private async void RegisterMethod() { string errors = null; if (IsValid(ValidatesProperties, out errors)) { Errors = errors; var salt = PasswordHasher.GenerateSalt(); var password = RandomStringGenerator.GenerateRandomString(20, false); var hashedPassword = PasswordHasher.ComputeHash(password, salt); if (!_database.Users.Any(u => u.Login == Login)) { var user = _database.Users.Add(new User { Login = Login, Password = Convert.ToBase64String(hashedPassword), Salt = Convert.ToBase64String(salt), Name = FirstName, Surname = LastName, Birthday = DateTime.Parse(Birthday), PositionId = Position.Id, IsInitial = true, DefaultPassword = password, IsActive = true }); await _database.SaveChangesAsync(); user.UserRoles.Add(new UserRole { RoleId = Role.Id, UserId = user.Id }); await _database.SaveChangesAsync(); } else { Errors = "User with same login is already exists.\r\n"; } await GetUsersMethod(); _eventAggregator.GetEvent <UpdateUserEvent>().Publish(); } else { Errors = errors; } Errors = Errors?.Trim(); }
private async void SaveQueryMethod() { if (SelectedProjects == null) { SelectedProjects = new ObservableCollection <Models.ProjectsManagementPageModels.Project>(); } if (QueryDescription.Length > 1 && QueryDescription.Length < 100) { var skillsQuery = string.Join(",", SkillsConditions?.Select(s => $"{s.Skill.Id}:{s.From.Id}-{s.To.Id}")); var languagesQuery = string.Join(",", LanguagesConditions?.Select(l => $"{l.Language.Id}:{l.From.Id}-{l.To.Id}")); var projectsQuery = string.Join(",", SelectedProjects?.Select(p => p.Id)); var query = $"{skillsQuery}&{languagesQuery}&{projectsQuery}"; using (var _database = new ITManagerEntities()) { var user = await _database.Users.Where(u => u.Id == ShellViewModel.CurrentUserId) .Include(u => u.Queries).FirstOrDefaultAsync(); user.Queries.Add(new Query() { Description = QueryDescription, QueryString = query, UserId = ShellViewModel.CurrentUserId }); await _database.SaveChangesAsync(); } _eventAggregator.GetEvent <UpdateQueriesEvent>().Publish(); QueryErrors = string.Empty; } else { QueryErrors = "Query description length must be from 1 to 100 sybmols."; } }
private async void ChangePasswordMethod() { if (IsValid(ValidatesProperties, out var errors)) { if (NewPassword == ConfirmNewPassword) { Errors = string.Empty; using (var _database = new ITManagerEntities()) { var user = ShellViewModel.CurrentUser; if (user != null) { var _user = _database.Users.Where(u => u.Id == user.Id).FirstOrDefault(); if (_user != null) { var salt = Convert.FromBase64String(user.Salt); _user.Salt = Convert.ToBase64String(salt); _user.IsInitial = false; _user.Password = Convert.ToBase64String(PasswordHasher.ComputeHash(NewPassword, salt)); _user.DefaultPassword = null; await _database.SaveChangesAsync(); if (user.UserRoles.Any(r => r.RoleId == Constants.AdministratorRole)) { _navigationService.NavigateTo(Constants.RolesManagementView); } else if (user.UserRoles.Any(r => r.RoleId == Constants.ManagerRole)) { _navigationService.NavigateTo(Constants.SearchView); } else if (user.UserRoles.Any(r => r.RoleId == Constants.UserRole)) { _navigationService.NavigateTo(Constants.MyPersonalPageView); } _eventAggregator.GetEvent <CloseMenuEvent>().Publish(false); } } } } else { Errors = "Passwords must match."; } } else { Errors = errors; } Errors = Errors.Trim(); }
private async void SaveEducationsMethod() { if (IsEducationValid()) { using (var _database = new ITManagerEntities()) { var userEducations = (await _database.Users.Where(u => u.Id == User.Id) .Include(u => u.Educations) .FirstOrDefaultAsync()).Educations; // Removing and changing educations foreach (var userEducation in userEducations.ToList()) { var _userEducation = Educations.FirstOrDefault(l => l.Id == userEducation.Id); // If exists in local collection, change data if (_userEducation != null) { userEducation.StartDate = _userEducation.StartDate; userEducation.EndDate = _userEducation.EndDate; userEducation.Faculty = _userEducation.Faculty; userEducation.Speciality = _userEducation.Speciality; userEducation.University = _userEducation.University; } // If not exists in local collection - remove. else { _database.Educations.Remove(userEducation); } } // Adding new education foreach (var newEducation in Educations.Where(l => l.Id == 0)) { userEducations.Add(new Education { StartDate = newEducation.StartDate, EndDate = newEducation.EndDate, Faculty = newEducation.Faculty, Speciality = newEducation.Speciality, University = newEducation.University, UserId = User.Id }); } IsEducationsChecked = false; User.Educations = (await _database.Users.Where(u => u.Id == User.Id).FirstOrDefaultAsync())?.Educations; await _database.SaveChangesAsync(); } } }
private async void RemoveQueryMethod(object query) { var _query = (Query)query; using (var _database = new ITManagerEntities()) { _database.Queries.Remove(_database.Queries.FirstOrDefault(q => q.Id == _query.Id)); await _database.SaveChangesAsync(); var user = await _database.Users.Where(u => u.Id == ShellViewModel.CurrentUserId) .Include(u => u.Queries).FirstOrDefaultAsync(); Queries = new ObservableCollection <Query>(user.Queries); } }
private async void UnblockUserMethod(UserAccountManagementModel user) { using (var _database = new ITManagerEntities()) { var _user = await _database.Users.Where(u => u.Id == user.UserId).FirstOrDefaultAsync(); if (_user == null) { return; } user.IsActive = true; _user.IsActive = true; await _database.SaveChangesAsync(); } }
private async void SaveLanguagesMethod() { if (IsLanguagesValid()) { using (var _database = new ITManagerEntities()) { var userLanguages = (await _database.Users.Where(u => u.Id == User.Id) .Include(u => u.Languages) .FirstOrDefaultAsync()).Languages; // Removing and changing languages foreach (var userLanguage in userLanguages.ToList()) { var _userLanguage = Languages.FirstOrDefault(l => l.Id == userLanguage.Id); // If exists in local collection, change data if (_userLanguage != null) { userLanguage.LanguageId = _userLanguage.LanguageId; userLanguage.LanguageLevelId = _userLanguage.LanguageLevelId; } // If not exists in local collection - remove. else { _database.Languages.Remove(userLanguage); } } // Adding new languages foreach (var newLanguage in Languages.Where(l => l.Id == 0)) { _database.Languages.Add(new Language { LanguageId = newLanguage.LanguageId, LanguageLevelId = newLanguage.LanguageLevelId, UserId = User.Id }); } IsLanguagesChecked = false; User.Languages = (await _database.Users.Where(u => u.Id == User.Id).FirstOrDefaultAsync())?.Languages; MapLanguages(); await _database.SaveChangesAsync(); } } }
private async void SaveProjectsMethod() { if (IsProjectsValid()) { using (var _database = new ITManagerEntities()) { var userProjects = (await _database.Users.Where(u => u.Id == User.Id) .Include(u => u.UserProjects) .FirstOrDefaultAsync()).UserProjects; // Removing and changing projects foreach (var userProject in userProjects.ToList()) { var _userProject = Projects.FirstOrDefault(l => l.Id == userProject.Id); // If exists in local collection, change data if (_userProject != null) { userProject.ProjectId = _userProject.ProjectId; userProject.PositionId = _userProject.PositionId; } // If not exists in local collection - remove. else { _database.UserProjects.Remove(userProject); } } // Adding new project foreach (var newProject in Projects.Where(l => l.Id == 0)) { userProjects.Add(new UserProject { ProjectId = newProject.ProjectId, PositionId = newProject.PositionId, UserId = User.Id }); } IsProjectsChecked = false; User.UserProjects = (await _database.Users.Where(u => u.Id == User.Id).FirstOrDefaultAsync())?.UserProjects; MapProjects(); await _database.SaveChangesAsync(); } } }
private async void SaveSkillsMethod() { if (IsSkillsValid()) { using (var _database = new ITManagerEntities()) { var userSkills = (await _database.Users.Where(u => u.Id == User.Id) .Include(u => u.UserSkills) .FirstOrDefaultAsync()).UserSkills; // Removing and changing skills foreach (var userSkill in userSkills.ToList()) { var _userSkill = Skills.FirstOrDefault(l => l.Id == userSkill.Id); // If exists in local collection, change data if (_userSkill != null) { userSkill.SkillId = _userSkill.SkillId; userSkill.SkillLevelId = _userSkill.SkillLevelId; userSkill.UserId = User.Id; } // If not exists in local collection - remove. else { _database.UserSkills.Remove(userSkill); } } // Adding new skill foreach (var newSkill in Skills.Where(l => l.Id == 0)) { userSkills.Add(new UserSkill { SkillId = newSkill.SkillId, SkillLevelId = newSkill.SkillLevelId, UserId = User.Id }); } IsSkillsChecked = false; User.UserSkills = (await _database.Users.Where(u => u.Id == User.Id).FirstOrDefaultAsync())?.UserSkills; await _database.SaveChangesAsync(); } } }
private async void SaveSertificatesMethod() { if (IsCertificatesValid()) { using (var _database = new ITManagerEntities()) { var userSertificates = (await _database.Users.Where(u => u.Id == User.Id) .Include(u => u.Sertificates) .FirstOrDefaultAsync()).Sertificates; // Removing and changing sertificates foreach (var userSertificate in userSertificates.ToList()) { var _userSertificate = Sertificates.FirstOrDefault(l => l.Id == userSertificate.Id); // If exists in local collection, change data if (_userSertificate != null) { userSertificate.Name = _userSertificate.Name; userSertificate.Date = _userSertificate.Date; } // If not exists in local collection - remove. else { _database.Sertificates.Remove(userSertificate); } } // Adding new sertificates foreach (var newSertificate in Sertificates.Where(l => l.Id == 0)) { userSertificates.Add(new Sertificate { Name = newSertificate.Name, Date = newSertificate.Date, UserId = User.Id }); } IsSertificatesChecked = false; User.Sertificates = (await _database.Users.Where(u => u.Id == User.Id).FirstOrDefaultAsync())?.Sertificates; await _database.SaveChangesAsync(); } } }
private async void SaveUsersMethod() { using (var _database = new ITManagerEntities()) { var users = await _database.Users.ToListAsync(); foreach (var user in users) { var _user = Users.Where(u => u.UserId == user.Id).FirstOrDefault(); if (_user == null) { continue; } user.UserRoles.FirstOrDefault().RoleId = _user.RoleId; } await _database.SaveChangesAsync(); GetUsersMethod(); } }
private async void SaveSkillsMethod() { if (!Skills.Any(s => string.IsNullOrWhiteSpace(s.Name) || s.Name.Length < 2 || s.Name.Length > 50)) { using (var _database = new ITManagerEntities()) { var skills = await _database.ProfessionalSkills.ToListAsync(); foreach (var skill in skills) { var _skill = Skills.FirstOrDefault(s => s.Id == skill.Id); if (_skill != null) { skill.Name = _skill.Name; } else { _database.ProfessionalSkills.Remove(skill); } } foreach (var skill in Skills.Where(s => s.Id == 0)) { _database.ProfessionalSkills.Add(new ProfessionalSkill { Name = skill.Name }); } await _database.SaveChangesAsync(); FillSkills(); } Errors = string.Empty; } else { Errors = "All skills must contains from 2 to 50 symbols."; } }
private async void SaveProjectsMethod() { using (var _database = new ITManagerEntities()) { var projects = await _database.Projects.ToListAsync(); foreach (var project in projects) { var _proejct = Projects.FirstOrDefault(p => p.Id == project.Id); if (_proejct != null) { project.Name = _proejct.Name; project.Description = _proejct.Description; project.StartDate = _proejct.StartDate; project.EndDate = _proejct.EndDate; } else { _database.Projects.Remove(project); } } foreach (var newProject in Projects.Where(p => p.Id == 0).ToList()) { _database.Projects.Add(new Project { Name = newProject.Name, StartDate = newProject.StartDate, EndDate = newProject.EndDate, Description = newProject.Description }); } await _database.SaveChangesAsync(); FillProjects(); } }
private async void SaveProfessionalSummaryMethod() { using (var _database = new ITManagerEntities()) { var _professionalSummary = (await _database.ProfessionalSummaries.Where(p => p.Id == ProfessionalSummary.Id).FirstOrDefaultAsync()); if (_professionalSummary != null) { _professionalSummary.ProfessionalSummary1 = ProfessionalSummary.ProfessionalSummary1; User.ProfessionalSummaries = await _database.ProfessionalSummaries.Where(u => u.UserId == User.Id).ToListAsync(); } else { _database.ProfessionalSummaries.Add(new ProfessionalSummary { UserId = User.Id, ProfessionalSummary1 = ProfessionalSummary.ProfessionalSummary1 }); } IsProfessionalSummaryChecked = false; await _database.SaveChangesAsync(); } }