Exemplo n.º 1
0
 public void Delete()
 {
     using (CampaignDbContext db = new CampaignDbContext())
     {
         try
         {
             Campaign campaign = db.Campaigns.Where(x => x.U_Id == userid && x.Camp_Id == campaignid).FirstOrDefault();
             db.Campaigns.Remove(campaign);
             db.SaveChanges();
             ProcessSuccess?.Invoke(null, null);
         }
         catch (Exception ex)
         {
             ProcessFailDelegate Failed = ProcessFail;
             Failed?.Invoke("Failed" + Environment.NewLine + ex.ToString());
         }
     }
 }
Exemplo n.º 2
0
        public LoginResponse Login(LoginRequest request)
        {
            var exists = _campaignDbContext.Clients.Any(c => c.Login.Equals(request.Login));

            if (!exists)
            {
                throw new LoginDoesNotExistsException($"{request.Login} does not exists");
            }

            var client = _campaignDbContext.Clients.SingleOrDefault(b => b.Login.Equals(request.Login));


            bool verify = PasswordHashing.Validate(request.Password, client.Salt, client.Password);

            if (!verify)
            {
                throw new PasswordIsNotCorrectException($"password {request.Password} is not correct");
            }

            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, client.Login),
                new Claim(ClaimTypes.Name, client.LastName),
                new Claim(ClaimTypes.Role, "Client")
            };

            var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("faafsasfassdgdfger524312"));
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var token = new JwtSecurityToken
                        (
                issuer: "Artem",
                audience: "Clients",
                claims: claims,
                expires: DateTime.Now.AddMinutes(10),
                signingCredentials: creds
                        );

            var accessToken  = new JwtSecurityTokenHandler().WriteToken(token);
            var refreshToken = Guid.NewGuid();

            client.RefreshToken = refreshToken.ToString();
            _campaignDbContext.SaveChanges();

            return(new LoginResponse
            {
                AccessToken = accessToken,
                RefreshToken = refreshToken.ToString()
            });
        }