Exemple #1
0
        public static AccuracyAward Accuracy(double compAccuracy, bool isLocked, string compName, ModelsContext context)
        {
            AccuracyAward accuracyAward = new AccuracyAward();

            if (!isLocked)
            {
                var requirements = ReadAwardsRules()["Accuracy"];
                foreach (string req in requirements.Split(','))
                {
                    if (req.Contains("gold"))
                    {
                        accuracyAward.Gold = compAccuracy >= int.Parse(req.Split(' ')[1].Trim());
                        if (accuracyAward.Gold)
                        {
                            NotificationMessages notificationMessages = new NotificationMessages(context);
                            notificationMessages.AccuracyAwardNotification("gold", compName);
                        }
                        if (accuracyAward.Gold)
                        {
                            accuracyAward.GoldRequirementStatus = req.Split(' ')[1].Trim() + "% REACHED";
                        }
                        else
                        {
                            accuracyAward.GoldRequirementStatus = "REACH " + req.Split(' ')[1].Trim() + "%";
                        }
                    }
                    else if (req.Contains("silver"))
                    {
                        accuracyAward.Silver = compAccuracy >= int.Parse(req.Split(' ')[1].Trim());
                        if (accuracyAward.Silver)
                        {
                            NotificationMessages notificationMessages = new NotificationMessages(context);
                            notificationMessages.AccuracyAwardNotification("silver", compName);
                        }
                        if (accuracyAward.Silver)
                        {
                            accuracyAward.SilverRequirementStatus = req.Split(' ')[1].Trim() + "% REACHED";
                        }
                        else
                        {
                            accuracyAward.SilverRequirementStatus = "REACH " + req.Split(' ')[1].Trim() + "%";
                        }
                    }
                    else
                    {
                        accuracyAward.Bronze = compAccuracy >= int.Parse(req.Split(' ')[1].Trim());
                        if (accuracyAward.Bronze)
                        {
                            NotificationMessages notificationMessages = new NotificationMessages(context);
                            notificationMessages.AccuracyAwardNotification("bronze", compName);
                        }
                        if (accuracyAward.Bronze)
                        {
                            accuracyAward.BronzeRequirementStatus = req.Split(' ')[1].Trim() + "% REACHED";
                        }
                        else
                        {
                            accuracyAward.BronzeRequirementStatus = "REACH " + req.Split(' ')[1].Trim() + "%";
                        }
                    }
                }
            }
            else
            {
                var requirements = ReadAwardsRules()["Accuracy"];
                accuracyAward.Gold = false;
                accuracyAward.GoldRequirementStatus = "REACH " + requirements.Split(',')[0].Split(' ')[1] + "%";
                accuracyAward.Silver = false;
                accuracyAward.SilverRequirementStatus = "REACH " + requirements.Split(',')[1].Split(' ')[1] + "%";
                accuracyAward.Bronze = false;
                accuracyAward.BronzeRequirementStatus = "REACH " + requirements.Split(',')[2].Split(' ')[1] + "%";
            }

            return(accuracyAward);
        }