public async Task <ActionResult <DailyStatisticsViewModel> > GetDailyStatistcs() { if (User.Identity.IsAuthenticated == false) { return(BadRequest()); } var ads = await _functionalUnitOfWork.AdRepository.All(); var userId = User.NameIdentifier(); var contacts = await _functionalUnitOfWork.ContactRepository.GetContacts(userId); var sents = await _functionalUnitOfWork.InvitationRepository.GetInvitationsBy(userId); var received = await _functionalUnitOfWork.InvitationRepository.GetInvitationsFor(userId); var daily = new DailyStatisticsViewModel { UserStatistics = new UserStatisticsViewModel { NbOfUsers = _userManager.Users.Count(), NbOfUsersOnline = _userManager.Users.Where(u => u.IsOnline).Count() }, AdsStatistics = new AdsStatisticsViewModel { AdsCount = ads.Count, AdsOnline = ads.Count(a => a.StartDisplayTime <= DateTime.UtcNow && a.EndDisplayTime >= DateTime.UtcNow && a.IsValid) }, OwnerStatistics = new OwnerStatisticsViewModel { ContactsCount = contacts.Count, AdsCount = ads.Count(a => a.OwnerId == userId), InvitationSentCount = sents.Count, InvitationReceivedCount = received.Count } }; return(Ok(daily)); }
public List <DailyStatisticsViewModel> GetDailyUserRegistrationChartData(int year, int month, int day) { List <DailyStatisticsViewModel> list = new List <DailyStatisticsViewModel>(); for (int i = 0; i <= 23; i++) { DailyStatisticsViewModel model = new DailyStatisticsViewModel(); model.Hour = i; if (i <= 9) { model.HourString = String.Format("0{0}:00", i); } else { model.HourString = String.Format("{0}:00", i); } var createdUser = _unitOfWork.UserRepository.FindBy(u => u.CreationDate.Day == day && u.CreationDate.Month == month && u.CreationDate.Year == year && u.CreationDate.Hour == i); model.Count = createdUser.Count(); list.Add(model); } return(list); }
public List <DailyStatisticsViewModel> GetDailyActiveClassifiedChartData(int year, int month, int day) { List <DailyStatisticsViewModel> list = new List <DailyStatisticsViewModel>(); for (int i = 0; i <= 23; i++) { DailyStatisticsViewModel model = new DailyStatisticsViewModel(); model.Hour = i; if (i <= 9) { model.HourString = String.Format("0{0}:00", i); } else { model.HourString = String.Format("{0}:00", i); } var activeClassifieds = _unitOfWork.ClassifiedRepository.FindBy(u => u.Status == AdStatusList.Active && u.PostingDate.Value.Day == day && u.PostingDate.Value.Month == month && u.PostingDate.Value.Year == year && u.PostingDate.Value.Hour == i); model.Count = activeClassifieds.Count(); list.Add(model); } return(list); }