Пример #1
0
        public async Task <IHttpActionResult> CreateAccount(CreateAccountRequest request)
        {
            var user = new HaloUser
            {
                UserName = request.Username
            };
            var creationResult = await _userManager.CreateAsync(user, request.Password);

            if (creationResult.Succeeded == false)
            {
                return(BadRequest(string.Join(", ", creationResult.Errors)));
            }

            var userBaseData = new UserBaseData
            {
                User = new UserId
                {
                    Id = user.UserId
                },
                Nickname  = request.Nickname,
                BattleTag = "",
                Level     = 0,
                Clan      = new ClanId
                {
                    Id = 0
                },
                ClanTag = ""
            };
            await _userBaseDataRepository.SetUserBaseDataAsync(userBaseData);

            var token = AuthenticateUser(user);

            return(Ok(token));
        }
        public Task SetUserBaseDataAsync(UserBaseData userBaseData)
        {
            var user = _context.Users.Find(userBaseData.User.Id);

            if (user == null)
            {
                return(Task.FromResult(0));
            }
            user.Nickname  = userBaseData.Nickname;
            user.BattleTag = userBaseData.BattleTag;
            user.Level     = userBaseData.Level;
            // TODO: Fix setting ClanId
            //user.ClanId = userBaseData.Clan.Id;
            _context.SaveChanges();
            return(Task.FromResult(0));
        }
        private static void SeedServer(IDependencyScope scope)
        {
            var userManager                = (IHaloUserManager)scope.GetService(typeof(IHaloUserManager));
            var userBaseDataRepository     = (IUserBaseDataRepository)scope.GetService(typeof(IUserBaseDataRepository));
            var userSubscriptionRepository = (IUserSubscriptionRepository)scope.GetService(typeof(IUserSubscriptionRepository));
            var clanRepository             = (IClanRepository)scope.GetService(typeof(IClanRepository));
            var clanMembershipRepository   = (IClanMembershipRepository)scope.GetService(typeof(IClanMembershipRepository));

            try
            {
                var clan = clanRepository.FindByNamePrefixAsync("Clan1").Result.FirstOrDefault();
                if (clan == null)
                {
                    clan = new Clan
                    {
                        Name        = "Clan1",
                        Description = "First clan",
                        Tag         = "TAG"
                    };
                    clanRepository.CreateAsync(clan).Wait();
                }

                HaloUser testUser1 = new HaloUser
                {
                    UserName = "******"
                };
                HaloUser testUser2 = new HaloUser
                {
                    UserName = "******"
                };
                userManager.CreateAsync(testUser1, "123").Wait();
                userManager.CreateAsync(testUser2, "456").Wait();

                UserBaseData testUser1Data = new UserBaseData
                {
                    User = new UserId
                    {
                        Id = testUser1.UserId
                    },
                    Nickname = "User1",
                    Clan     = new ClanId
                    {
                        Id = 0
                    },
                    ClanTag   = "",
                    Level     = 2,
                    BattleTag = "BattleTag1"
                };

                UserBaseData testUser2Data = new UserBaseData
                {
                    User = new UserId
                    {
                        Id = testUser2.UserId
                    },
                    Nickname = "User2",
                    Clan     = new ClanId
                    {
                        Id = 0
                    },
                    ClanTag   = "",
                    Level     = 10,
                    BattleTag = "BattleTag2"
                };

                userBaseDataRepository.SetUserBaseDataAsync(testUser1Data);
                userBaseDataRepository.SetUserBaseDataAsync(testUser2Data);

                var testUser1ClanMembership = new ClanMembership
                {
                    UserId = testUser1.UserId,
                    ClanId = clan.ClanId,
                    Role   = 1
                };

                clanMembershipRepository.CreateAsync(testUser1ClanMembership).Wait();

                var testUser1Subscription = new UserSubscription
                {
                    UserId       = testUser1.UserId,
                    FriendUserId = testUser2.UserId
                };
                userSubscriptionRepository.CreateAsync(testUser1Subscription).Wait();
            }
            catch (Exception)
            {
                Debug.WriteLine("Server initialization failed.");
            }
        }