public async Task ChangePasswordAsync(int id, string password) { var validateResult = PasswordValidator.Validate(password); if (validateResult != "OK") { throw new BadRequestException(validateResult); } var darbinieks = await _context.Darbinieki .Where(d => d.Id == id) .FirstOrDefaultAsync(); if (darbinieks == null) { throw new BadRequestException($"Darbinieks ar Id={id} netika atrasts"); } if (!string.IsNullOrEmpty(darbinieks.Lietotajvards)) { if (!string.IsNullOrEmpty(darbinieks.Parole)) { if (password == PasswordValidator.Decrypt(darbinieks.Parole, _settings.EncryptionKey)) { throw new BadRequestException("Parole nedrīkst būt tāda pati kā iepriekšējā"); } } } else { throw new BadRequestException("Darbiniekam nav lietotājvārda"); } darbinieks.Parole = PasswordValidator.Encrypt(password, _settings.EncryptionKey); await _context.SaveChangesAsync(); }
public async Task <int> InsertDarbinieksAsync(Darbinieks darbinieks) { if (!string.IsNullOrEmpty(darbinieks.Lietotajvards)) { //pārbaudam vai lietotājvārds jau eksistē var exist = await GetDarbinieksByUserNameAsync(darbinieks.Lietotajvards); if (exist != null) { throw new BadRequestException($"Lietotājvārds {darbinieks.Lietotajvards} jau eksistē"); } //pārbaudam vai e-pasta adrese jau eksistē if (!string.IsNullOrEmpty(darbinieks.Epasts)) { var user = await _context.Darbinieki.AsNoTracking() .Where(d => d.Epasts == darbinieks.Epasts) .FirstOrDefaultAsync(); if (user != null) { throw new BadRequestException("Šāda e-pasta adrese jau eksistē"); } } var validateResult = PasswordValidator.Validate(darbinieks.Parole); if (validateResult != "OK") { throw new BadRequestException(validateResult); } darbinieks.Parole = PasswordValidator.Encrypt(darbinieks.Parole, _settings.EncryptionKey); } else { darbinieks.Aktivs = false; darbinieks.Administrators = false; } _memoryCache.Remove("EMPLOYEES-LIST"); darbinieks.Uznemumi = new List <UznemumaDarbinieks> { new UznemumaDarbinieks { UznemumaId = darbinieks.Uznemums.Id } }; await _context.Darbinieki.AddAsync(darbinieks); await _context.SaveChangesAsync(); return(darbinieks.Id); }
public async Task <Darbinieks> ValidateCredentialsAsync(string username, string password) { var pwd = PasswordValidator.Encrypt(password, _settings.EncryptionKey); var user = await _context.Darbinieki .Where(d => d.Lietotajvards == username && d.Parole == pwd) .FirstOrDefaultAsync(); if (user != null) { user.RefreshToken = Guid.NewGuid().ToString(); await _context.SaveChangesAsync(); } return(user); }
public async Task <int> UpdateDarbinieksAsync(Darbinieks darbinieks) { var needClearPassword = false; if (!string.IsNullOrEmpty(darbinieks.Lietotajvards)) { //pārbaudam vai lietotājvārds jau eksistē - gadījumā ja tiek izmainīts var exist = await GetDarbinieksByUserNameAsync(darbinieks.Lietotajvards); if (exist != null && exist.Id != darbinieks.Id) { throw new BadRequestException($"Lietotājvārds {darbinieks.Lietotajvards} jau eksistē"); } } else { needClearPassword = true; } //pārbaudam vai e-pasta adrese jau eksistē if (!string.IsNullOrEmpty(darbinieks.Epasts)) { var user = await _context.Darbinieki.Where(d => d.Id != darbinieks.Id && d.Epasts == darbinieks.Epasts).FirstOrDefaultAsync(); if (user != null) { throw new BadRequestException("Šāda e-pasta adrese jau eksistē"); } } var oldDarbinieks = await _context.Darbinieki .Where(d => d.Id == darbinieks.Id) .FirstOrDefaultAsync(); if (oldDarbinieks == null) { throw new BadRequestException($"Darbinieks ar Id={darbinieks.Id} netika atrasts"); } oldDarbinieks.PilnsVards = darbinieks.PilnsVards; oldDarbinieks.Epasts = darbinieks.Epasts; oldDarbinieks.Talrunis = darbinieks.Talrunis; oldDarbinieks.Aktivs = darbinieks.Aktivs; oldDarbinieks.Administrators = darbinieks.Administrators; oldDarbinieks.Mehanikis = darbinieks.Mehanikis; // ja vecajos datos nav lietotājvārda, bet jaunajos ir - nepieciešams saglabāt arī paroli if (string.IsNullOrEmpty(oldDarbinieks.Lietotajvards) && !string.IsNullOrEmpty(darbinieks.Lietotajvards)) { oldDarbinieks.Parole = PasswordValidator.Encrypt(darbinieks.Parole, _settings.EncryptionKey); } else { // ja nav lietotājvārda - dzēšam arī paroli if (needClearPassword) { oldDarbinieks.Parole = null; oldDarbinieks.Aktivs = false; oldDarbinieks.Administrators = false; } } oldDarbinieks.Lietotajvards = darbinieks.Lietotajvards; return(await _context.SaveChangesAsync()); }