Exemplo n.º 1
0
 public async Task FirstDBInitializationAsync()
 {
     using (IDBWorker worker = kernel.Get <IDBWorker>())
     {
         await worker.FirstDBInitializationAsync();
     }
 }
Exemplo n.º 2
0
        public UserInfo Get(Guid userId)
        {
            UserInfo result = null;

            try
            {
                using (IDBWorker worker = kernel.Get <IDBWorker>())
                {
                    var user = worker.UserManager.Users.Where(u => u.Id == userId).First();

                    List <Guid> roles = new List <Guid>();
                    foreach (var item in user.Roles)
                    {
                        roles.Add(item.RoleId);
                    }

                    result = new UserInfo
                    {
                        Id          = user.Id,
                        Name        = user.UserName,
                        PhoneNumber = user.PhoneNumber,
                        ProfileId   = user.UserProfileId,
                        Roles       = roles
                    };
                }
            }
            catch (InvalidOperationException ioex)
            {
            }
            catch (Exception ex)
            {
            }

            return(result);
        }
Exemplo n.º 3
0
        public IEnumerable <UserInfo> GetAll()
        {
            IEnumerable <UserInfo> result = null;
            List <UserMapper>      userMapper;

            try
            {
                using (IDBWorker worker = kernel.Get <IDBWorker>())
                {
                    userMapper =
                        (from u in worker.UserManager.Users.Include(u => u.Roles)
                         from r in u.Roles
                         select new UserMapper
                    {
                        Id = u.Id,
                        Name = u.UserName,
                        PhoneNumber = u.PhoneNumber,
                        ProfileId = u.UserProfileId,
                        RoleId = r.RoleId
                    })
                        .AsNoTracking()
                        .ToList();
                }

                result = Mapping(userMapper);
            }
            catch (Exception ex)
            {
            }

            return(result);
        }
Exemplo n.º 4
0
        public async Task <IEnumerable <string> > AuthorizationAsync(string userName)
        {
            using (IDBWorker worker = kernel.Get <IDBWorker>())
            {
                ApplicationUser user = await worker.UserManager.FindByNameAsync(userName);

                return(await worker.UserManager.GetRolesAsync(user.Id));
            }
        }
Exemplo n.º 5
0
        private async Task <Guid> UpdateProfileAsync(IDBWorker worker, UserProfileIn profile)
        {
            UserProfile entity = null;

            entity            = worker.UserProfileRepository.GetById(profile.Id);
            entity.Surname    = profile.Surname;
            entity.FirstName  = profile.FirstName;
            entity.Patronymic = profile.Patronymic;

            worker.UserProfileRepository.Update(entity);

            await worker.SaveAsync();

            return(entity.Id);
        }
Exemplo n.º 6
0
        public async Task <ResultRequest> RemoveAsync(Guid userId)
        {
            ResultRequest resultRequest = new ResultRequest {
                Type = ResultRequestType.Success, Message = ""
            };

            try
            {
                using (IDBWorker worker = kernel.Get <IDBWorker>())
                {
                    var user = await worker.UserManager.FindByIdAsync(userId);

                    var profile = worker.UserProfileRepository.Remove(user.UserProfile);
                    var result  = await worker.UserManager.DeleteAsync(user);

                    await worker.SaveAsync();

                    if (!result.Succeeded)
                    {
                        resultRequest = new ResultRequest {
                            Type = ResultRequestType.Error, Message = string.Join(",", result.Errors)
                        };
                    }
                }
            }
            catch (InvalidOperationException ioex)
            {
                resultRequest = new ResultRequest {
                    Type = ResultRequestType.Error, Message = ioex.Message
                };
            }
            catch (Exception ex)
            {
                resultRequest = new ResultRequest {
                    Type = ResultRequestType.Error, Message = ex.Message
                };
            }

            return(resultRequest);
        }
Exemplo n.º 7
0
        public async Task <UserProfileOut> GetAsync(Guid userProfileId)
        {
            using (IDBWorker worker = kernel.Get <IDBWorker>())
            {
                UserProfileOut result = new UserProfileOut();


                if (!userProfileId.Equals(Guid.Empty))
                {
                    UserProfileMapper profile = await worker.UserProfileRepository.FindByIdAsync(userProfileId);

                    result = new UserProfileOut
                    {
                        Id         = profile.Id,
                        FirstName  = profile.FirstName,
                        Patronymic = profile.Patronymic,
                        Surname    = profile.Surname
                    };
                }
                return(result);
            }
        }
Exemplo n.º 8
0
        public async Task <AuthenticationOut> AuthenticationAsync(AuthenticationInfo info)
        {
            AuthenticationOut result = new AuthenticationOut();

            try
            {
                using (IDBWorker worker = kernel.Get <IDBWorker>())
                {
                    ApplicationUser user = await worker.UserManager.FindByNameAsync(info.UserName);

                    if (user != null)
                    {
                        bool isCheckSuccess = await worker.UserManager.CheckPasswordAsync(user, info.Password);

                        if (isCheckSuccess)
                        {
                            result.UserId      = user.Id;
                            result.Result.Type = ResultRequestType.Success;
                        }
                        else
                        {
                            result.Result.Type    = ResultRequestType.Error;
                            result.Result.Message = "Не верный логин или пароль";
                        }
                    }
                    else
                    {
                        result.Result.Type    = ResultRequestType.Error;
                        result.Result.Message = "Выберите, пожалуйста, пользователя.";
                    }
                }
            }
            catch (Exception ex)
            {
            }

            return(result);
        }
Exemplo n.º 9
0
        public async Task SaveAsync(UserProfileIn model)
        {
            UserProfile entity;

            try
            {
                using (IDBWorker worker = kernel.Get <IDBWorker>())
                {
                    if (worker.UserProfileRepository.IsExist(model.Id))
                    {
                        entity            = worker.UserProfileRepository.GetById(model.Id);
                        entity.FirstName  = model.FirstName;
                        entity.Patronymic = model.Patronymic;
                        entity.Surname    = model.Surname;

                        worker.UserProfileRepository.Update(entity);
                        await worker.SaveAsync();
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Exemplo n.º 10
0
        public async Task <UserManagerOut> SaveAsync(UserManagerIn model)
        {
            //UserManagerOut result = new UserManagerOut { Result = new ResultRequest { Type = ResultRequestType.Error } };
            ApplicationUser userEntity = null;
            UserManagerOut  result     = new UserManagerOut();

            try
            {
                using (IDBWorker worker = kernel.Get <IDBWorker>())
                {
                    if (model.Id.Equals(Guid.Empty))
                    {
                        UserProfile profileEntity = worker.UserProfileRepository.Add(new UserProfile
                        {
                            Surname    = model.Profile.Surname,
                            FirstName  = model.Profile.FirstName,
                            Patronymic = model.Profile.Patronymic,
                            IsRemove   = false,
                            IsNecessaryChangePassword = false
                        });

                        userEntity = new ApplicationUser
                        {
                            Id          = Guid.NewGuid(),
                            UserName    = Person.FIO(profileEntity.Surname, profileEntity.FirstName, profileEntity.Patronymic),
                            UserProfile = profileEntity
                        };

                        await worker.UserManager.CreateAsync(userEntity, model.Password);

                        result.UserId    = userEntity.Id;
                        result.ProfileId = profileEntity.Id;
                    }
                    else
                    {
                        userEntity = await worker.UserManager.FindByIdAsync(model.Id);

                        userEntity.UserName = Person.FIO(model.Profile.Surname, model.Profile.FirstName, model.Profile.Patronymic);

                        result.UserId    = userEntity.Id;
                        result.ProfileId = await UpdateProfileAsync(worker, model.Profile);

                        if (!string.IsNullOrWhiteSpace(model.Password))
                        {
                            await worker.UserManager.RemovePasswordAsync(userEntity.Id);

                            await worker.UserManager.AddPasswordAsync(userEntity.Id, model.Password);
                        }

                        await worker.SaveAsync();
                    }

                    var oldRoles = await worker.UserManager.GetRolesAsync(userEntity.Id);

                    await worker.UserManager.RemoveFromRolesAsync(userEntity.Id, oldRoles.ToArray());

                    var newRoles = model.Roles.Select(r => r.Name).ToArray();
                    await worker.UserManager.AddToRolesAsync(userEntity.Id, newRoles);
                }
            }
            catch (InvalidOperationException ioex)
            {
            }
            catch (Exception ex)
            {
            }

            return(result);
        }