コード例 #1
0
        //tested
        public async Task <OperationDetails> Delete(UserDTO userDto)
        {
            if (userDto.UserName == null)
            {
                userDto.UserName = userDto.ProfileUser.UNP;
            }

            BezvizUser user = await Database.UserManager.FindByNameAsync(userDto.UserName);

            if (user != null)
            {
                try
                {
                    Database.OperatorManager.Delete(user.Id);
                    var result = await Database.UserManager.DeleteAsync(user);

                    if (result.Succeeded)
                    {
                        return(new OperationDetails(true, "Пользователь успешно удален", ""));
                    }
                    else
                    {
                        return(new OperationDetails(false, result.Errors.FirstOrDefault(), ""));
                    }
                }
                catch (Exception ex)
                {
                    return(new OperationDetails(false, ex.Message, ""));
                }
            }
            else
            {
                return(new OperationDetails(false, "Пользователь не найден", "UserName"));
            }
        }
コード例 #2
0
        public void Add_User_UnitOfWork()
        {
            BezvizUser user = new BezvizUser
            {
                UserName        = "******",
                OperatorProfile = new OperatorProfile
                {
                    UNP  = "123",
                    OKPO = "123",
                }
            };

            var result = uow.UserManager.FindByName(user.UserName);

            if (result != null)
            {
                var profileFind = uow.OperatorManager.GetById(result.Id);
                uow.OperatorManager.Delete(profileFind.Id);
                uow.UserManager.Delete(result);
            }

            uow.UserManager.Create(user);
            var resultUser    = context.Users.Where(u => u.UserName == "Egor").FirstOrDefault();
            var resultProfile = context.OperatorProfiles.Where(p => p.UNP == "123").FirstOrDefault();

            Assert.IsNotNull(resultUser);
            Assert.IsNotNull(resultProfile);

            uow.OperatorManager.Delete(user.Id);
            uow.UserManager.Delete(user);
        }
コード例 #3
0
        public override Task <IdentityResult> DeleteAsync(BezvizUser user)
        {
            var listNew = list.ToList();

            listNew.Remove(user);
            return(Task.Run(() => { list = listNew.AsEnumerable(); return IdentityResult.Success; }));
        }
コード例 #4
0
        public FromDALToBLLProfileWithModelUser(BezvizUser model)
        {
            CreateMap <UserDTO, BezvizUser>().ConstructUsing(v => model).
            ForMember(dest => dest.OperatorProfile, opt => opt.MapFrom(src => src.ProfileUser));

            CreateMap <ProfileUserDTO, OperatorProfile>().ConstructUsing(v => model.OperatorProfile);
        }
コード例 #5
0
        public override Task <IdentityResult> CreateAsync(BezvizUser user, string password)
        {
            var newList = list.ToList();

            newList.Add(user);
            var newProfiles = profiles.ToList();

            newProfiles.Add(user.OperatorProfile);
            profiles = newProfiles.AsEnumerable();
            return(Task.Run(() => { list = newList.AsEnumerable(); return IdentityResult.Success; }));
        }
コード例 #6
0
        //tested
        public async Task <ClaimsIdentity> Authenticate(UserDTO userDto)
        {
            ClaimsIdentity claim = null;
            // find user
            BezvizUser user = await Database.UserManager.FindAsync(userDto.UserName, userDto.Password);

            // авторизуем его и возвращаем объект ClaimsIdentity
            if (user != null)
            {
                claim = await Database.UserManager.CreateIdentityAsync(user,
                                                                       DefaultAuthenticationTypes.ApplicationCookie);
            }
            return(claim);
        }
コード例 #7
0
        //tested
        public async Task <OperationDetails> Create(UserDTO userDto)
        {
            if (userDto.ProfileUser.UNP == null && userDto.UserName == null)
            {
                return(new OperationDetails(true, "Имя пользователя не указано", ""));
            }
            if (userDto.ProfileUser == null)
            {
                return(new OperationDetails(true, "Профайл пользователя не заполнен", ""));
            }

            if (userDto.UserName == null)
            {
                userDto.UserName = userDto.ProfileUser.UNP;
            }

            BezvizUser user = await Database.UserManager.FindByNameAsync(userDto.UserName);

            if (user == null)
            {
                try
                {
                    user = mapper.Map <UserDTO, BezvizUser>(userDto);
                    user.OperatorProfile.DateInSystem = DateTime.Now;
                    var result = await Database.UserManager.CreateAsync(user, userDto.Password);

                    if (result.Errors.Count() > 0)
                    {
                        return(new OperationDetails(false, result.Errors.FirstOrDefault(), ""));
                    }
                    // добавляем роль
                    if (userDto.ProfileUser.Role != null)
                    {
                        await Database.UserManager.AddToRoleAsync(user.Id, userDto.ProfileUser.Role);
                    }
                    await Database.SaveAsync();

                    return(new OperationDetails(true, "Пользователь успешно создан", ""));
                }
                catch (Exception ex)
                {
                    return(new OperationDetails(false, ex.Message, ""));
                }
            }
            else
            {
                return(new OperationDetails(false, "Пользователь с таким именем уже существует", "UserName"));
            }
        }
コード例 #8
0
        public async Task Update_User_UnitOfWork()
        {
            BezvizUser user = new BezvizUser
            {
                UserName        = "******",
                OperatorProfile = new OperatorProfile
                {
                    UNP  = "123",
                    OKPO = "123",
                }
            };

            var result = uow.UserManager.FindByName(user.UserName);

            if (result != null)
            {
                uow.OperatorManager.Delete(result.Id);
                uow.UserManager.Delete(result);
            }

            var createUserResult = uow.UserManager.Create(user);

            if (createUserResult.Succeeded)
            {
                var testUser = await uow.UserManager.FindByIdAsync(user.Id);

                testUser.OperatorProfile.Transcript = "Transcript";
                testUser.Email = "*****@*****.**";
                var updateResult = await uow.UserManager.UpdateAsync(testUser);

                Assert.IsTrue(updateResult.Succeeded);

                uow.OperatorManager.Delete(user.Id);
                uow.UserManager.Delete(user);
            }
        }