Beispiel #1
0
        public async Task <IActionResult> Register(UserForRegisterDto userForRegisterDto)
        {
            var model = new ApiReturn <UserForDetailedDto>
            {
                Status = true
            };

            userForRegisterDto.UserName = userForRegisterDto.UserName.ToMobile();
            if (userForRegisterDto.UserName == null)
            {
                model.Status  = false;
                model.Message = "شماره موبایل صحیح نمیباشد مثال : 09121234567";
                return(BadRequest(model));
            }
            var OtpId = userForRegisterDto.UserName + "-OTP";
            //
            var code = await _db.VerificationCodeRepository.GetByIdAsync(OtpId);

            if (code == null)
            {
                errorModel.Message = "کد فعالسازی صحیح نمباشد اقدام به ارسال دوباره ی کد بکنید";
                return(BadRequest(errorModel));
            }
            if (code.ExpirationDate < DateTime.Now)
            {
                _db.VerificationCodeRepository.Delete(OtpId);
                await _db.SaveAsync();

                errorModel.Message = "کد فعالسازی منقضی شده است اقدام به ارسال دوباره ی کد بکنید";
                return(BadRequest(errorModel));
            }
            if (code.Code == userForRegisterDto.Code)
            {
                var userToCreate = new Data.Models.MainDB.User
                {
                    UserName             = userForRegisterDto.UserName,
                    Name                 = userForRegisterDto.Name,
                    PhoneNumber          = userForRegisterDto.UserName,
                    Address              = "",
                    City                 = "",
                    Gender               = true,
                    DateOfBirth          = DateTime.Now,
                    IsActive             = true,
                    Status               = true,
                    PhoneNumberConfirmed = true
                };
                var photoToCreate = new Photo
                {
                    UserId = userToCreate.Id,
                    Url    = string.Format("{0}://{1}{2}/{3}",
                                           Request.Scheme,
                                           Request.Host.Value ?? "",
                                           Request.PathBase.Value ?? "",
                                           "wwwroot/Files/Pic/profilepic.png"), //"https://res.cloudinary.com/keyone2693/image/upload/v1561717720/768px-Circle-icons-profile.svg.png",
                    Description = "Profile Pic",
                    Alt         = "Profile Pic",
                    IsMain      = true,
                    PublicId    = "0"
                };
                var notifyToCreate = new Notification
                {
                    UserId         = userToCreate.Id,
                    EnterEmail     = true,
                    EnterSms       = false,
                    EnterTelegram  = true,
                    ExitEmail      = true,
                    ExitSms        = false,
                    ExitTelegram   = true,
                    LoginEmail     = true,
                    LoginSms       = false,
                    LoginTelegram  = true,
                    TicketEmail    = true,
                    TicketSms      = false,
                    TicketTelegram = true
                };
                var walletMain = new Wallet
                {
                    UserId      = userToCreate.Id,
                    Name        = "اصلی ماد پی",
                    IsMain      = true,
                    IsSms       = false,
                    Inventory   = 0,
                    InterMoney  = 0,
                    ExitMoney   = 0,
                    OnExitMoney = 0
                };
                var walletSms = new Wallet
                {
                    UserId      = userToCreate.Id,
                    Name        = "پیامک",
                    IsMain      = false,
                    IsSms       = true,
                    Inventory   = 0,
                    InterMoney  = 0,
                    ExitMoney   = 0,
                    OnExitMoney = 0
                };

                var result = await _userManager.CreateAsync(userToCreate, userForRegisterDto.Password);

                if (result.Succeeded)
                {
                    await _authService.AddUserPreNeededAsync(photoToCreate, notifyToCreate, walletMain, walletSms);

                    var creaatedUser = await _userManager.FindByNameAsync(userToCreate.UserName);

                    await _userManager.AddToRolesAsync(creaatedUser, new[] { "User" });

                    var userForReturn = _mapper.Map <UserForDetailedDto>(userToCreate);

                    _logger.LogInformation($"{userForRegisterDto.Name} - {userForRegisterDto.UserName} ثبت نام کرده است");
                    //
                    model.Message = "ثبت نام شما با موفقیت انجام شد";
                    model.Result  = userForReturn;
                    return(CreatedAtRoute("GetUser", new
                    {
                        controller = "Users",
                        v = HttpContext.GetRequestedApiVersion().ToString(),
                        id = userToCreate.Id
                    }, model));
                }
                else if (result.Errors.Any())
                {
                    _logger.LogWarning(result.Errors.First().Description);
                    //
                    errorModel.Message = result.Errors.First().Description;
                    return(BadRequest(errorModel));
                }
                else
                {
                    errorModel.Message = "خطای نامشخص";
                    return(BadRequest(errorModel));
                }
            }
            else
            {
                errorModel.Message = "کد فعالسازی صحیح نمباشد اقدام به ارسال دوباره ی کد بکنید";
                return(BadRequest(errorModel));
            }
        }
Beispiel #2
0
        public void SeedUsers()
        {
            System.Console.WriteLine("Adding Migrations ...");

            try
            {
                _dbLog.Database.Migrate();
                _dbMain.Database.Migrate();
                _dbFinancial.Database.Migrate();
            }
            catch (Exception ex) {
                _logger.LogWarning(ex.Message);
            }



            if (!_dbMain.Settings.Any(p => p.Id == 1))
            {
                _dbMain.Settings.Add(new Setting
                {
                    CloudinaryCloudName = "keyone2693",
                    CloudinaryAPIKey    = "392574657416383",
                    CloudinaryAPISecret = "J7nBtA2rjiyvYmhYUWwe8-sATCs",
                    UploadLocal         = true
                });

                _dbMain.SaveChanges();
            }

            if (!_userManager.Users.Any())
            {
                System.Console.WriteLine("Adding Data ...");

                var userData = "[  {    \"Username\": \"[email protected]\",    \"Name\": \"Stanton Hatfield\",    \"PhoneNumber\": \"+98 (860) 501-3004\",    \"Address\": \"733 Lombardy Street, Emison, Federated States Of Micronesia, 6618\",    \"Gender\": true,    \"City\": \"Cowiche\",    \"IsActive\": true,    \"Status\": false,    \"DateOfBirth\": \"2001-03-03\",    \"Photos\": [      {        \"Url\": \"https://randomuser.me/api/portraits/men/40.jpg\",        \"Alt\": \"Fugiat ut incididunt quis exercitation nisi est aute commodo dolore laborum fugiat veniam aliqua.\",        \"IsMain\": true,        \"Description\": \"Ullamco sunt qui pariatur incididunt.\"      }    ],    \"BankCards\": [      {        \"Approve\": false,        \"BankName\": \"Anastasia}\",        \"OwnerName\": \"Matthews Landry\",        \"Shaba\": \"IR 0236598000215632014598002\",        \"CardNumber\": 5986320015498532,        \"ExpireDateMonth\": 98,        \"ExpireDateYear\": 4      }    ],    \"Notifications\": [      {        \"EnterEmail\": true,        \"EnterSms\": false,        \"EnterTelegram\": true,        \"ExitEmail\": true,        \"ExitSms\": false,        \"ExitTelegram\": true,        \"TicketEmail\": true,        \"TicketSms\": false,        \"TicketTelegram\": true,        \"LoginEmail\": true,        \"LoginSms\": false,        \"LoginTelegram\": true      }    ],    \"Wallets\": [      {        \"IsMain\": true,        \"IsSms\": false,        \"Name\": 'اصلی ماد پی',        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      },      {        \"IsMain\": false,        \"IsSms\": true,        \"Name\": \"پیامک\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      }    ]  },  {    \"Username\": \"[email protected]\",    \"Name\": \"Cruz Lyons\",    \"PhoneNumber\": \"+98 (962) 580-2615\",    \"Address\": \"338 Tampa Court, Cumberland, Utah, 4341\",    \"Gender\": true,    \"City\": \"Glendale\",    \"IsActive\": false,    \"Status\": false,    \"DateOfBirth\": \"1995-09-17\",    \"Photos\": [      {        \"Url\": \"https://randomuser.me/api/portraits/men/92.jpg\",        \"Alt\": \"Veniam reprehenderit occaecat laborum non tempor ipsum irure velit elit deserunt fugiat.\",        \"IsMain\": true,        \"Description\": \"Lorem duis ea labore aliquip ullamco.\"      }    ],    \"BankCards\": [      {        \"Approve\": false,        \"BankName\": \"Newman}\",        \"OwnerName\": \"Hays Mathis\",        \"Shaba\": \"IR 0236598000215632014598002\",        \"CardNumber\": 5986320015498532,        \"ExpireDateMonth\": 98,        \"ExpireDateYear\": 4      }    ],    \"Notifications\": [      {        \"EnterEmail\": true,        \"EnterSms\": false,        \"EnterTelegram\": true,        \"ExitEmail\": true,        \"ExitSms\": false,        \"ExitTelegram\": true,        \"TicketEmail\": true,        \"TicketSms\": false,        \"TicketTelegram\": true,        \"LoginEmail\": true,        \"LoginSms\": false,        \"LoginTelegram\": true      }    ],    \"Wallets\": [      {        \"IsMain\": true,        \"IsSms\": false,        \"Name\": \"اصلی ماد پی\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      },      {        \"IsMain\": false,        \"IsSms\": true,        \"Name\": \"پیامک\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      }    ]  },  {    \"Username\": \"[email protected]\",    \"Name\": \"Holloway Vasquez\",    \"PhoneNumber\": \"+98 (897) 595-3446\",    \"Address\": \"962 Sutton Street, Grimsley, Maryland, 8508\",    \"Gender\": true,    \"City\": \"Evergreen\",    \"IsActive\": true,    \"Status\": false,    \"DateOfBirth\": \"1951-11-23\",    \"Photos\": [      {        \"Url\": \"https://randomuser.me/api/portraits/men/70.jpg\",        \"Alt\": \"Nulla ea eiusmod officia consequat aliquip deserunt magna adipisicing.\",        \"IsMain\": true,        \"Description\": \"Adipisicing veniam magna veniam minim eiusmod elit culpa elit dolore ex pariatur ullamco labore.\"      }    ],    \"BankCards\": [      {        \"Approve\": false,        \"BankName\": \"Madelyn}\",        \"OwnerName\": \"Edwards Ayers\",        \"Shaba\": \"IR 0236598000215632014598002\",        \"CardNumber\": 5986320015498532,        \"ExpireDateMonth\": 98,        \"ExpireDateYear\": 4      }    ],    \"Notifications\": [      {        \"EnterEmail\": true,        \"EnterSms\": false,        \"EnterTelegram\": true,        \"ExitEmail\": true,        \"ExitSms\": false,        \"ExitTelegram\": true,        \"TicketEmail\": true,        \"TicketSms\": false,        \"TicketTelegram\": true,        \"LoginEmail\": true,        \"LoginSms\": false,        \"LoginTelegram\": true      }    ],    \"Wallets\": [      {        \"IsMain\": true,        \"IsSms\": false,        \"Name\": \"اصلی ماد پی\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      },      {        \"IsMain\": false,        \"IsSms\": true,        \"Name\": \"پیامک\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      }    ]  },  {    \"Username\": \"[email protected]\",    \"Name\": \"Fitzgerald Taylor\",    \"PhoneNumber\": \"+98 (948) 528-3044\",    \"Address\": \"693 Pierrepont Street, Bayview, Northern Mariana Islands, 4905\",    \"Gender\": true,    \"City\": \"Highland\",    \"IsActive\": true,    \"Status\": true,    \"DateOfBirth\": \"1966-09-17\",    \"Photos\": [      {        \"Url\": \"https://randomuser.me/api/portraits/men/59.jpg\",        \"Alt\": \"Ex sunt sint nostrud aliqua.\",        \"IsMain\": true,        \"Description\": \"Fugiat magna veniam cillum nostrud adipisicing nostrud irure.\"      }    ],    \"BankCards\": [      {        \"Approve\": false,        \"BankName\": \"Boyer}\",        \"OwnerName\": \"Wiley Thomas\",        \"Shaba\": \"IR 0236598000215632014598002\",        \"CardNumber\": 5986320015498532,        \"ExpireDateMonth\": 98,        \"ExpireDateYear\": 4      }    ],    \"Notifications\": [      {        \"EnterEmail\": true,        \"EnterSms\": false,        \"EnterTelegram\": true,        \"ExitEmail\": true,        \"ExitSms\": false,        \"ExitTelegram\": true,        \"TicketEmail\": true,        \"TicketSms\": false,        \"TicketTelegram\": true,        \"LoginEmail\": true,        \"LoginSms\": false,        \"LoginTelegram\": true      }    ],    \"Wallets\": [      {        \"IsMain\": true,        \"IsSms\": false,        \"Name\": \"اصلی ماد پی\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      },      {        \"IsMain\": false,        \"IsSms\": true,        \"Name\": \"پیامک\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      }    ]  },  {    \"Username\": \"[email protected]\",    \"Name\": \"Wooten Holland\",    \"PhoneNumber\": \"+98 (899) 428-2702\",    \"Address\": \"376 Monitor Street, Westmoreland, Nevada, 5732\",    \"Gender\": true,    \"City\": \"Fairfield\",    \"IsActive\": true,    \"Status\": false,    \"DateOfBirth\": \"1999-01-12\",    \"Photos\": [      {        \"Url\": \"https://randomuser.me/api/portraits/men/75.jpg\",        \"Alt\": \"Minim adipisicing do ut nulla fugiat reprehenderit tempor nisi.\",        \"IsMain\": true,        \"Description\": \"Velit esse irure est voluptate consequat et aute.\"      }    ],    \"BankCards\": [      {        \"Approve\": false,        \"BankName\": \"Jane}\",        \"OwnerName\": \"Love Ochoa\",        \"Shaba\": \"IR 0236598000215632014598002\",        \"CardNumber\": 5986320015498532,        \"ExpireDateMonth\": 98,        \"ExpireDateYear\": 4      }    ],    \"Notifications\": [      {        \"EnterEmail\": true,        \"EnterSms\": false,        \"EnterTelegram\": true,        \"ExitEmail\": true,        \"ExitSms\": false,        \"ExitTelegram\": true,        \"TicketEmail\": true,        \"TicketSms\": false,        \"TicketTelegram\": true,        \"LoginEmail\": true,        \"LoginSms\": false,        \"LoginTelegram\": true      }    ],    \"Wallets\": [      {        \"IsMain\": true,        \"IsSms\": false,        \"Name\": \"اصلی ماد پی\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      },      {        \"IsMain\": false,        \"IsSms\": true,        \"Name\": \"پیامک\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      }    ]  },  {    \"Username\": \"[email protected]\",    \"Name\": \"Gabriela Sanchez\",    \"PhoneNumber\": \"+98 (935) 556-3405\",    \"Address\": \"452 Fairview Place, Leland, Georgia, 4226\",    \"Gender\": false,    \"City\": \"Eastmont\",    \"IsActive\": false,    \"Status\": false,    \"DateOfBirth\": \"1978-04-26\",    \"Photos\": [      {        \"Url\": \"https://randomuser.me/api/portraits/women/5.jpg\",        \"Alt\": \"Reprehenderit ipsum exercitation non est duis anim consequat deserunt eiusmod ex dolor.\",        \"IsMain\": true,        \"Description\": \"Deserunt enim in ullamco ea pariatur pariatur consequat ea aliquip adipisicing proident ullamco.\"      }    ],    \"BankCards\": [      {        \"Approve\": false,        \"BankName\": \"Cox}\",        \"OwnerName\": \"Ofelia Valenzuela\",        \"Shaba\": \"IR 0236598000215632014598002\",        \"CardNumber\": 5986320015498532,        \"ExpireDateMonth\": 98,        \"ExpireDateYear\": 4      }    ],    \"Notifications\": [      {        \"EnterEmail\": true,        \"EnterSms\": false,        \"EnterTelegram\": true,        \"ExitEmail\": true,        \"ExitSms\": false,        \"ExitTelegram\": true,        \"TicketEmail\": true,        \"TicketSms\": false,        \"TicketTelegram\": true,        \"LoginEmail\": true,        \"LoginSms\": false,        \"LoginTelegram\": true      }    ],    \"Wallets\": [      {        \"IsMain\": true,        \"IsSms\": false,        \"Name\": \"اصلی ماد پی\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      },      {        \"IsMain\": false,        \"IsSms\": true,        \"Name\": \"پیامک\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      }    ]  },  {    \"Username\": \"[email protected]\",    \"Name\": \"Laurie Holland\",    \"PhoneNumber\": \"+98 (907) 577-3936\",    \"Address\": \"688 Nassau Avenue, Jackpot, Puerto Rico, 4376\",    \"Gender\": false,    \"City\": \"Fidelis\",    \"IsActive\": false,    \"Status\": true,    \"DateOfBirth\": \"2011-05-21\",    \"Photos\": [      {        \"Url\": \"https://randomuser.me/api/portraits/women/72.jpg\",        \"Alt\": \"Reprehenderit ad qui pariatur et fugiat quis deserunt ex ea reprehenderit tempor irure minim.\",        \"IsMain\": true,        \"Description\": \"Id quis in in culpa culpa reprehenderit mollit nulla.\"      }    ],    \"BankCards\": [      {        \"Approve\": false,        \"BankName\": \"Phillips}\",        \"OwnerName\": \"Lina Cummings\",        \"Shaba\": \"IR 0236598000215632014598002\",        \"CardNumber\": 5986320015498532,        \"ExpireDateMonth\": 98,        \"ExpireDateYear\": 4      }    ],    \"Notifications\": [      {        \"EnterEmail\": true,        \"EnterSms\": false,        \"EnterTelegram\": true,        \"ExitEmail\": true,        \"ExitSms\": false,        \"ExitTelegram\": true,        \"TicketEmail\": true,        \"TicketSms\": false,        \"TicketTelegram\": true,        \"LoginEmail\": true,        \"LoginSms\": false,        \"LoginTelegram\": true      }    ],    \"Wallets\": [      {        \"IsMain\": true,        \"IsSms\": false,        \"Name\": \"اصلی ماد پی\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      },      {        \"IsMain\": false,        \"IsSms\": true,        \"Name\": \"پیامک\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      }    ]  },  {    \"Username\": \"[email protected]\",    \"Name\": \"Heather Garrison\",    \"PhoneNumber\": \"+98 (820) 593-2877\",    \"Address\": \"677 Ovington Avenue, Hannasville, Wisconsin, 8346\",    \"Gender\": false,    \"City\": \"Harleigh\",    \"IsActive\": true,    \"Status\": false,    \"DateOfBirth\": \"1999-04-06\",    \"Photos\": [      {        \"Url\": \"https://randomuser.me/api/portraits/women/53.jpg\",        \"Alt\": \"Occaecat ut amet nostrud consectetur in.\",        \"IsMain\": true,        \"Description\": \"Adipisicing amet magna dolore reprehenderit ad laboris qui elit adipisicing minim.\"      }    ],    \"BankCards\": [      {        \"Approve\": false,        \"BankName\": \"Mcintyre}\",        \"OwnerName\": \"Olive Porter\",        \"Shaba\": \"IR 0236598000215632014598002\",        \"CardNumber\": 5986320015498532,        \"ExpireDateMonth\": 98,        \"ExpireDateYear\": 4      }    ],    \"Notifications\": [      {        \"EnterEmail\": true,        \"EnterSms\": false,        \"EnterTelegram\": true,        \"ExitEmail\": true,        \"ExitSms\": false,        \"ExitTelegram\": true,        \"TicketEmail\": true,        \"TicketSms\": false,        \"TicketTelegram\": true,        \"LoginEmail\": true,        \"LoginSms\": false,        \"LoginTelegram\": true      }    ],    \"Wallets\": [      {        \"IsMain\": true,        \"IsSms\": false,        \"Name\": \"اصلی ماد پی\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      },      {        \"IsMain\": false,        \"IsSms\": true,        \"Name\": \"پیامک\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      }    ]  },  {    \"Username\": \"[email protected]\",    \"Name\": \"Delores Owen\",    \"PhoneNumber\": \"+98 (852) 491-3253\",    \"Address\": \"101 Stryker Court, Coral, Michigan, 2694\",    \"Gender\": false,    \"City\": \"Blandburg\",    \"IsActive\": true,    \"Status\": false,    \"DateOfBirth\": \"2007-09-11\",    \"Photos\": [      {        \"Url\": \"https://randomuser.me/api/portraits/women/79.jpg\",        \"Alt\": \"Est sunt cillum in irure consequat amet aute.\",        \"IsMain\": true,        \"Description\": \"Quis reprehenderit ex tempor ut excepteur dolore cillum.\"      }    ],    \"BankCards\": [      {        \"Approve\": false,        \"BankName\": \"Latasha}\",        \"OwnerName\": \"Kathy Brown\",        \"Shaba\": \"IR 0236598000215632014598002\",        \"CardNumber\": 5986320015498532,        \"ExpireDateMonth\": 98,        \"ExpireDateYear\": 4      }    ],    \"Notifications\": [      {        \"EnterEmail\": true,        \"EnterSms\": false,        \"EnterTelegram\": true,        \"ExitEmail\": true,        \"ExitSms\": false,        \"ExitTelegram\": true,        \"TicketEmail\": true,        \"TicketSms\": false,        \"TicketTelegram\": true,        \"LoginEmail\": true,        \"LoginSms\": false,        \"LoginTelegram\": true      }    ],    \"Wallets\": [      {        \"IsMain\": true,        \"IsSms\": false,        \"Name\": \"اصلی ماد پی\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      },      {        \"IsMain\": false,        \"IsSms\": true,        \"Name\": \"پیامک\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      }    ]  },  {    \"Username\": \"[email protected]\",    \"Name\": \"Claudia Allison\",    \"PhoneNumber\": \"+98 (963) 421-3361\",    \"Address\": \"369 Hope Street, Lydia, Tennessee, 7070\",    \"Gender\": false,    \"City\": \"Hiwasse\",    \"IsActive\": false,    \"Status\": false,    \"DateOfBirth\": \"1955-11-30\",    \"Photos\": [      {        \"Url\": \"https://randomuser.me/api/portraits/women/99.jpg\",        \"Alt\": \"Magna tempor aliqua sit sunt amet.\",        \"IsMain\": true,        \"Description\": \"Dolore Lorem elit adipisicing et deserunt quis laboris fugiat minim do.\"      }    ],    \"BankCards\": [      {        \"Approve\": false,        \"BankName\": \"Wilma}\",        \"OwnerName\": \"Meagan Burris\",        \"Shaba\": \"IR 0236598000215632014598002\",        \"CardNumber\": 5986320015498532,        \"ExpireDateMonth\": 98,        \"ExpireDateYear\": 4      }    ],    \"Notifications\": [      {        \"EnterEmail\": true,        \"EnterSms\": false,        \"EnterTelegram\": true,        \"ExitEmail\": true,        \"ExitSms\": false,        \"ExitTelegram\": true,        \"TicketEmail\": true,        \"TicketSms\": false,        \"TicketTelegram\": true,        \"LoginEmail\": true,        \"LoginSms\": false,        \"LoginTelegram\": true      }    ],    \"Wallets\": [      {        \"IsMain\": true,        \"IsSms\": false,        \"Name\": \"اصلی ماد پی\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      },      {        \"IsMain\": false,        \"IsSms\": true,        \"Name\": \"پیامک\",        \"Inventory\": 0,        \"InterMoney\": 0,        \"ExitMoney\": 0,        \"OnExitMoney\": 0      }    ]  }]";
                var users    = JsonConvert.DeserializeObject <IList <User> >(userData);

                var roles = new List <Role>
                {
                    new Role {
                        Name = "Admin"
                    },
                    new Role {
                        Name = "User"
                    },
                    new Role {
                        Name = "Blog"
                    },
                    new Role {
                        Name = "AdminBlog"
                    },
                    new Role {
                        Name = "Accountant"
                    }
                };

                foreach (var role in roles)
                {
                    _roleManager.CreateAsync(role).Wait();
                }

                foreach (var user in users)
                {
                    user.UserName = user.UserName.ToLower();
                    _userManager.CreateAsync(user, "password").Wait();
                    _userManager.AddToRoleAsync(user, "User").Wait();
                }


                //Create AdminUser
                var adminUser = new User
                {
                    UserName    = "******",
                    Name        = "Admin",
                    Address     = "No",
                    DateOfBirth = DateTime.Now,
                    LastActive  = DateTime.Now,
                };
                IdentityResult result = _userManager.CreateAsync(adminUser, "password").Result;

                if (result.Succeeded)
                {
                    var photoToCreate = new Photo
                    {
                        UserId      = adminUser.Id,
                        Url         = "https://res.cloudinary.com/keyone2693/image/upload/v1561717720/768px-Circle-icons-profile.svg.png",
                        Description = "Profile Pic",
                        Alt         = "Profile Pic",
                        IsMain      = true,
                        PublicId    = "0"
                    };

                    var notifyToCreate = new Notification
                    {
                        UserId         = adminUser.Id,
                        EnterEmail     = true,
                        EnterSms       = false,
                        EnterTelegram  = true,
                        ExitEmail      = true,
                        ExitSms        = false,
                        ExitTelegram   = true,
                        LoginEmail     = true,
                        LoginSms       = false,
                        LoginTelegram  = true,
                        TicketEmail    = true,
                        TicketSms      = false,
                        TicketTelegram = true
                    };

                    _authService.AddUserPreNeededAsync(photoToCreate, notifyToCreate, null, null).Wait();

                    var admin = _userManager.FindByNameAsync("*****@*****.**").Result;
                    _userManager.AddToRolesAsync(admin, new[] { "Admin", "Blog", "Accountant" }).Wait();
                }
                //Create AdminBlogUser
                var adminblogUser = new User
                {
                    UserName    = "******",
                    Name        = "AdminBlog",
                    Address     = "No",
                    DateOfBirth = DateTime.Now,
                    LastActive  = DateTime.Now,
                };
                IdentityResult resultAdminBlog = _userManager.CreateAsync(adminblogUser, "password").Result;

                if (resultAdminBlog.Succeeded)
                {
                    var photoToCreate = new Photo
                    {
                        UserId      = adminblogUser.Id,
                        Url         = "https://res.cloudinary.com/keyone2693/image/upload/v1561717720/768px-Circle-icons-profile.svg.png",
                        Description = "Profile Pic",
                        Alt         = "Profile Pic",
                        IsMain      = true,
                        PublicId    = "0"
                    };

                    var notifyToCreate = new Notification
                    {
                        UserId         = adminblogUser.Id,
                        EnterEmail     = true,
                        EnterSms       = false,
                        EnterTelegram  = true,
                        ExitEmail      = true,
                        ExitSms        = false,
                        ExitTelegram   = true,
                        LoginEmail     = true,
                        LoginSms       = false,
                        LoginTelegram  = true,
                        TicketEmail    = true,
                        TicketSms      = false,
                        TicketTelegram = true
                    };

                    _authService.AddUserPreNeededAsync(photoToCreate, notifyToCreate, null, null).Wait();

                    var blog = _userManager.FindByNameAsync("*****@*****.**").Result;
                    _userManager.AddToRoleAsync(blog, "AdminBlog").Wait();
                }
                //Create BlogUser
                var blogUser = new User
                {
                    UserName    = "******",
                    Name        = "Blog",
                    Address     = "No",
                    DateOfBirth = DateTime.Now,
                    LastActive  = DateTime.Now,
                };
                IdentityResult resultBlog = _userManager.CreateAsync(blogUser, "password").Result;

                if (resultBlog.Succeeded)
                {
                    var photoToCreate = new Photo
                    {
                        UserId      = blogUser.Id,
                        Url         = "https://res.cloudinary.com/keyone2693/image/upload/v1561717720/768px-Circle-icons-profile.svg.png",
                        Description = "Profile Pic",
                        Alt         = "Profile Pic",
                        IsMain      = true,
                        PublicId    = "0"
                    };

                    var notifyToCreate = new Notification
                    {
                        UserId         = blogUser.Id,
                        EnterEmail     = true,
                        EnterSms       = false,
                        EnterTelegram  = true,
                        ExitEmail      = true,
                        ExitSms        = false,
                        ExitTelegram   = true,
                        LoginEmail     = true,
                        LoginSms       = false,
                        LoginTelegram  = true,
                        TicketEmail    = true,
                        TicketSms      = false,
                        TicketTelegram = true
                    };

                    _authService.AddUserPreNeededAsync(photoToCreate, notifyToCreate, null, null).Wait();

                    var blog = _userManager.FindByNameAsync("*****@*****.**").Result;
                    _userManager.AddToRoleAsync(blog, "Blog").Wait();
                }
                //Create AccountantUser
                var accountantUser = new User
                {
                    UserName    = "******",
                    Name        = "Accountant",
                    Address     = "No",
                    DateOfBirth = DateTime.Now,
                    LastActive  = DateTime.Now,
                };
                IdentityResult resultAccountant = _userManager.CreateAsync(accountantUser, "password").Result;

                if (resultAccountant.Succeeded)
                {
                    var photoToCreate = new Photo
                    {
                        UserId      = accountantUser.Id,
                        Url         = "https://res.cloudinary.com/keyone2693/image/upload/v1561717720/768px-Circle-icons-profile.svg.png",
                        Description = "Profile Pic",
                        Alt         = "Profile Pic",
                        IsMain      = true,
                        PublicId    = "0"
                    };

                    var notifyToCreate = new Notification
                    {
                        UserId         = accountantUser.Id,
                        EnterEmail     = true,
                        EnterSms       = false,
                        EnterTelegram  = true,
                        ExitEmail      = true,
                        ExitSms        = false,
                        ExitTelegram   = true,
                        LoginEmail     = true,
                        LoginSms       = false,
                        LoginTelegram  = true,
                        TicketEmail    = true,
                        TicketSms      = false,
                        TicketTelegram = true
                    };

                    _authService.AddUserPreNeededAsync(photoToCreate, notifyToCreate, null, null).Wait();
                    var accountant = _userManager.FindByNameAsync("*****@*****.**").Result;
                    _userManager.AddToRoleAsync(accountant, "Accountant").Wait();
                }
            }
        }
Beispiel #3
0
        public void SeedUsers()
        {
            if (!_userManager.Users.Any())
            {
                var userData = System.IO.File.ReadAllText("wwwroot/Files/Json/Seed/UserSeedData.json");
                var users    = JsonConvert.DeserializeObject <IList <User> >(userData);

                var roles = new List <Role>
                {
                    new Role {
                        Name = "Admin"
                    },
                    new Role {
                        Name = "User"
                    },
                    new Role {
                        Name = "Blog"
                    },
                    new Role {
                        Name = "AdminBlog"
                    },
                    new Role {
                        Name = "Accountant"
                    }
                };

                foreach (var role in roles)
                {
                    _roleManager.CreateAsync(role).Wait();
                }

                foreach (var user in users)
                {
                    user.UserName = user.UserName.ToLower();
                    _userManager.CreateAsync(user, "password").Wait();
                    _userManager.AddToRoleAsync(user, "User").Wait();
                }


                //Create AdminUser
                var adminUser = new User
                {
                    UserName    = "******",
                    Name        = "Admin",
                    Address     = "No",
                    DateOfBirth = DateTime.Now,
                    LastActive  = DateTime.Now,
                };
                IdentityResult result = _userManager.CreateAsync(adminUser, "password").Result;

                if (result.Succeeded)
                {
                    var photoToCreate = new Photo
                    {
                        UserId      = adminUser.Id,
                        Url         = "https://res.cloudinary.com/keyone2693/image/upload/v1561717720/768px-Circle-icons-profile.svg.png",
                        Description = "Profile Pic",
                        Alt         = "Profile Pic",
                        IsMain      = true,
                        PublicId    = "0"
                    };

                    var notifyToCreate = new Notification
                    {
                        UserId         = adminUser.Id,
                        EnterEmail     = true,
                        EnterSms       = false,
                        EnterTelegram  = true,
                        ExitEmail      = true,
                        ExitSms        = false,
                        ExitTelegram   = true,
                        LoginEmail     = true,
                        LoginSms       = false,
                        LoginTelegram  = true,
                        TicketEmail    = true,
                        TicketSms      = false,
                        TicketTelegram = true
                    };

                    _authService.AddUserPreNeededAsync(photoToCreate, notifyToCreate, null, null).Wait();

                    var admin = _userManager.FindByNameAsync("*****@*****.**").Result;
                    _userManager.AddToRolesAsync(admin, new[] { "Admin", "Blog", "Accountant" }).Wait();
                }
                //Create AdminBlogUser
                var adminblogUser = new User
                {
                    UserName    = "******",
                    Name        = "AdminBlog",
                    Address     = "No",
                    DateOfBirth = DateTime.Now,
                    LastActive  = DateTime.Now,
                };
                IdentityResult resultAdminBlog = _userManager.CreateAsync(adminblogUser, "password").Result;

                if (resultAdminBlog.Succeeded)
                {
                    var photoToCreate = new Photo
                    {
                        UserId      = adminblogUser.Id,
                        Url         = "https://res.cloudinary.com/keyone2693/image/upload/v1561717720/768px-Circle-icons-profile.svg.png",
                        Description = "Profile Pic",
                        Alt         = "Profile Pic",
                        IsMain      = true,
                        PublicId    = "0"
                    };

                    var notifyToCreate = new Notification
                    {
                        UserId         = adminblogUser.Id,
                        EnterEmail     = true,
                        EnterSms       = false,
                        EnterTelegram  = true,
                        ExitEmail      = true,
                        ExitSms        = false,
                        ExitTelegram   = true,
                        LoginEmail     = true,
                        LoginSms       = false,
                        LoginTelegram  = true,
                        TicketEmail    = true,
                        TicketSms      = false,
                        TicketTelegram = true
                    };

                    _authService.AddUserPreNeededAsync(photoToCreate, notifyToCreate, null, null).Wait();

                    var blog = _userManager.FindByNameAsync("*****@*****.**").Result;
                    _userManager.AddToRoleAsync(blog, "AdminBlog").Wait();
                }
                //Create BlogUser
                var blogUser = new User
                {
                    UserName    = "******",
                    Name        = "Blog",
                    Address     = "No",
                    DateOfBirth = DateTime.Now,
                    LastActive  = DateTime.Now,
                };
                IdentityResult resultBlog = _userManager.CreateAsync(blogUser, "password").Result;

                if (resultBlog.Succeeded)
                {
                    var photoToCreate = new Photo
                    {
                        UserId      = blogUser.Id,
                        Url         = "https://res.cloudinary.com/keyone2693/image/upload/v1561717720/768px-Circle-icons-profile.svg.png",
                        Description = "Profile Pic",
                        Alt         = "Profile Pic",
                        IsMain      = true,
                        PublicId    = "0"
                    };

                    var notifyToCreate = new Notification
                    {
                        UserId         = blogUser.Id,
                        EnterEmail     = true,
                        EnterSms       = false,
                        EnterTelegram  = true,
                        ExitEmail      = true,
                        ExitSms        = false,
                        ExitTelegram   = true,
                        LoginEmail     = true,
                        LoginSms       = false,
                        LoginTelegram  = true,
                        TicketEmail    = true,
                        TicketSms      = false,
                        TicketTelegram = true
                    };

                    _authService.AddUserPreNeededAsync(photoToCreate, notifyToCreate, null, null).Wait();

                    var blog = _userManager.FindByNameAsync("*****@*****.**").Result;
                    _userManager.AddToRoleAsync(blog, "Blog").Wait();
                }
                //Create AccountantUser
                var accountantUser = new User
                {
                    UserName    = "******",
                    Name        = "Accountant",
                    Address     = "No",
                    DateOfBirth = DateTime.Now,
                    LastActive  = DateTime.Now,
                };
                IdentityResult resultAccountant = _userManager.CreateAsync(accountantUser, "password").Result;

                if (resultAccountant.Succeeded)
                {
                    var photoToCreate = new Photo
                    {
                        UserId      = accountantUser.Id,
                        Url         = "https://res.cloudinary.com/keyone2693/image/upload/v1561717720/768px-Circle-icons-profile.svg.png",
                        Description = "Profile Pic",
                        Alt         = "Profile Pic",
                        IsMain      = true,
                        PublicId    = "0"
                    };

                    var notifyToCreate = new Notification
                    {
                        UserId         = accountantUser.Id,
                        EnterEmail     = true,
                        EnterSms       = false,
                        EnterTelegram  = true,
                        ExitEmail      = true,
                        ExitSms        = false,
                        ExitTelegram   = true,
                        LoginEmail     = true,
                        LoginSms       = false,
                        LoginTelegram  = true,
                        TicketEmail    = true,
                        TicketSms      = false,
                        TicketTelegram = true
                    };

                    _authService.AddUserPreNeededAsync(photoToCreate, notifyToCreate, null, null).Wait();
                    var accountant = _userManager.FindByNameAsync("*****@*****.**").Result;
                    _userManager.AddToRoleAsync(accountant, "Accountant").Wait();
                }
            }
        }