Beispiel #1
0
 public UsersViewModels GetElement(UsersBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new Database())
     {
         var component = context.Users
                         .FirstOrDefault(rec => model == null ||
                                         rec.Id == model.Id ||
                                         (rec.FIO == model.FIO && rec.Password == model.Password && rec.Status == model.Status));
         return(component != null ?
                new UsersViewModels
         {
             Id = component.Id,
             FIO = component.FIO,
             Status = component.Status,
             Email = component.Email,
             Password = component.Password,
             PhoneNumber = component.PhoneNumber
         } :
                null);
     }
 }
        public async Task <IActionResult> Login([FromBody] UsersBindingModel bindingModel)
        {
            var userFromDb = await this.context.Users
                             .SingleOrDefaultAsync(user => user.Username == bindingModel.Username && user.Password == bindingModel.Password);

            if (userFromDb == null)
            {
                return(this.BadRequest("Username or password is invalid."));
            }

            var tokenHandler = new JwtSecurityTokenHandler();
            var key          = Encoding.ASCII.GetBytes(this.jwtSettings.Secret);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.NameIdentifier, userFromDb.Username)
                }),
                Expires            = DateTime.UtcNow.AddDays(7),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key),
                                                            SecurityAlgorithms.HmacSha256)
            };

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(this.Ok(token));
        }
Beispiel #3
0
 public void Insert(UsersBindingModel model)
 {
     using (var context = new AdBoardDatabase())
     {
         context.Users.Add(CreateModel(model, new Users()));
         context.SaveChanges();
     }
 }
Beispiel #4
0
 public IActionResult Edit(UsersBindingModel model)
 {
     if (ModelState.IsValid)
     {
         user.Update(model);
         return(RedirectToAction(nameof(Index)));
     }
     return(View(model));
 }
Beispiel #5
0
 private User CreateModel(UsersBindingModel model, User user, Database context)
 {
     user.Email       = model.Email;
     user.FIO         = model.FIO;
     user.PhoneNumber = model.PhoneNumber;
     user.Status      = model.Status;
     user.Password    = model.Password;
     return(user);
 }
Beispiel #6
0
 private Users CreateModel(UsersBindingModel model, Users user)
 {
     user.Username      = model.Username;
     user.Login         = model.Login;
     user.Password      = model.Password;
     user.Phone         = model.Phone;
     user.IsAdmin       = model.IsAdmin;
     user.IsVerificated = model.IsVerificated;
     return(user);
 }
        public async Task <IActionResult> Register([FromBody] UsersBindingModel bindingModel)
        {
            this.context.Users.Add(new User
            {
                Username = bindingModel.Username,
                Password = bindingModel.Password
            });

            await this.context.SaveChangesAsync();

            return(this.Ok());
        }
Beispiel #8
0
        public void Delete(UsersBindingModel model)
        {
            var element = _userStorage.GetElement(new UsersBindingModel
            {
                Id = model.Id
            });

            if (element == null)
            {
                throw new Exception("Пользователь не найден");
            }
            _userStorage.Delete(model);
        }
Beispiel #9
0
 public List <UsersViewModel> Read(UsersBindingModel model)
 {
     if (model == null)
     {
         return(_userStorage.GetFullList());
     }
     if (model.Id.HasValue)
     {
         return(new List <UsersViewModel> {
             _userStorage.GetElement(model)
         });
     }
     return(_userStorage.GetFilteredList(model));
 }
Beispiel #10
0
 public void Update(UsersBindingModel model)
 {
     using (var context = new AdBoardDatabase())
     {
         var element = context.Users.FirstOrDefault(rec => rec.Id ==
                                                    model.Id);
         if (element == null)
         {
             throw new Exception("Клиент не найден");
         }
         CreateModel(model, element);
         context.SaveChanges();
     }
 }
Beispiel #11
0
 public void Delete(UsersBindingModel model)
 {
     using (var context = new AdBoardDatabase())
     {
         Users element = context.Users.FirstOrDefault(rec => rec.Id ==
                                                      model.Id);
         if (element != null)
         {
             context.Users.Remove(element);
             context.SaveChanges();
         }
         else
         {
             throw new Exception("Клиент не найден");
         }
     }
 }
Beispiel #12
0
        public void CreateOrUpdate(UsersBindingModel model)
        {
            var element = _userStorage.GetElement(new UsersBindingModel
            {
                Login = model.Login
            });

            if (element != null && element.Id != model.Id)
            {
                throw new Exception("Уже есть пользователь с таким логином");
            }
            if (model.Id.HasValue)
            {
                _userStorage.Update(model);
            }
            else
            {
                _userStorage.Insert(model);
            }
        }
Beispiel #13
0
        public void Update(UsersBindingModel model)
        {
            var element = _user.GetElement(new UsersBindingModel
            {
                FIO = model.FIO
            });

            if (element != null && element.Id != model.Id)
            {
                throw new Exception("Уже есть клиент с таким логином");
            }
            if (model.Id.HasValue)
            {
                _user.Update(model);
            }
            else
            {
                _user.Insert(model);
            }
        }
Beispiel #14
0
 public List <UsersViewModel> GetFilteredList(UsersBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new AdBoardDatabase())
     {
         return(context.Users
                .Where(rec => rec.Login == model.Login && rec.Password == model.Password)
                .Select(rec => new UsersViewModel
         {
             Id = rec.Id,
             Username = rec.Username,
             Login = rec.Login,
             Password = rec.Password,
             Phone = rec.Phone,
             IsAdmin = rec.IsAdmin,
             IsVerificated = rec.IsVerificated
         })
                .ToList());
     }
 }
Beispiel #15
0
        public void Insert(UsersBindingModel model)
        {
            using (var context = new Database())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        User cost = new User();
                        context.Users.Add(cost);
                        CreateModel(model, cost, context);
                        context.SaveChanges();

                        transaction.Commit();
                    }
                    catch
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }
        }
Beispiel #16
0
 public UsersViewModel GetElement(UsersBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new AdBoardDatabase())
     {
         var user = context.Users
                    .FirstOrDefault(rec => rec.Login == model.Login || rec.Id == model.Id);
         return(user != null ?
                new UsersViewModel
         {
             Id = user.Id,
             Username = user.Username,
             Login = user.Login,
             Password = user.Password,
             Phone = user.Phone,
             IsAdmin = user.IsAdmin,
             IsVerificated = user.IsVerificated
         } :
                null);
     }
 }