@@ -28,7 +28,7 @@ public VisitDTO ConvertItemToDto(Community_Visit item)
2828 dto . id = item . id ;
2929 dto . date = item . date ;
3030 dto . visitor_id = item . visitor_id ;
31- dto . tab_id = item . tab_id ;
31+ dto . tab_id = item . tab_id ;
3232 dto . country = item . country ;
3333 dto . region = item . region ;
3434 dto . city = item . city ;
@@ -68,7 +68,7 @@ public Community_Visit ConvertDtoToItem(Community_Visit item, VisitDTO dto)
6868 item . id = dto . id ;
6969 item . date = dto . date ;
7070 item . visitor_id = dto . visitor_id ;
71- item . tab_id = dto . tab_id ;
71+ item . tab_id = dto . tab_id ;
7272 item . country = dto . country ;
7373 item . region = dto . region ;
7474 item . city = dto . city ;
@@ -142,6 +142,8 @@ public HttpResponseMessage Get(int id)
142142 }
143143 }
144144
145+
146+ // used for the top graph
145147 [ HttpGet ]
146148 [ DnnModuleAuthorize ( AccessLevel = SecurityAccessLevel . View ) ]
147149 public HttpResponseMessage Get ( int portal_id , Nullable < DateTime > period_start , Nullable < DateTime > period_end )
@@ -184,6 +186,7 @@ public HttpResponseMessage Get(int portal_id, Nullable<DateTime> period_start, N
184186 }
185187 }
186188
189+ // used for the bottom detail graph
187190 [ HttpGet ]
188191 [ DnnModuleAuthorize ( AccessLevel = SecurityAccessLevel . View ) ]
189192 public HttpResponseMessage Get ( string field , int portal_id , Nullable < DateTime > period_start , Nullable < DateTime > period_end , int rows )
@@ -249,7 +252,7 @@ public HttpResponseMessage Get(string field, int portal_id, Nullable<DateTime> p
249252 case "url" :
250253 grouped = list . GroupBy ( i => i . url ) ;
251254 break ;
252-
255+
253256 case "country" :
254257 grouped = list . GroupBy ( i => i . country ) ;
255258 break ;
@@ -403,50 +406,6 @@ public VisitDTO SaveVisit(VisitDTO dto)
403406 return ConvertItemToDto ( visit ) ;
404407 }
405408
406- //[NonAction]
407- //public void WriteVisits()
408- //{
409- // List<VisitDTO> visit_dtos = new List<VisitDTO>();
410-
411- // // dictionary to store visitors to update
412- // Dictionary<int, Nullable<int>> dicVisitors = new Dictionary<int, Nullable<int>>();
413-
414- // // get all visitor objects from Cache
415- // dynamic CacheItems = HttpRuntime.Cache.Cast<DictionaryEntry>().Select(entry => (string)entry.Key).Where(key => key.StartsWith("DNNVISITOR")).ToArray();
416-
417- // // iterate through visit items
418- // foreach (string Key in CacheItems)
419- // {
420- // // get visitor object
421- // VisitDTO visit_dto = (VisitDTO)HttpRuntime.Cache.Get(Key);
422-
423- // // populate visit fields
424- // visit_dto = ProcessVisit(visit_dto);
425-
426- // Visit visit = ConvertDtoToItem(null, visit_dto);
427- // dc.Visits.InsertOnSubmit(visit);
428- // dc.SubmitChanges();
429-
430- // //// save visitor
431- // //if (!dicVisitors.ContainsKey(visit_dto.visitor_id))
432- // //{
433- // // dicVisitors.Add(visit_dto.visitor_id, visit_dto..user_id);
434- // //}
435- // //else
436- // //{
437- // // dicVisitors[visit_dto.visitor_id] = visit_dto.user_id;
438- // //}
439-
440- // HttpRuntime.Cache.Remove(Key);
441- // }
442-
443- // //// iterate through all visitors that need to be updated
444- // //foreach (KeyValuePair<int, Nullable<int>> kvp in dicVisitors)
445- // //{
446- // // visitorController.UpdateVisitor(kvp.Key, kvp.Value);
447- // //}
448- //}
449-
450409 [ NonAction ]
451410 public VisitDTO ProcessVisit ( VisitDTO visit )
452411 {
@@ -559,8 +518,10 @@ public void PurgeVisits()
559518 }
560519
561520 [ NonAction ]
562- public List < DateCountDTO > GetViews ( int portal_id , Nullable < DateTime > start_date , Nullable < DateTime > end_date )
521+ public List < int > GetViews ( int portal_id , Nullable < DateTime > start_date , Nullable < DateTime > end_date )
563522 {
523+ var views = new List < int > ( ) ;
524+
564525 var query = dc . Community_Visits . Where ( i => i . Tab . PortalID == portal_id ) ;
565526
566527 if ( start_date . HasValue )
@@ -573,9 +534,7 @@ public List<DateCountDTO> GetViews(int portal_id, Nullable<DateTime> start_date,
573534 query = query . Where ( i => i . date . Date <= end_date . GetValueOrDefault ( ) . Date ) ;
574535 }
575536
576- var list = query . ToList ( ) ;
577-
578- var results = list
537+ var results = query
579538 . GroupBy ( i => i . date . Date )
580539 . Select ( i => new DateCountDTO ( )
581540 {
@@ -585,12 +544,30 @@ public List<DateCountDTO> GetViews(int portal_id, Nullable<DateTime> start_date,
585544 . OrderBy ( i => i . date )
586545 . ToList ( ) ;
587546
588- return results ;
547+ var date = start_date . GetValueOrDefault ( ) . Date ;
548+ var end = end_date . GetValueOrDefault ( ) . Date ;
549+ while ( date <= end )
550+ {
551+ var result = results . Where ( i => i . date . Date == date . Date ) . SingleOrDefault ( ) ;
552+ if ( result != null )
553+ {
554+ views . Add ( result . count ) ;
555+ }
556+ else
557+ {
558+ views . Add ( 0 ) ;
559+ }
560+ date = date . AddDays ( 1 ) ;
561+ }
562+
563+ return views ;
589564 }
590565
591566 [ NonAction ]
592- public List < DateCountDTO > GetVisits ( int portal_id , Nullable < DateTime > start_date , Nullable < DateTime > end_date )
567+ public List < int > GetVisits ( int portal_id , Nullable < DateTime > start_date , Nullable < DateTime > end_date )
593568 {
569+ var visits = new List < int > ( ) ;
570+
594571 var query = dc . Community_Visits . Where ( i => i . Tab . PortalID == portal_id ) ;
595572
596573 if ( start_date . HasValue )
@@ -603,9 +580,7 @@ public List<DateCountDTO> GetVisits(int portal_id, Nullable<DateTime> start_date
603580 query = query . Where ( i => i . date . Date <= end_date . GetValueOrDefault ( ) . Date ) ;
604581 }
605582
606- var list = query . ToList ( ) ;
607-
608- var results = list
583+ var results = query
609584 . GroupBy ( i => i . date . Date )
610585 . Select ( i => new DateCountDTO ( )
611586 {
@@ -615,12 +590,30 @@ public List<DateCountDTO> GetVisits(int portal_id, Nullable<DateTime> start_date
615590 . OrderBy ( i => i . date )
616591 . ToList ( ) ;
617592
618- return results ;
593+ var date = start_date . GetValueOrDefault ( ) . Date ;
594+ var end = end_date . GetValueOrDefault ( ) . Date ;
595+ while ( date <= end )
596+ {
597+ var result = results . Where ( i => i . date . Date == date . Date ) . SingleOrDefault ( ) ;
598+ if ( result != null )
599+ {
600+ visits . Add ( result . count ) ;
601+ }
602+ else
603+ {
604+ visits . Add ( 0 ) ;
605+ }
606+ date = date . AddDays ( 1 ) ;
607+ }
608+
609+ return visits ;
619610 }
620611
621612 [ NonAction ]
622- public List < DateCountDTO > GetVisitors ( int portal_id , Nullable < DateTime > start_date , Nullable < DateTime > end_date )
613+ public List < int > GetVisitors ( int portal_id , Nullable < DateTime > start_date , Nullable < DateTime > end_date )
623614 {
615+ var visitors = new List < int > ( ) ;
616+
624617 var query = dc . Community_Visits . Where ( i => i . Tab . PortalID == portal_id ) ;
625618
626619 if ( start_date . HasValue )
@@ -633,9 +626,7 @@ public List<DateCountDTO> GetVisitors(int portal_id, Nullable<DateTime> start_da
633626 query = query . Where ( i => i . date . Date <= end_date . GetValueOrDefault ( ) . Date ) ;
634627 }
635628
636- var list = query . ToList ( ) ;
637-
638- var results = list
629+ var results = query
639630 . GroupBy ( i => i . date . Date )
640631 . Select ( i => new DateCountDTO ( )
641632 {
@@ -645,12 +636,30 @@ public List<DateCountDTO> GetVisitors(int portal_id, Nullable<DateTime> start_da
645636 . OrderBy ( i => i . date )
646637 . ToList ( ) ;
647638
648- return results ;
639+ var date = start_date . GetValueOrDefault ( ) . Date ;
640+ var end = end_date . GetValueOrDefault ( ) . Date ;
641+ while ( date <= end )
642+ {
643+ var result = results . Where ( i => i . date . Date == date . Date ) . SingleOrDefault ( ) ;
644+ if ( result != null )
645+ {
646+ visitors . Add ( result . count ) ;
647+ }
648+ else
649+ {
650+ visitors . Add ( 0 ) ;
651+ }
652+ date = date . AddDays ( 1 ) ;
653+ }
654+
655+ return visitors ;
649656 }
650657
651658 [ NonAction ]
652- public List < DateCountDTO > GetUsers ( int portal_id , Nullable < DateTime > start_date , Nullable < DateTime > end_date )
659+ public List < int > GetUsers ( int portal_id , Nullable < DateTime > start_date , Nullable < DateTime > end_date )
653660 {
661+ var users = new List < int > ( ) ;
662+
654663 var query = dc . Community_Visits . Where ( i => i . Tab . PortalID == portal_id ) ;
655664
656665 if ( start_date . HasValue )
@@ -663,9 +672,7 @@ public List<DateCountDTO> GetUsers(int portal_id, Nullable<DateTime> start_date,
663672 query = query . Where ( i => i . date . Date <= end_date . GetValueOrDefault ( ) . Date ) ;
664673 }
665674
666- var list = query . ToList ( ) ;
667-
668- var results = list
675+ var results = query
669676 . GroupBy ( i => i . date . Date )
670677 . Select ( i => new DateCountDTO ( )
671678 {
@@ -675,8 +682,23 @@ public List<DateCountDTO> GetUsers(int portal_id, Nullable<DateTime> start_date,
675682 . OrderBy ( i => i . date )
676683 . ToList ( ) ;
677684
678- return results ;
679- }
685+ var date = start_date . GetValueOrDefault ( ) . Date ;
686+ var end = end_date . GetValueOrDefault ( ) . Date ;
687+ while ( date <= end )
688+ {
689+ var result = results . Where ( i => i . date . Date == date . Date ) . SingleOrDefault ( ) ;
690+ if ( result != null )
691+ {
692+ users . Add ( result . count ) ;
693+ }
694+ else
695+ {
696+ users . Add ( 0 ) ;
697+ }
698+ date = date . AddDays ( 1 ) ;
699+ }
680700
701+ return users ;
702+ }
681703 }
682704}
0 commit comments