Exemplo n.º 1
0
        public async Task <ActionResult> Upload()
        {
            var visitsAsText     = new StreamReader(Request.InputStream).ReadToEnd();
            var visitsDictionary = JsonConvert.DeserializeObject <Dictionary <string, DateTime> >(visitsAsText);
            var userId           = User.Identity.GetUserId();
            var visits           = new List <Visit>();
            var slides           = courseManager.GetCourses().SelectMany(course => course.Slides.Select(slide => new { courseId = course.Id, slideId = slide.Id })).ToDictionary(arg => arg.slideId, arg => arg.courseId);

            foreach (var visit in visitsDictionary)
            {
                var    slideId = visit.Key;
                string courseId;
                if (!slides.TryGetValue(slideId, out courseId))
                {
                    continue;
                }
                visits.Add(new Visit
                {
                    UserId    = userId,
                    CourseId  = courseId,
                    SlideId   = slideId,
                    Timestamp = visit.Value
                });
            }
            await visitsRepo.AddVisits(visits);

            return(null);
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Upload()
        {
            var visitsAsText     = new StreamReader(Request.InputStream).ReadToEnd();
            var visitsDictionary = JsonConvert.DeserializeObject <Dictionary <string, DateTime> >(visitsAsText);
            var userId           = User.Identity.GetUserId();
            var visits           = new List <Visit>();

            foreach (var visit in visitsDictionary)
            {
                /* visit.Key is "<courseId> <slideId>" */
                var splittedVisit = visit.Key.Split(' ');
                var courseId      = splittedVisit[0];
                var slideId       = Guid.Parse(splittedVisit.Length > 1 ? splittedVisit[1] : splittedVisit[0]);
                visits.Add(new Visit
                {
                    UserId    = userId,
                    CourseId  = courseId,
                    SlideId   = slideId,
                    Timestamp = visit.Value
                });
            }
            await visitsRepo.AddVisits(visits);

            return(null);
        }