Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        public RoleType?TypeOfCurrentUser()
        {
            if (IsAuthenticated().Result)
            {
                var roles = GetClaim("roles").Trim().Split(",");
                if (roles.Any())
                {
                    return(RoleTypeManager.RoleTypeFromString(roles[0]));
                }
            }

            return(null);
        }
Ejemplo n.º 3
0
        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)));
        }