Example #1
0
        public async Task Seed(WwwContext context, WwwCreate NewRun = null)
        {
            Random rng = new Random();

            List <DateTime> dates = new List <DateTime>();
            DateTime        edate = DateTime.Today;

            for (int i = 0; i < 60; i++)
            {
                dates.Add(edate);
                edate.AddDays(-1);
            }


            for (int i = 0; i < 1000; i++)
            {
                EntityRunFormData data = new EntityRunFormData();
                WwwWalk           walk = context.wwwWalks.Include(i => i.WwwSchools).First(f => f.isActive == true);
                data.Walk   = walk.Name;
                data.School = walk.WwwSchools.First().Name;
                int index = rng.Next(WwwData.s_classes.Length);
                data.SchoolClass = WwwData.s_classes[index];
                data.Distance    = (float)rng.Next(1, 41);
                data.Identifier  = Guid.NewGuid().ToString("N");
                index            = rng.Next(dates.Count);
                data.Time        = dates[index];

                var ent = await Submit(context, data, true);
            }

            await context.SaveChangesAsync();
        }
Example #2
0
        public async Task <WwwFeedback> GetFeedback(WwwContext context, WwwWalk walk, WwwSchool school, WwwClass wwwclass, WwwEntity entity)
        {
            WwwFeedback feedback = new WwwFeedback();

            feedback.SchoolPosition   = (await context.wwwSchools.AsNoTracking().OrderByDescending(o => o.TotalRuns).ToListAsync()).FindIndex(f => f.ID == school.ID) + 1;
            feedback.SchoolPercentage = MathF.Round(school.TotalRuns * 100 / walk.TotalRuns, 2);
            feedback.SchoolTotal      = MathF.Round(school.TotalRuns, 2);
            feedback.ClassPosition    = (await context.wwwClasses.AsNoTracking().OrderByDescending(o => o.TotalRuns).ToListAsync()).FindIndex(f => f.ID == wwwclass.ID) + 1;
            feedback.ClassPercentage  = MathF.Round(wwwclass.TotalRuns * 100 / walk.TotalRuns, 2);
            feedback.ClassTotal       = MathF.Round(wwwclass.TotalRuns, 2);
            feedback.EntPosition      = (await context.wwwEntities.AsNoTracking().OrderByDescending(o => o.TotalRuns).ToListAsync()).FindIndex(f => f.ID == entity.ID) + 1;
            feedback.EntPercentage    = MathF.Round(entity.TotalRuns * 100 / walk.TotalRuns, 2);
            feedback.EntTotal         = MathF.Round(entity.TotalRuns, 2);

            var years = await context.wwwClasses.AsNoTracking().Select(s => s.Year).Distinct().ToArrayAsync();

            List <KeyValuePair <int, float> > YearList = new List <KeyValuePair <int, float> >();

            foreach (var year in years)
            {
                float sum = await context.wwwClasses.AsNoTracking().Where(x => x.Year == year).SumAsync(s => s.TotalRuns);

                YearList.Add(new KeyValuePair <int, float>(year, sum));
                if (year == wwwclass.Year)
                {
                    feedback.YearTotal = sum;
                }
            }
            feedback.YearPosition   = YearList.Select(s => s.Value).OrderByDescending(o => o).ToList().FindIndex(f => f == feedback.YearTotal) + 1;
            feedback.YearPercentage = MathF.Round(feedback.YearTotal * 100 / walk.TotalRuns, 2);
            return(feedback);
        }
Example #3
0
        public async Task Delete(WwwContext context, WwwWalk walk)
        {
            var schools = await context.wwwSchools.Where(x => x.WwwWalk == walk).ToListAsync();

            foreach (var school in schools)
            {
                await Delete(context, school, true);
            }

            context.wwwWalks.Remove(walk);
            await context.SaveChangesAsync();
        }
Example #4
0
        public void Init(WwwContext context)
        {
            WwwCounter c1 = context.wwwCounters.FirstOrDefault(f => f.Name == "GetCurrent");

            if (c1 == null)
            {
                c1 = new WwwCounter()
                {
                    Name = "GetCurrent"
                };
                WwwCounter c2 = new WwwCounter()
                {
                    Name = "Years"
                };
                WwwCounter c3 = new WwwCounter()
                {
                    Name = "Classes"
                };
                context.wwwCounters.AddRange(new WwwCounter[] { c1, c2, c3 });
                context.SaveChanges();
            }

            var walk = context.wwwWalks.FirstOrDefault(f => f.Name == WwwData.s_walk);

            if (walk != null)
            {
                return;
            }
            walk = new WwwWalk()
            {
                Name          = WwwData.s_walk,
                TotalDistance = WwwData.TotalDistance,
                isActive      = true
            };
            var school = new WwwSchool()
            {
                Name    = WwwData.s_school,
                WwwWalk = walk
            };

            context.wwwSchools.Add(school);
            context.SaveChanges();
        }
Example #5
0
        public async Task Create(WwwContext context, WwwCreate Create)
        {
            WwwWalk walk = new WwwWalk();

            walk               = new WwwWalk();
            walk.isActive      = true;
            walk.Name          = Create.Name;
            walk.Start         = DateTime.UtcNow;
            walk.TotalDistance = Create.TotalDistance;
            context.wwwWalks.Add(walk);

            WwwSchool school = new WwwSchool();

            school.WwwWalk = walk;
            school.Name    = Create.SchoolName;
            context.wwwSchools.Add(school);

            await context.SaveChangesAsync();
        }
Example #6
0
        public async Task <float> GetCurrent(WwwContext context)
        {
            WwwWalk walk = await context.wwwWalks.FirstAsync(f => f.Name == WwwData.s_walk);

            return(walk.TotalRuns);
        }