Esempio n. 1
0
 private void PrintResult(CalculatedResult result)
 {
     if (result != null)
     {
         Console.WriteLine($"Requested Amount: {result.RequestedAmount:c0}");
         Console.WriteLine($"Rate: {result.Rate:P1}");
         Console.WriteLine($"Monthly Repayment: {result.MonthlyRepayments:c2}");
         Console.WriteLine($"Total Repayment: {result.TotalRepayments:c2}");
     }
 }
        public static void Postfix(IFaction faction, ref int __result, LeaveKingdomAsClanBarterable __instance)
        {
            try
            {
                Hero    iOriginalOwner        = __instance.OriginalOwner;
                Clan    iOriginalOwnerClan    = iOriginalOwner.Clan;
                Kingdom iOriginalOwnerKingdom = iOriginalOwnerClan.Kingdom;

                if (!Settings.Instance !.FixMinorFactionVassals && (!LoyaltyDebugHelper.InDebugBranch || !SettingsHelper.SystemDebugEnabled(AOSystems.EnsuredLoyalty, DebugType.Technical, faction)))
                {
                    return;
                }

                IFaction mapFaction = iOriginalOwner.MapFaction;
                float    CalculatedResult;
                if (faction == __instance.OriginalOwner.Clan)
                {
                    CalculatedResult = __instance.OriginalOwner.Clan.IsUnderMercenaryService ? (int)Campaign.Current.Models.DiplomacyModel.GetScoreOfMercenaryToLeaveKingdom(iOriginalOwnerClan, iOriginalOwnerKingdom) : (int)Campaign.Current.Models.DiplomacyModel.GetScoreOfClanToLeaveKingdom(iOriginalOwnerClan, iOriginalOwnerKingdom);
                }
                else
                {
                    if (faction == mapFaction)
                    {
                        CalculatedResult = (float)((!iOriginalOwnerClan.IsUnderMercenaryService ? Campaign.Current.Models.DiplomacyModel.GetScoreOfClanToLeaveKingdom(iOriginalOwnerClan, iOriginalOwnerKingdom) : Campaign.Current.Models.DiplomacyModel.GetScoreOfMercenaryToLeaveKingdom(iOriginalOwnerClan, iOriginalOwnerKingdom)) * (faction == iOriginalOwnerClan || faction == iOriginalOwnerKingdom ? -1.0 : 1.0));
                    }
                    else
                    {
                        float clanStrength = Campaign.Current.Models.DiplomacyModel.GetClanStrength(iOriginalOwnerClan);
                        CalculatedResult = !faction.IsClan || !FactionManager.IsAtWarAgainstFaction(faction, iOriginalOwnerKingdom) ? (!FactionManager.IsAlliedWithFaction(faction, iOriginalOwnerKingdom) ? clanStrength * 0.01f : clanStrength * -0.5f) : clanStrength * 0.5f;
                    }
                }

                if (LoyaltyDebugHelper.InDebugBranch && SettingsHelper.SystemDebugEnabled(AOSystems.EnsuredLoyalty, DebugType.Technical))
                {
                    string UnitValueDebugInfo = string.Format("LeaveKingdom - UnitValueForFaction. faction: {0}. ScoreOfMercenaryToLeaveKingdom = {1}. ScoreOfClanToLeaveKingdom = {2}. CalculatedResult = {3}. Result = {4}",
                                                              faction.Name,
                                                              ((int)Campaign.Current.Models.DiplomacyModel.GetScoreOfMercenaryToLeaveKingdom(iOriginalOwnerClan, iOriginalOwnerKingdom)).ToString("N"),
                                                              ((int)Campaign.Current.Models.DiplomacyModel.GetScoreOfClanToLeaveKingdom(iOriginalOwnerClan, iOriginalOwnerKingdom)).ToString("N"),
                                                              CalculatedResult.ToString("N"), __result.ToString("N"));

                    MessageHelper.TechnicalMessage(UnitValueDebugInfo);
                }
                if (Settings.Instance.FixMinorFactionVassals)
                {
                    __result = (int)CalculatedResult;
                }
            }
            catch (Exception ex)
            {
                MethodInfo?methodInfo = MethodBase.GetCurrentMethod() as MethodInfo;
                DebugHelper.HandleException(ex, methodInfo, "Harmony patch for LeaveKingdomAsClanBarterable.GetUnitValueForFaction");
            }
        }
Esempio n. 3
0
 public void AddResult(CalculatedResult result)
 {
     using (var db = new SurveyDbContext())
     {
         if (!db.CalculatedResult.Any(a => a.ClientIdentifier == result.ClientId && a.IdSurvey == result.IdSurvey))
         {
             var answersXml = result.Result.Serialize();
             db.CalculatedResult.Add(new Data.Entities.CalculatedResult
             {
                 IdSurvey           = result.IdSurvey,
                 ClientIdentifier   = result.ClientId,
                 IdCalculatedResult = Guid.NewGuid(),
                 Result             = answersXml
             });
             db.SaveChanges();
         }
     }
 }
        public bool SaveResult(int type, int input_1, int input_2, int result)
        {
            try
            {
                CalculatedResult data = new CalculatedResult();
                data.MethodTypeId = (MethodType)type;
                data.Value1       = input_1;
                data.Value2       = input_2;
                data.Result       = result;
                _context.CalculatedResults.Add(data);
                _context.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Orchestrates the calculation of the string.
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public CalculatedResult EmploymentTest(string input)
        {
            if (!TestForValidCalculation(input))
            {
                return(new CalculatedResult()
                {
                    Answer = "An error has happened. Invalid Calculation",
                    DailyInterestCharge = ""
                });
            }

            var answer     = CalculateString(input);
            var dailyCosts = EstimateDailyCost((double)answer);

            var result = new CalculatedResult()
            {
                Answer = answer.ToString("C", new CultureInfo("en-AU")),
                DailyInterestCharge = dailyCosts
            };

            return(result);
        }
Esempio n. 6
0
        public async Task <CalculatedResult> CalculateResult(Guid surveyId)
        {
            CalculatedResult result = new CalculatedResult {
                IdSurvey = surveyId, ClientId = App.ClientIdentifier, IdApp = App.AppId
            };

            using (var db = new SurveyDbContext())
            {
                var votesQuery = db.Answer.AsNoTracking()
                                 .Where(w => w.IdSurvey == surveyId)
                                 .Join(db.Vote, a => a.IdAnswer, v => v.IdAnswer, (a, v) => new { Answer = a, Vote = v })
                                 .GroupBy(g => g.Answer)
                                 .Select(s => new Result {
                    IdAnswer = s.Key.IdAnswer, Votes = s.Count()
                });
                var votes = await votesQuery.ToArrayAsync();

                result.Result = votes;
            }
            AddResult(result);
            return(result);
        }
Esempio n. 7
0
        public void SurveyResult(CalculatedResult result)
        {
            var service = new SurveyService();

            service.AddResult(result);
        }