private async void btnSacuvaj_Click(object sender, EventArgs e)
        {
            if (ValidateChildren() && txtLozinka_Validating() && await txtKorisnickoIme_Validating() && await txtEmail_Validating())
            {
                var request = new KupciUpsertRequest()
                {
                    Ime               = txtIme.Text,
                    Prezime           = txtPrezime.Text,
                    Email             = txtEmail.Text,
                    Telefon           = txtTelefon.Text,
                    KorisnickoIme     = txtKorisnickoIme.Text,
                    Password          = txtLozinka.Text,
                    PasswordPotvrda   = txtPotvrdaLozinke.Text,
                    Status            = cbStatus.Checked,
                    DatumRegistracije = DateTime.Now
                };

                Model.Kupci entity = null;
                if (_id.HasValue)
                {
                    entity = await _kupciService.Update <Model.Kupci>(_id.Value, request);
                }
                else
                {
                    entity = await _kupciService.Insert <Model.Kupci>(request);
                }

                if (entity != null)
                {
                    MessageBox.Show("Uspješno izvršeno");
                }
                this.Close();
            }
        }
示例#2
0
        public Model.Kupci Insert(KupciInsertRequest request)
        {
            var entity = _mapper.Map <Database.Kupci>(request);

            if (request.Password != request.PasswordPotvrda)
            {
                throw new Exception("Passwordi se ne slažu");
            }

            entity.LozinkaSalt = GenerateSalt();
            entity.LozinkaHash = GenerateHash(entity.LozinkaSalt, request.Password);

            _context.Kupci.Add(entity);
            _context.SaveChanges();


            var kupac = new Model.Kupci()
            {
                Ime           = request.Ime,
                Prezime       = request.Prezime,
                KorisnickoIme = request.KorisnickoIme,
                Email         = request.Email,
                Telefon       = request.Telefon,
                BrojTokena    = request.BrojTokena,
            };

            _context.SaveChanges();

            // return _mapper.Map<Model.Kupac>(entity);
            return(kupac);
        }
        protected override async Task <AuthenticateResult> HandleAuthenticateAsync()
        {
            if (!Request.Headers.ContainsKey("Authorization"))
            {
                return(AuthenticateResult.Fail("Missing Authorization Header"));
            }

            Model.Osoblje user            = null;
            Model.Kupci   kupac           = null;
            var           authHeader      = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
            var           credentialBytes = Convert.FromBase64String(authHeader.Parameter);
            var           credentials     = Encoding.UTF8.GetString(credentialBytes).Split(':');
            var           username        = credentials[0];
            var           password        = credentials[1];
            var           status          = context.VrstaAplikacije.First();

            //
            if (status.DesktopStatus == 1)
            {
                user = _userService.Authenticiraj(username, password);
                if (user != null)
                {
                    var claims = new List <Claim> {
                        new Claim(ClaimTypes.NameIdentifier, user.KorisnickoIme),
                        new Claim(ClaimTypes.Name, user.Ime),
                    };

                    foreach (var odjeliOsoblje in context.OdjeliOsoblje)
                    {
                        if (odjeliOsoblje.OsobljeId == user.OsobljeId)
                        {
                            claims.Add(new Claim(ClaimTypes.Role, odjeliOsoblje.OdjelId.ToString()));
                        }
                    }

                    /*foreach (var role in user.OdjeliOsoblje)
                     * {
                     *  claims.Add(new Claim(ClaimTypes.Role, role.Odjel.Naziv));
                     * }*/

                    var identity  = new ClaimsIdentity(claims, Scheme.Name);
                    var principal = new ClaimsPrincipal(identity);
                    var ticket    = new AuthenticationTicket(principal, Scheme.Name);

                    return(AuthenticateResult.Success(ticket));
                }
            }
            else if (status.DesktopStatus == 0)
            {
                kupac = _kupacService.Authenticiraj(username, password);
                if (kupac != null)
                {
                    var claims = new List <Claim> {
                        new Claim(ClaimTypes.NameIdentifier, kupac.KorisnickoIme),
                        new Claim(ClaimTypes.Name, kupac.Ime),
                    };

                    /*foreach (var role in user.OdjeliOsoblje)
                     * {
                     *  claims.Add(new Claim(ClaimTypes.Role, role.Odjel.Naziv));
                     * }*/

                    var identity  = new ClaimsIdentity(claims, Scheme.Name);
                    var principal = new ClaimsPrincipal(identity);
                    var ticket    = new AuthenticationTicket(principal, Scheme.Name);



                    return(AuthenticateResult.Success(ticket));
                }
            }

            //kupac = _kupacService.Authenticiraj(username, password);



            ex(null);

            return(AuthenticateResult.Fail("Invalid Auhtorization Header"));
        }