示例#1
0
        public override void GetRezult(ref ResearchFieldResult rezult, object classObject)
        {
            base.GetRezult(ref rezult, classObject);
            int val = (int)rezult.FieldValue;

            if (val >= 60 && val <= 70)
            {
                rezult.Level = ResearchLevel.Medium;
                return;
            }
            if (val < 60)
            {
                if (60 - val <= 5)
                {
                    rezult.Level = ResearchLevel.LowMedium;
                    return;
                }
                if (60 - val <= 10)
                {
                    rezult.Level = ResearchLevel.UpperLow;
                    return;
                }
                if (60 - val <= 15)
                {
                    rezult.Level = ResearchLevel.LowMedium;
                    return;
                }
                if (60 - val <= 20)
                {
                    rezult.Level = ResearchLevel.Low;
                    return;
                }
            }
            else if (val > 70)
            {
                if (val - 70 <= 5)
                {
                    rezult.Level = ResearchLevel.UpperMedium;
                    return;
                }
                if (val - 70 <= 10)
                {
                    rezult.Level = ResearchLevel.Lowhigh;
                    return;
                }
                if (val - 70 <= 15)
                {
                    rezult.Level = ResearchLevel.High;
                    return;
                }
                if (val - 70 <= 20)
                {
                    rezult.Level = ResearchLevel.UpperHigh;
                    return;
                }
            }
        }
示例#2
0
        public virtual void GetRezult(ref ResearchFieldResult rezult, object classObject)
        {
            var variable = ObjecType.GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)
                           .Where(field => field.FieldType == FieldType && field.Name.Contains(FieldName))
                           .FirstOrDefault();

            if (variable == null)
            {
                throw new Exception();
            }
            rezult.FieldValue = variable.GetValue(classObject);
        }
示例#3
0
        public override void GetRezult(ref ResearchFieldResult rezult, object classObject)
        {
            base.GetRezult(ref rezult, classObject);
            int val        = (int)rezult.FieldValue;
            int percentage = MaxCount * 100 / val;

            if (percentage == 100)
            {
                rezult.Level = ResearchLevel.Medium;
                return;
            }
            if (percentage > 95)
            {
                rezult.Level = ResearchLevel.Low;
                return;
            }
            if (percentage > 90)
            {
                rezult.Level = ResearchLevel.UpperLow;
                return;
            }
            if (percentage > 85)
            {
                rezult.Level = ResearchLevel.LowMedium;
                return;
            }
            if (percentage > 80)
            {
                rezult.Level = ResearchLevel.UpperMedium;
                return;
            }
            if (percentage > 70)
            {
                rezult.Level = ResearchLevel.Lowhigh;
                return;
            }
            if (percentage > 60)
            {
                rezult.Level = ResearchLevel.High;
                return;
            }
            if (percentage > 50)
            {
                rezult.Level = ResearchLevel.UpperHigh;
                return;
            }
            if (percentage < 50)
            {
                rezult.Level = ResearchLevel.Critical;
                return;
            }
        }
示例#4
0
        public override void GetRezult(ref ResearchFieldResult rezult, object classObject)
        {
            var weather = classObject as Weather;

            rezult.FieldValue = weather;
            if (weather == null)
            {
                rezult.Level = ResearchLevel.None;
                return;
            }
            if (weather.WindSpeed <= 5 && Math.Abs(weather.Pressure - 760) < 5 && weather.Humidity < 70 && 24 - weather.Tempherature <= 2)
            {
                rezult.Level = ResearchLevel.Medium;
                return;
            }
            if (weather.WindSpeed - 5 <= 10 && Math.Abs(weather.Pressure - 760) < 10 && 75 - weather.Humidity < 5 && Math.Abs(weather.Tempherature) < 5)
            {
                rezult.Level = ResearchLevel.Low;
                return;
            }
            if (weather.WindSpeed - 5 <= 20 && Math.Abs(weather.Pressure - 760) < 15 && 80 - weather.Humidity < 5 && Math.Abs(weather.Tempherature) < 7)
            {
                rezult.Level = ResearchLevel.UpperLow;
                return;
            }
            if (weather.WindSpeed - 5 <= 30 && Math.Abs(weather.Pressure - 760) < 20 && 85 - weather.Humidity < 5 && Math.Abs(weather.Tempherature) < 10)
            {
                rezult.Level = ResearchLevel.LowMedium;
                return;
            }
            if (weather.WindSpeed - 5 <= 40 && Math.Abs(weather.Pressure - 760) < 25 && 90 - weather.Humidity < 5 && Math.Abs(weather.Tempherature) < 13)
            {
                rezult.Level = ResearchLevel.UpperMedium;
                return;
            }
            if (weather.WindSpeed - 5 <= 50 && Math.Abs(weather.Pressure - 760) < 27 && 95 - weather.Humidity < 5 && Math.Abs(weather.Tempherature) < 15)
            {
                rezult.Level = ResearchLevel.Lowhigh;
                return;
            }
            if (weather.WindSpeed - 5 <= 50 && Math.Abs(weather.Pressure - 760) < 28 && 97 - weather.Humidity < 5 && Math.Abs(weather.Tempherature) < 15)
            {
                rezult.Level = ResearchLevel.High;
                return;
            }
            if (weather.WindSpeed - 5 > 50 && Math.Abs(weather.Pressure - 760) > 28 && 100 - weather.Humidity < 3 && Math.Abs(weather.Tempherature) > 15)
            {
                rezult.Level = ResearchLevel.UpperHigh;
                return;
            }
        }
示例#5
0
        private Dictionary <string, ResearchFieldResult> GetCalculation(IData data)
        {
            var dictionary       = new Dictionary <string, ResearchFieldResult>();
            var serializableData = data as SerializableClass;

            if (serializableData == null)
            {
                return(null);
            }

            ResearchFieldResult rezult;

            dictionary.Add("Location", new ResearchFieldResult {
                FieldValue = serializableData.Location, Level = ResearchLevel.None
            });
            dictionary.Add("NatureOfBattle", new ResearchFieldResult {
                FieldValue = null, Level = ResearchLevel.None
            });
            dictionary.Add("SolderID", new ResearchFieldResult {
                FieldValue = serializableData.SolderID, Level = ResearchLevel.None
            });
            dictionary.Add("DateID", new ResearchFieldResult {
                FieldValue = serializableData.DateID, Level = ResearchLevel.None
            });

            rezult = new ResearchFieldResult();
            new WeatherRezulter().GetRezult(ref rezult, serializableData.WeatherID);
            dictionary.Add("Weather", rezult);

            rezult = new ResearchFieldResult();
            new PulseRezulter(serializableData.Pulse.GetType(), "Pulse", serializableData.GetType()).GetRezult(ref rezult, serializableData);
            dictionary.Add("Pulse", rezult);

            rezult = new ResearchFieldResult();
            new AmmunittionRezulter(serializableData.BulletProofVestState.GetType(), "Ammunittions", serializableData.GetType(), 250).GetRezult(ref rezult, serializableData);
            dictionary.Add("Ammunittions", rezult);

            rezult = new ResearchFieldResult();
            new BulletProofRezulter(serializableData.BulletProofVestState.GetType(), "BulletProofVestState", serializableData.GetType()).GetRezult(ref rezult, serializableData);
            dictionary.Add("BulletProofVestState", rezult);

            return(dictionary);
        }