public override async Task <ApiResult <PrintingHouseSelectDto> > Create(PrintingHouseDto dto, CancellationToken cancellationToken)
        {
            dto.UserDto.PhoneNumber = dto.UserDto.UserName;
            var user    = dto.UserDto.ToEntity(Mapper);
            var addUser = await _userManager.CreateAsync(user, dto.UserDto.Password);

            user = await _userManager.FindByNameAsync(user.UserName);

            var addToRole = await _userManager.AddToRoleAsync(user, PredefinedRoles.PrintingHouse.ToString());

            //var userSelectDto = await _userRepository.TableNoTracking.ProjectTo<UserSelectDto>(Mapper.ConfigurationProvider)
            //    .SingleOrDefaultAsync(p => p.Id.Equals(user.Id), cancellationToken);

            var printingHouseWallet = new PrintingHouseWallet
            {
                Iban = dto.Iban,
                Cash = 0
            };
            await _phWalletRepository.AddAsync(printingHouseWallet, cancellationToken);

            var printingHouse = dto.ToEntity(Mapper);

            printingHouse.PrintingHouseWalletId = printingHouseWallet.Id;
            printingHouse.User   = user;
            printingHouse.Wallet = printingHouseWallet;
            await Repository.AddAsync(printingHouse, cancellationToken);

            var resultDto = await Repository.TableNoTracking
                            .Include(ph => ph.User)
                            .Include(ph => ph.Wallet)
                            .ProjectTo <PrintingHouseSelectDto>(Mapper.ConfigurationProvider)
                            .SingleOrDefaultAsync(p => p.Id.Equals(printingHouse.Id), cancellationToken);

            //resultDto.UserSelectDto = userSelectDto;
            //return resultDto;

            var jwt = await _jwtService.GenerateAsync(user);

            var token = new TokenSelectRequest
            {
                access_token = jwt.access_token,
                expires_in   = jwt.expires_in
            };

            resultDto.TokenSelectRequest = token;
            return(resultDto);
        }
Esempio n. 2
0
        public async Task InitializeUsers()
        {
            if (!_userManager.Users.AsNoTracking().Any(p => p.UserName == "admin"))
            {
                var user = new User
                {
                    UserName = "******",
                    Email    = "*****@*****.**",
                    IsActive = true
                };
                var addUser = _userManager.CreateAsync(user, "123123").GetAwaiter().GetResult();
                if (addUser.Succeeded)
                {
                    User admin     = _userManager.FindByNameAsync(user.UserName).GetAwaiter().GetResult();
                    var  addToRole = _userManager.AddToRoleAsync(admin, PredefinedRoles.Admin.ToString()).GetAwaiter().GetResult();
                }
            }
            if (!_userManager.Users.AsNoTracking().Any(p => p.UserName == "1111"))
            {
                var user = new User
                {
                    UserName = "******",
                    Email    = "*****@*****.**",
                    IsActive = true
                };
                var addUser = _userManager.CreateAsync(user, "123123").GetAwaiter().GetResult();
                if (addUser.Succeeded)
                {
                    User admin     = _userManager.FindByNameAsync(user.UserName).GetAwaiter().GetResult();
                    var  addToRole = _userManager.AddToRoleAsync(admin, PredefinedRoles.PrintingHouse.ToString()).GetAwaiter().GetResult();
                }

                var printingHouseWallet = new PrintingHouseWallet
                {
                    Iban = "111111111111",
                    Cash = 0
                };
                _phWalletRepository.Add(printingHouseWallet);

                var printingHouse = new PrintingHouse
                {
                    User   = user,
                    Name   = "کارخانه نقش الماس",
                    UserId = user.Id,
                    Wallet = printingHouseWallet,
                    PrintingHouseWalletId = printingHouseWallet.Id,
                    Star = 4.3
                };

                _printingHouseRepository.Add(printingHouse);

                var serviceMappings = new List <ServiceMapping>
                {
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 1
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 2
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 3
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 5
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 6
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 7
                    },
                };
                _smRepository.AddRange(serviceMappings);
            }
            if (!_userManager.Users.AsNoTracking().Any(p => p.UserName == "2222"))
            {
                var user = new User
                {
                    UserName = "******",
                    Email    = "*****@*****.**",
                    IsActive = true
                };
                var addUser = _userManager.CreateAsync(user, "123123").GetAwaiter().GetResult();
                if (addUser.Succeeded)
                {
                    User admin     = _userManager.FindByNameAsync(user.UserName).GetAwaiter().GetResult();
                    var  addToRole = _userManager.AddToRoleAsync(admin, PredefinedRoles.PrintingHouse.ToString()).GetAwaiter().GetResult();
                }

                var printingHouseWallet = new PrintingHouseWallet
                {
                    Iban = "222222222222",
                    Cash = 0
                };
                _phWalletRepository.Add(printingHouseWallet);

                var printingHouse = new PrintingHouse
                {
                    User   = user,
                    Name   = "کارخانه ابلک و پسران",
                    UserId = user.Id,
                    Wallet = printingHouseWallet,
                    PrintingHouseWalletId = printingHouseWallet.Id,
                    Star = 4.5
                };

                _printingHouseRepository.Add(printingHouse);

                var serviceMappings = new List <ServiceMapping>
                {
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 2
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 3
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 4
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 5
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 6
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 8
                    },
                };
                _smRepository.AddRange(serviceMappings);
            }
            if (!_userManager.Users.AsNoTracking().Any(p => p.UserName == "3333"))
            {
                var user = new User
                {
                    UserName = "******",
                    Email    = "*****@*****.**",
                    IsActive = true
                };
                var addUser = _userManager.CreateAsync(user, "123123").GetAwaiter().GetResult();
                if (addUser.Succeeded)
                {
                    User admin     = _userManager.FindByNameAsync(user.UserName).GetAwaiter().GetResult();
                    var  addToRole = _userManager.AddToRoleAsync(admin, PredefinedRoles.PrintingHouse.ToString()).GetAwaiter().GetResult();
                }

                var printingHouseWallet = new PrintingHouseWallet
                {
                    Iban = "333333333333",
                    Cash = 0
                };
                _phWalletRepository.Add(printingHouseWallet);

                var printingHouse = new PrintingHouse
                {
                    User   = user,
                    Name   = "کارخانه سید هاشم",
                    UserId = user.Id,
                    Wallet = printingHouseWallet,
                    PrintingHouseWalletId = printingHouseWallet.Id,
                    Star = 4.7
                };

                _printingHouseRepository.Add(printingHouse);

                var serviceMappings = new List <ServiceMapping>
                {
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 1
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 2
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 3
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 4
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 5
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 7
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 8
                    },
                };
                _smRepository.AddRange(serviceMappings);
            }
            if (!_userManager.Users.AsNoTracking().Any(p => p.UserName == "4444"))
            {
                var user = new User
                {
                    UserName = "******",
                    Email    = "*****@*****.**",
                    IsActive = true
                };
                var addUser = _userManager.CreateAsync(user, "123123").GetAwaiter().GetResult();
                if (addUser.Succeeded)
                {
                    User admin     = _userManager.FindByNameAsync(user.UserName).GetAwaiter().GetResult();
                    var  addToRole = _userManager.AddToRoleAsync(admin, PredefinedRoles.PrintingHouse.ToString()).GetAwaiter().GetResult();
                }

                var printingHouseWallet = new PrintingHouseWallet
                {
                    Iban = "444444444444",
                    Cash = 0
                };
                _phWalletRepository.Add(printingHouseWallet);

                var printingHouse = new PrintingHouse
                {
                    User   = user,
                    Name   = "کارخانه حاج عبدالله",
                    UserId = user.Id,
                    Wallet = printingHouseWallet,
                    PrintingHouseWalletId = printingHouseWallet.Id,
                    Star = 4.2
                };

                _printingHouseRepository.Add(printingHouse);

                var serviceMappings = new List <ServiceMapping>
                {
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 1
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 3
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 4
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 5
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 6
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 7
                    },
                    new ServiceMapping {
                        PrintingHouseId = printingHouse.Id, CategoryId = 8
                    },
                };
                _smRepository.AddRange(serviceMappings);
            }
        }