コード例 #1
0
        public async Task <IActionResult> Modifier(string ReturnUrl)
        {
            try
            {
                if (User?.Identity.IsAuthenticated == true)
                {
                    ModifierViewModel vm = new ModifierViewModel();
                    vm.ReturnUrl = ReturnUrl;
                    vm.lGenres   = new GenreUtilisateur().genres;
                    var userId = User.GetSubjectId();

                    Utilisateur user = await _userManager.FindByIdAsync(userId);

                    if (user != null)
                    {
                        vm.User = user;
                        return(View(vm));
                    }
                }
                ErrorViewModel evm = new ErrorViewModel("L'identité n'a pas pu être verifiée");
                return(View("Error", evm));
            }
            catch (Exception ex)
            {
                ErrorViewModel vme = new ErrorViewModel(ex.Message);
                return(View("Error", vme));
            }
        }
コード例 #2
0
        public ActionResult Abilities()
        {
            ModifierViewModel modifiers = new ModifierViewModel(_dbContext);

            ViewBag.Rolls         = _player.Rolls;
            ViewBag.StatModifiers = _businessLogic.UpdateModifiers(_dbContext, _player.Player.ClassID, _player.Player.RaceID);

            this.SharedSession["PassModels"] = _player;

            return(View(modifiers));
        }
コード例 #3
0
        public ActionResult Skills(ModifierViewModel abilities)
        {
            _player.Modifiers = abilities.Modifiers;

            SkillsViewModel skills = new SkillsViewModel(_dbContext);

            skills.AvalaiblePoints = _businessLogic.CheckAvailableSkillPoints(_dbContext, _player);

            this.SharedSession["PassModels"] = _player;

            return(View(skills));
        }
コード例 #4
0
ファイル: UserService.cs プロジェクト: gularajesh/dotnet
        /// <summary>
        /// Gets the plan.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="salaries">The salaries.</param>
        /// <param name="userTarget">The user target.</param>
        /// <param name="simulationId">The simulation identifier.</param>
        /// <returns>
        /// returns plan view model
        /// </returns>
        private PlanViewModel GetPlan(UserModel user, Dictionary <FrequencyDetails, decimal> salaries, UserTargetModel userTarget, int simulationId)
        {
            var           applicationSetting = this.applicationSettings.GetApplicationSettingByKeyName(Constants.ApplicationSettingCodes.CryptoKey);
            PlanViewModel planViewModel      = new PlanViewModel();

            planViewModel = new PlanViewModel()
            {
                PlanId          = user.CurentPlan.Id,
                UserId          = user.Id,
                CountryId       = user.CountryId,
                BussinessUnitId = user.BusinessUnitId,
                RoleId          = user.CurentPlan.RoleId,
                Year            = user.CurentPlan.Year,
                Role            = user.CurentPlan.Name,
                PlanName        = user.CurentPlan.Name
            };

            UserSimulationModel userSimulation = null;

            if (userTarget != null && userTarget.UserSimulations.Count > 0)
            {
                planViewModel.SimulationId   = simulationId;
                planViewModel.SimulationName = userTarget.UserSimulations.Where(x => x.Id == simulationId).Select(x => x.Name).FirstOrDefault();
                planViewModel.TotalPayout    = Convert.ToDecimal(this.cryptoService.Decrypt(applicationSetting.Value, userTarget.UserSimulations.Where(x => x.Id == simulationId).Select(x => x.TotalPayout).FirstOrDefault()));
                userSimulation = userTarget.UserSimulations.Where(x => x.Id == simulationId).FirstOrDefault();
            }

            foreach (var measure in user.CurentPlan.PlanMeasures)
            {
                MeassureViewModel meassureViewModel = new MeassureViewModel();
                meassureViewModel.Id                      = measure.Id;
                meassureViewModel.Name                    = measure.MeasureName;
                meassureViewModel.SequenceId              = measure.Sequence;
                meassureViewModel.PayoutCurveId           = measure.PayoutCurveId;
                meassureViewModel.PayoutTypeId            = measure.PayoutTypeId;
                meassureViewModel.PayoutCurve             = measure.PayoutCurve;
                meassureViewModel.Frequency               = measure.Frequency.Name;
                meassureViewModel.MeasureTargetPercentage = Convert.ToString(measure.MeasureWeightage);
                meassureViewModel.HasGoal                 = measure.HasGoal;
                meassureViewModel.DataType                = measure.DataType;
                meassureViewModel.ValueType               = measure.ValueType;
                meassureViewModel.IsKPI                   = measure.IsKPI;
                UserSimulationMeasureDetailModel userSimulationMeasureDetail = null;
                if (userSimulation != null && userSimulation.UserSimulationMeasureDetails != null)
                {
                    userSimulationMeasureDetail = userSimulation.UserSimulationMeasureDetails.FirstOrDefault(x => x.PlanMeasureId == measure.Id);
                }

                if (userSimulationMeasureDetail != null)
                {
                    meassureViewModel.ActualAchievment           = Convert.ToDecimal(this.cryptoService.Decrypt(applicationSetting.Value, userSimulationMeasureDetail.Achievement));
                    meassureViewModel.ActualAchievmentPercentage = userSimulationMeasureDetail.AchievementPercentage;
                    meassureViewModel.YTDCumilativePayout        = Convert.ToDecimal(this.cryptoService.Decrypt(applicationSetting.Value, userSimulationMeasureDetail.PayoutAmount));
                }

                var diffInIncentive = 0.0M;
                foreach (var payoutPercentageDetail in measure.PayoutPercentage.PayoutPercentageDetails)
                {
                    MeasureFrequencyDetailViewModel field = new MeasureFrequencyDetailViewModel();
                    field.Id               = payoutPercentageDetail.FrequencyDetailId;
                    field.TargetPer        = payoutPercentageDetail.PayoutPercentageWeightage;
                    field.Label            = payoutPercentageDetail.FrequencyDetail.Name;
                    field.Incentive        = salaries[(FrequencyDetails)payoutPercentageDetail.FrequencyDetailId] * (user.CurentPlan.TargetIncentivePercentage / 100) * (measure.MeasureWeightage / 100) * (payoutPercentageDetail.PayoutPercentageWeightage / 100);
                    field.CurrentIncentive = salaries[FrequencyDetails.Annual] * (user.CurentPlan.TargetIncentivePercentage / 100) * (measure.MeasureWeightage / 100) * (payoutPercentageDetail.PayoutPercentageWeightage / 100);
                    if (measure.PayoutCurve.PayoutCurveTypeId == Convert.ToInt32(PayoutCurveType.Linear))
                    {
                        field.AdditionalFields.Add("Expense", 0);
                        field.AdditionalFields.Add("Revenue", 0);
                    }

                    diffInIncentive += field.CurrentIncentive - field.Incentive;

                    if (userTarget != null && userTarget.UserTargetDetails != null)
                    {
                        var userTargetDetail = userTarget.UserTargetDetails.FirstOrDefault(x => x.PlanMeasureId == measure.Id && x.FrequencyDetailId == payoutPercentageDetail.FrequencyDetailId);
                        if (userTargetDetail != null)
                        {
                            field.Goal = Convert.ToDecimal(this.cryptoService.Decrypt(applicationSetting.Value, userTargetDetail.Goal));
                        }
                    }

                    UserSimulationMeasureFrequencyDetailModel userSimulationMeasureFrequencyDetail = null;
                    if (userSimulationMeasureDetail != null && userSimulationMeasureDetail.UserSimulationMeasureFrequencyDetails != null)
                    {
                        userSimulationMeasureFrequencyDetail = userSimulationMeasureDetail.UserSimulationMeasureFrequencyDetails.FirstOrDefault(x => x.FrequencyDetailId == payoutPercentageDetail.FrequencyDetailId);
                    }

                    if (userSimulationMeasureFrequencyDetail != null)
                    {
                        field.ActualAchievment           = Convert.ToDecimal(this.cryptoService.Decrypt(applicationSetting.Value, userSimulationMeasureFrequencyDetail.Achievement));
                        field.ActualAchievmentPercentage = userSimulationMeasureFrequencyDetail.AchievementPercentage;
                        field.YTDCumilativePayout        = Convert.ToDecimal(this.cryptoService.Decrypt(applicationSetting.Value, userSimulationMeasureFrequencyDetail.PayoutAmount));
                        field.CumulativePercentage       = Convert.ToDecimal(userSimulationMeasureFrequencyDetail.CumulativePercentage);
                        field.IsValue = userSimulationMeasureFrequencyDetail.IsValue == null ? false : userSimulationMeasureFrequencyDetail.IsValue;
                        if (!string.IsNullOrWhiteSpace(userSimulationMeasureFrequencyDetail.AdditionalFields))
                        {
                            XmlDocument xdoc = new XmlDocument();
                            xdoc.LoadXml(userSimulationMeasureFrequencyDetail.AdditionalFields);

                            foreach (XmlElement x in xdoc.DocumentElement.ChildNodes)
                            {
                                field.AdditionalFields[x.Name] = Convert.ToInt32(x.InnerText);
                            }
                        }
                    }

                    meassureViewModel.Fields.Add(field);
                }

                if (meassureViewModel.PayoutTypeId == Convert.ToInt32(PayoutType.Cumulative) && meassureViewModel.Fields.Count >= 1)
                {
                    var lastField = meassureViewModel.Fields[meassureViewModel.Fields.Count - 1];
                    lastField.Incentive = lastField.CurrentIncentive + diffInIncentive;
                }

                planViewModel.RoleMeassures.Add(meassureViewModel);
            }

            foreach (var modifier in user.CurentPlan.PlanModifiers)
            {
                ModifierViewModel modifierViewModel = new ModifierViewModel();
                modifierViewModel.Id          = modifier.Id;
                modifierViewModel.Name        = modifier.ModifierName;
                modifierViewModel.PayoutCurve = modifier.PayoutCurve;
                modifierViewModel.DataType    = modifier.DataType;
                modifierViewModel.ValueType   = modifier.ValueType;
                if (userSimulation != null)
                {
                    var targetsimulationmodifierdetail = userSimulation.UserSimulationModifierDetails.FirstOrDefault(x => x.PlanModifierId == modifier.Id);
                    if (targetsimulationmodifierdetail != null)
                    {
                        modifierViewModel.ModifierFieldValue = targetsimulationmodifierdetail.ModifierFieldValue;
                        modifierViewModel.ModifierPayout     = Convert.ToDecimal(this.cryptoService.Decrypt(applicationSetting.Value, targetsimulationmodifierdetail.ModifierPayout));
                    }
                }

                planViewModel.Modifiers.Add(modifierViewModel);
            }

            planViewModel.UpdateSequence();
            return(planViewModel);
        }
コード例 #5
0
        public async Task <IActionResult> Modifier(ModifierViewModel vm, string button)
        {
            try
            {
                vm.lGenres = new GenreUtilisateur().genres;

                if (button.Equals("register"))
                {
                    if (ModelState.IsValid)
                    {
                        var result = await _userManager.UpdateAsync(vm.User);

                        if (result.Succeeded)
                        {
                            if (await PutInRole(vm.User))
                            {
                                if (vm.Password != null && vm.ConfirmPassword != null && vm.NewPassword != null)
                                {
                                    if (vm.Password != null)
                                    {
                                        var resultlogin = await _signInManager.CheckPasswordSignInAsync(vm.User, vm.Password, true);

                                        if (!resultlogin.Succeeded)
                                        {
                                            ModelState.AddModelError(string.Empty, "Mot de passe invalide");
                                            return(View(vm));
                                        }
                                        var modifPass = await _userManager.ChangePasswordAsync(vm.User, vm.Password, vm.NewPassword);

                                        if (modifPass.Succeeded)
                                        {
                                            if (_signInManager.IsSignedIn(User) && User.IsInRole("Administrateur"))
                                            {
                                                return(RedirectToAction("ListeUser", "Administration", new { returnUrl = vm.ReturnUrl }));
                                            }

                                            if (vm.ReturnUrl != null)
                                            {
                                                return(Redirect(vm.ReturnUrl));
                                            }
                                            else
                                            {
                                                return(Redirect("~/"));
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                if (vm.ReturnUrl != null)
                {
                    return(Redirect(vm.ReturnUrl));
                }
                else
                {
                    return(Redirect("~/"));
                }
            }
            catch (Exception ex)
            {
                ErrorViewModel vme = new ErrorViewModel(ex.Message);
                return(View("Error", vme));
            }
        }
コード例 #6
0
 public ModifierView(FileSelector fileSelector)
 {
     InitializeComponent();
     DataContext = new ModifierViewModel(fileSelector);
 }