public override async Task <ServiceResult> Insert(KorisnickiNalogUpsertDto request) { if (await ValidateModel(request) is { } validationResult&& !validationResult.Succeeded) { return(ServiceResult.WithStatusCode(validationResult.StatusCode, validationResult.Message)); } var korisnickiNalog = _mapper.Map <KorisnickiNalog>(request); if (request.ConfirmPassword != request.Password) { return(ServiceResult.BadRequest("Lozinke se ne podudaraju")); } korisnickiNalog.PasswordSalt = _securityService.GenerateSalt(); korisnickiNalog.PasswordHash = _securityService.GenerateHash(korisnickiNalog.PasswordSalt, request.Password); korisnickiNalog.DateCreated = DateTime.Now; korisnickiNalog.LastOnline = DateTime.Now; await _dbContext.KorisnickiNalozi.AddAsync(korisnickiNalog); await _dbContext.SaveChangesAsync(); var roleType = RoleTypeManager.RoleTypeFromString(request.RoleType); if (roleType.HasValue) { await AddInRole(korisnickiNalog.Id, roleType.Value); } return(ServiceResult.OK(_mapper.Map <KorisnickiNalogDtoLL>(korisnickiNalog))); }
public RoleType?TypeOfCurrentUser() { if (IsAuthenticated().Result) { var roles = GetClaim("roles").Trim().Split(","); if (roles.Any()) { return(RoleTypeManager.RoleTypeFromString(roles[0])); } } return(null); }
public override async Task <ServiceResult> Update(int id, KorisnickiNalogUpsertDto dtoForUpdate) { var korisnickiNalog = await _dbContext.KorisnickiNalozi.FindAsync(id); if (korisnickiNalog == null) { return(ServiceResult.NotFound("Korisnicki nalog nije pronadjen")); } if (await ValidateModel(dtoForUpdate) is { } validationResult&& !validationResult.Succeeded) { return(ServiceResult.WithStatusCode(validationResult.StatusCode, validationResult.Message)); } _mapper.Map(dtoForUpdate, korisnickiNalog); if (!string.IsNullOrEmpty(dtoForUpdate.Password) && dtoForUpdate.Password != dtoForUpdate.ConfirmPassword) { return(ServiceResult.BadRequest("Lozinke se ne podudaraju")); } await Task.Run(() => { korisnickiNalog.PasswordSalt = _securityService.GenerateSalt(); korisnickiNalog.PasswordHash = _securityService.GenerateHash(korisnickiNalog.PasswordSalt, dtoForUpdate.Password); korisnickiNalog.DateCreated = DateTime.Now; korisnickiNalog.LastOnline = DateTime.Now; _dbContext.KorisnickiNalozi.Update(korisnickiNalog); }); var roleType = RoleTypeManager.RoleTypeFromString(dtoForUpdate.RoleType); if (roleType.HasValue) { await AddInRole(id, roleType.Value); } await _dbContext.SaveChangesAsync(); //Load RoleKorisnickiNalog relations await _dbContext.Entry(korisnickiNalog).Collection(x => x.RolesKorisnickiNalog).LoadAsync(); return(ServiceResult.OK(_mapper.Map <KorisnickiNalogDtoLL>(korisnickiNalog))); }