Beispiel #1
0
        public static async Task InitializeAsync(UserManager <DutUser> userManager, RoleManager <DutRole> roleManager)
        {
            var defaultUser     = "******";
            var defaultPassword = "******";

            if (await roleManager.FindByNameAsync("admin") == null)
            {
                await roleManager.CreateAsync(new DutRole("admin"));
            }

            if (await roleManager.FindByNameAsync("user") == null)
            {
                await roleManager.CreateAsync(new DutRole("user"));
            }

            if (await userManager.FindByNameAsync(defaultUser) == null)
            {
                var dutUser = new DutUser {
                    UserName = defaultUser
                };
                var result = await userManager.CreateAsync(dutUser, defaultPassword);

                if (result.Succeeded)
                {
                    await userManager.AddToRoleAsync(dutUser, "admin");
                }
            }
        }
Beispiel #2
0
        public async Task <OperationDetails> Create(DutUser userDto, string password)
        {
            var user = await UserManager.FindByEmailAsync(userDto.Email);

            if (user != null)
            {
                return(new OperationDetails(false, "Користувач з таким email вже існує", "Email"));
            }

            var result = await UserManager.CreateAsync(userDto, password);

            if (result.Errors.Any())
            {
                return(new OperationDetails(false, result.Errors.FirstOrDefault(), ""));
            }

            // Добавить роль
            await UserManager.AddToRoleAsync(userDto.Id, "user");

            // Создание профиля клиента
            ClientProfile clientProfile = new ClientProfile {
                Id = userDto.Id, FullName = userDto.ClientProfile.FullName
            };

            UserProfileRepository.Add(clientProfile);
            await SaveUser();

            return(new OperationDetails(true, "Реєстрація успішно пройдена", ""));
        }
Beispiel #3
0
        public async Task <OperationDetails> EditProfile(DutUser user)
        {
            var curus = await UserManager.FindByIdAsync(user.Id);

            if (curus == null)
            {
                return(new OperationDetails(false, "Користувач не знайдений", ""));
            }
            curus.ClientProfile.FullName = user.ClientProfile.FullName;
            curus.Email       = user.Email;
            curus.PhoneNumber = user.PhoneNumber;

            await SaveUser();

            return(new OperationDetails(true, "Данні збережені", ""));
        }
Beispiel #4
0
        // Инициализация БД  (начальная)
        public async Task SetInitialData(DutUser adminDto, List <string> roles)
        {
            foreach (var roleName in roles)
            {
                var role = await RoleManager.FindByNameAsync(roleName);

                if (role != null)
                {
                    continue;
                }

                role = new DutRole()
                {
                    Name = roleName
                };
                await RoleManager.CreateAsync(role);
            }
        }
Beispiel #5
0
        public static void SeedAdminAccount(this DutContext context, string userName, string passaword)
        {
            var userManager = new UserManager <DutUser>(new UserStore <DutUser>(context));

            var user = userManager.Find(userName, passaword);

            if (user != null)
            {
                return;
            }

            SeedUserRoles(context, new List <string> {
                "admin", "user"
            });

            user = new DutUser {
                UserName = userName
            };
            var result = userManager.Create(user, passaword);

            if (result.Succeeded)
            {
                var factory = new DataBaseFactory();
                factory.Get();
                userManager.AddToRole(user.Id, "admin");
                var m = new UserProfileRepository(factory);
                m.Add(new ClientProfile {
                    Id = user.Id, Enable = true, CreateDate = DateTime.Now
                });
                factory.Get().SaveChanges();
            }
            else
            {
                var e = new Exception("Could not add default account");

                var enumerator = result.Errors.GetEnumerator();
                foreach (var resultError in result.Errors)
                {
                    e.Data.Add(enumerator.Current, resultError);
                }
                throw e;
            }
        }