示例#1
0
        public async Task InsertUsersSampleData()
        {
            const int userCount = 5;

            var roleNames = RoleConstants.GetRoleNames();

            if (await _databaseContext.Users.AnyAsync())
            {
                return;
            }
            foreach (var roleName in roleNames)
            {
                for (var i = 0; i < userCount; i++)
                {
                    var username = string.Format(roleName + "{0}", i);
                    var user     = User.Create(username, username, username, username + "@gmail.com", username);
                    var result   = await _userManager.CreateAsync(user, user.PasswordHash);

                    if (!result.Succeeded)
                    {
                        throw new Exception(string.Format("Failed creating user with username {0} ", username));
                    }
                    await _userManager.AddToRoleAsync(user, roleName);
                }
            }

            await _databaseContext.SaveChangesAsync();
        }
示例#2
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new User
                {
                    UserName  = model.UserName,
                    FirstName = model.FirstName,
                    LastName  = model.LastName,
                    Email     = model.Email,
                    BirthDate = model.BirthDate.ToString("yyyy/MM/dd")
                };

                var result = await UserManager.CreateAsync(user, RoleConstants.Password(model.RoleName));

                if (result.Succeeded)
                {
                    await UserManager.AddToRoleAsync(user.Id, model.RoleName);

                    return(RedirectToAction("Index", "Users"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            model.Roles = new RolesRepository().Roles().ToList();
            return(View(model));
        }
示例#3
0
        public async Task <IHttpActionResult> Register([FromBody] RegisterExternalBindingModel id)
        {
            if (ModelState.IsValid)
            {
                var user = new User
                {
                    UserName  = id.UserName,
                    FirstName = id.FirstName,
                    LastName  = id.LastName,
                    Email     = id.Email,
                    BirthDate = id.BirthDate.ToString("yyyy/MM/dd")
                };

                var result = await UserManager.CreateAsync(user, RoleConstants.Password(id.RoleName));

                if (result.Succeeded)
                {
                    await UserManager.AddToRoleAsync(user.Id, id.RoleName);

                    return(Ok());
                }
                return(GetErrorResult(result));
            }

            return(InternalServerError());
        }
        public async Task <IActionResult> GetPaymentMethodsAsync(int sellerId)
        {
            MUser user = await usersRepository.GetUserPrivateAsync(sellerId);

            if (!RoleConstants.IsSeller(user.Role))
            {
                return(BadRequest());
            }

            return(Ok(user.GetSellerPaymentProviders(configuration.GetValue <bool>("IsMockEnabled"))));
        }
示例#5
0
        public async Task <IActionResult> GetUserSellerAsync(int userId)
        {
            Seller seller = await usersRepository.GetUserAsync <Seller>(userId);

            if (!RoleConstants.IsSeller(seller.Role))
            {
                return(BadRequest());
            }

            return(Ok(seller));
        }
示例#6
0
        public async Task InsertRolesData()
        {
            var roleNames = RoleConstants.GetRoleNames();

            foreach (var roleName in roleNames)
            {
                if (!await _roleManager.RoleExistsAsync(roleName))
                {
                    await _roleManager.CreateAsync(Role.Create(roleName));
                }
            }

            await _databaseContext.SaveChangesAsync();
        }
示例#7
0
        /// <summary>
        /// Retourne la durée effective de l'altération d'état en prenant en compte les différents
        /// bonus des altérations.
        /// </summary>
        public float GetDuration(EntityBase source)
        {
            float duration = BaseDuration;

            // Application des bonus de rôles.
            if (source is EntityHero)
            {
                RoleConstants constants = GameServer.GetScene().Constants.Roles;
                EntityHero    hero      = (EntityHero)source;
                switch (hero.Role)
                {
                case EntityHeroRole.Fighter:
                    if (Type.HasFlag(StateAlterationType.Stealth))
                    {
                        duration *= constants.FighterStealthDurationMultiplier;
                    }
                    break;

                case EntityHeroRole.Mage:
                    if (Type.HasFlag(StateAlterationType.Silence))
                    {
                        duration *= constants.MageSilenceDurationMultiplier;
                    }
                    else if (Type.HasFlag(StateAlterationType.Root))
                    {
                        duration *= constants.MageRootDurationMultiplier;
                    }
                    else if (Type.HasFlag(StateAlterationType.Sight) | Type.HasFlag(StateAlterationType.TrueSight))
                    {
                        duration *= constants.MageSightDurationMultiplier;
                    }
                    break;

                case EntityHeroRole.Tank:
                    if (Type.HasFlag(StateAlterationType.Stun))
                    {
                        duration *= constants.TankStunDurationMultiplier;
                    }
                    break;
                }
            }
            return(duration);
        }
示例#8
0
        /// <summary>
        /// Allows the user to change their password or reset someone else's password
        /// </summary>
        /// <param name="userId">User ID which password is to be changed</param>
        /// <param name="newPassword">New password, or if empty, default password</param>
        /// <returns></returns>
        public async Task ChangePassword(string userId, string newPassword = "")
        {
            User user = UserById(userId);

            if (user != null)
            {
                UserStore <User>   store       = new UserStore <User>(db);
                UserManager <User> userManager = new UserManager <User>(store);

                if (newPassword.Length == 0)
                {
                    newPassword = RoleConstants.Password(userManager.GetRoles(userId).First());
                }

                string hashedNewPassword = userManager.PasswordHasher.HashPassword(newPassword);
                await store.SetPasswordHashAsync(user, hashedNewPassword);

                await store.UpdateAsync(user);
            }
        }
示例#9
0
        public async Task <IHttpActionResult> RegisterExternal(RegisterExternalBindingModel id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var info = await Authentication.GetExternalLoginInfoAsync();

            if (info == null)
            {
                return(InternalServerError());
            }

            var user = new User {
                UserName = id.UserName, Email = id.Email, FirstName = id.FirstName, LastName = id.LastName, BirthDate = id.BirthDate.ToString("yyyy/MM/dd")
            };

            IdentityResult result = await UserManager.CreateAsync(user);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            result = await UserManager.AddLoginAsync(user.Id, info.Login);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            result = await UserManager.CreateAsync(user, RoleConstants.Password(id.RoleName));

            if (result.Succeeded)
            {
                await UserManager.AddToRoleAsync(user.Id, id.RoleName);
            }
            return(Ok());
        }
示例#10
0
        /// <summary>
        /// Calcule la valeur totale de l'altération d'état en fonction des différents scalings passés en
        /// paramètres au moyen de "ratios".
        ///
        /// Cette fonction garantit que les ratios ne seront calculés que pour les scalings demandés.
        ///
        /// Par exemple, si scaling ratios ne contient pas SrcAd, source.GetAttackDamage() ne sera pas appelé.
        /// </summary>
        public float GetValue(EntityBase source, EntityBase destination, ScalingRatios ratios)
        {
            float totalValue = FlatValue;

            if ((ratios & ScalingRatios.SrcAd) == ScalingRatios.SrcAd && SourcePercentADValue != 0)
            {
                totalValue += SourcePercentADValue * source.GetAttackDamage();
            }
            if ((ratios & ScalingRatios.SrcArmor) == ScalingRatios.SrcArmor && SourcePercentArmorValue != 0)
            {
                totalValue += SourcePercentArmorValue * source.GetArmor();
            }
            if ((ratios & ScalingRatios.SrcHP) == ScalingRatios.SrcHP && SourcePercentHPValue != 0)
            {
                totalValue += SourcePercentHPValue * source.GetHP();
            }
            if ((ratios & ScalingRatios.SrcMaxHP) == ScalingRatios.SrcMaxHP && SourcePercentMaxHPValue != 0)
            {
                totalValue += SourcePercentMaxHPValue * source.GetMaxHP();
            }
            if ((ratios & ScalingRatios.SrcAP) == ScalingRatios.SrcAP && SourcePercentAPValue != 0)
            {
                totalValue += SourcePercentAPValue * source.GetAbilityPower();
            }
            if ((ratios & ScalingRatios.SrcMR) == ScalingRatios.SrcMR && SourcePercentRMValue != 0)
            {
                totalValue += SourcePercentRMValue * source.GetMagicResist();
            }


            /*
             * if ((ratios & ScalingRatios.DstAd) == ScalingRatios.DstAd)
             *  totalValue += DestPercentADValue * destination.GetAttackDamage();
             * if ((ratios & ScalingRatios.DstArmor) == ScalingRatios.DstArmor)
             *  totalValue += DestPercentArmorValue * destination.GetArmor();
             * if ((ratios & ScalingRatios.DstHP) == ScalingRatios.DstHP)
             *  totalValue += DestPercentHPValue * destination.GetHP();
             * if ((ratios & ScalingRatios.DstMaxHP) == ScalingRatios.DstMaxHP)
             *  totalValue += DestPercentMaxHPValue * destination.GetMaxHP();
             * if ((ratios & ScalingRatios.DstAP) == ScalingRatios.DstAP)
             *  totalValue += DestPercentAPValue * destination.GetAbilityPower();
             * if ((ratios & ScalingRatios.SrcMR) == ScalingRatios.SrcMR)
             *  totalValue += DestPercentRMValue * destination.GetMagicResist();*/

            // Application des bonus.
            if (destination.Type.HasFlag(EntityType.Structure))
            {
                totalValue *= StructureBonus;
            }
            if (destination.Type.HasFlag(EntityType.Monster))
            {
                totalValue *= MonsterBonus;
            }
            if (destination.Type.HasFlag(EntityType.Virus))
            {
                totalValue *= VirusBonus;
            }

            // Application des bonus de rôles.
            if (source is EntityHero)
            {
                RoleConstants constants = GameServer.GetScene().Constants.Roles;
                EntityHero    hero      = (EntityHero)source;
                switch (hero.Role)
                {
                case EntityHeroRole.Fighter:
                    if (Type.HasFlag(StateAlterationType.AttackSpeed))
                    {
                        totalValue *= constants.FighterAttackSpeedMultiplier;
                    }
                    else if (Type.HasFlag(StateAlterationType.AttackDamage))
                    {
                        totalValue *= constants.FighterAttackDamageMultiplier;
                    }
                    else if (Type.HasFlag(StateAlterationType.MagicDamageBuff))
                    {
                        totalValue *= constants.FighterMagicDamageMultiplier;
                    }
                    else if (Type.HasFlag(StateAlterationType.TrueDamage))
                    {
                        totalValue *= constants.FighterTrueDamageMultiplier;
                    }

                    break;

                case EntityHeroRole.Mage:
                    if (Type.HasFlag(StateAlterationType.Heal))
                    {
                        totalValue *= constants.MageHealValueMultiplier;
                    }
                    else if (Type.HasFlag(StateAlterationType.Shield))
                    {
                        totalValue *= constants.MageShieldValueMultiplier;
                    }

                    break;

                case EntityHeroRole.Tank:
                    if (Type.HasFlag(StateAlterationType.MoveSpeed))
                    {
                        totalValue *= constants.TankMoveSpeedBonusMultiplier;
                    }
                    else if (Type.HasFlag(StateAlterationType.ArmorBuff))
                    {
                        totalValue *= constants.TankArmorBonusMultiplier;
                    }
                    else if (Type.HasFlag(StateAlterationType.MagicResistBuff))
                    {
                        totalValue *= constants.TankRMBonusMultiplier;
                    }

                    break;
                }

                // Application du bonus des passifs uniques
                switch (hero.UniquePassive)
                {
                case EntityUniquePassives.Altruistic:
                    // Soins augmentés
                    if (Type.HasFlag(StateAlterationType.Heal))
                    {
                        totalValue *= 1 + GameServer.GetScene().Constants.UniquePassives.AltruistHealBonus;
                    }
                    break;
                }
            }


            return(totalValue);
            // Note : ceci n'est pas équivalent au code ci dessous.
            // Dans cette version les fonctions source.GetAttackDamage(), etc... sont toujours appelées.

            /*
             * return FlatValue +
             *     SourcePercentADValue * source.GetAttackDamage() * (int)(ratios & ScalingRatios.SrcAd) +
             *     SourcePercentArmorValue * source.GetArmor() * (int)(ratios & ScalingRatios.SrcArmor)+
             *     SourcePercentHPValue * source.HP * (int)(ratios & ScalingRatios.SrcHP) +
             *     SourcePercentMaxHPValue * source.MaxHP * (int)(ratios & ScalingRatios.SrcMaxHP) +
             *
             *     DestPercentADValue * destination.GetAttackDamage() * (int)(ratios & ScalingRatios.DstAd) +
             *     DestPercentArmorValue * destination.GetArmor() * (int)(ratios & ScalingRatios.DstArmor) +
             *     DestPercentHPValue * destination.HP * (int)(ratios & ScalingRatios.DstHP) +
             *     DestPercentMaxHPValue * destination.MaxHP * (int)(ratios & ScalingRatios.DstMaxHP);*/
        }