Ejemplo n.º 1
0
 public double Evaluate(double organizationRatio, IDictionary <string, double> variables)
 {
     return(Methods.Lerp(
                organizationRatio * Methods.Clamp(this.OrganizationFactor.Evaluate(variables), 0, 1),
                Improvised.Evaluate(variables),
                Organized.Evaluate(variables)
                ));
 }
Ejemplo n.º 2
0
        public SpaceEventGroup ForDay(int month, int day)
        {
            var Result = new SpaceEventGroup();

            if (Data.Count > 0)
            {
                var Target = string.Format(MONTH_DAY_FORMAT, month, day);

                var PrevDay = "";
                var NextDay = "";
                if (Organized.ContainsKey(Target))
                {
                    Result.Current      = Organized[Target];
                    Result.CurrentCount = Result.Current.Count();
                }

                if (PreviousNext.ContainsKey(Target))
                {
                    PrevDay = PreviousNext[Target].Previous;
                    NextDay = PreviousNext[Target].Next;
                }
                else
                {
                    var CheckDate = new DateTime(DateTime.Now.Year, month, day);
                    var NewTarget = "";
                    while (!PreviousNext.ContainsKey(NewTarget))
                    {
                        CheckDate = CheckDate.AddDays(1);
                        NewTarget = string.Format(MONTH_DAY_FORMAT, CheckDate.Month, CheckDate.Day);
                    }

                    PrevDay = PreviousNext[NewTarget].Previous;
                    if (Organized.ContainsKey(NewTarget))
                    {
                        NextDay = NewTarget;
                    }
                    else
                    {
                        NextDay = PreviousNext[NewTarget].Next;
                    }
                    PreviousNext.Add(Target, new PrevNext()
                    {
                        Previous = PrevDay, Next = NextDay
                    });
                }

                Result.Previous      = Organized[PrevDay].Last();
                Result.PreviousCount = Organized[PrevDay].Count();

                Result.Next      = Organized[NextDay].First();
                Result.NextCount = Organized[NextDay].Count();
            }

            return(Result);
        }