public IActionResult GetUserStats() { var currUser = _userManager.GetUserId(HttpContext.User); var unreadMessages = _context.Messages .Where(m => m.UserToId.Equals(currUser) && m.DateRead == null) .Count(); var upcomingBookings = _context.Bookings .Include(m => m.Tour) .Where(m => m.UserId.Equals(currUser) && m.Tour.StartDate > DateTime.Now) .Count(); var completedBookings = _context.Bookings .Include(m => m.Tour) .Where(m => m.UserId.Equals(currUser) && m.Tour.StartDate < DateTime.Now) .Count(); var userStatsDto = new UserStatsDto { unreadMessages = unreadMessages, upcomingBookings = upcomingBookings, completedBookings = completedBookings }; return(Ok(userStatsDto)); }
public ActionResult<UserStatsDto> GetUserStats() { ClaimsIdentity identity = HttpContext.User.Identity as ClaimsIdentity; int userId = int.Parse(identity.FindFirst(ClaimTypes.NameIdentifier).Value); UserStatsDto user = _statsService.GetUserStats(userId); return Ok(user); }
public async Task <UserStatsDto> GetUsersStats() { var users = await GetAllUsers(); int adminQuantity = 0, forwardersQuantity = 0, orderersQuantity = 0; if (users != null && users?.Count() != 0) { adminQuantity = users.Where(x => x.UserRoleId.Equals(Role.AdminId)).Count(); forwardersQuantity = users.Where(x => x.UserRoleId.Equals(Role.ForwarderId)).Count(); orderersQuantity = users.Where(x => x.UserRoleId.Equals(Role.OrdererId)).Count(); } var lastLoginAttempt = await unitOfWork.LoginHistoryRepository.GetLastLoginHistoryAsync(); UserDto lastLoggedUser = lastLoginAttempt == null ? null : new UserDto() { Id = lastLoginAttempt.User.Id, FirstName = lastLoginAttempt.User.FirstName, LastName = lastLoginAttempt.User.LastName, Gender = lastLoginAttempt.User.Gender, BirthDate = lastLoginAttempt.User.BirthDate, DateOfEmployment = lastLoginAttempt.User.DateOfEmployment, Login = lastLoginAttempt.User.Login, PeselNumber = lastLoginAttempt.User.PeselNumber, Mail = lastLoginAttempt.User.Mail, PhoneNumber = lastLoginAttempt.User.PhoneNumber, UserRoleId = lastLoginAttempt.User.UserRoleId, UserRole = lastLoginAttempt.User.UserRole.RoleName }; var todaysLoginAttempts = await unitOfWork.LoginHistoryRepository.GetTodaysLoginHistoryAsync(); int todaysLoginCount = 0; double todaysSuccessfulRate = 0; if (todaysLoginAttempts != null && todaysLoginAttempts.Count() != 0) { todaysLoginCount = todaysLoginAttempts.Count(); int todaySuccessfulLoginCount = todaysLoginAttempts.Where(x => x.IsSuccessful).Count(); todaysSuccessfulRate = todaySuccessfulLoginCount == 0 ? 0 : Math.Round((double)todaySuccessfulLoginCount / todaysLoginCount, 2) * 100; } var usersStatsDto = new UserStatsDto { AdminsQuantity = adminQuantity, ForwardersQuantity = forwardersQuantity, OrderersQuantity = orderersQuantity, LastLoggedUser = lastLoggedUser, TodaysLoginAttempts = todaysLoginCount, TodaysSuccessfulLoginRate = todaysSuccessfulRate }; return(usersStatsDto); }
private static void SaveData2Db(UserStatsDto postObject) { Uri requestUri = new Uri(""); //call to Rest Service to save in db using (HttpClient client = new HttpClient()) { HttpContent content = new ObjectContent <UserStatsDto>(postObject, GetMediaTypeFormatter()); client.PostAsync(requestUri, content); } }
public async Task GetUserStatsWithNoPostsAndFavouritesTest() { HttpClient client = _testServer.CreateClient(3); HttpResponseMessage response = await client.GetAsync(_apiEndpoint + $"api/user/Stats"); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); UserStatsDto content = await response.Content.ReadAsAsync <UserStatsDto>(); Assert.AreEqual(content.CreatePostCount, 0); Assert.AreEqual(content.FavouritePostCount, 0); }
public ActionResult <UserStatsDto[]> UsersInfo() { var userRanks = OrderByScore().ToArray(); List <User> userList = new List <User>(); for (int i = 0; i < userRanks.Length; i++) { userRanks[i].Rank = i + 1; _userService.UpdateRankPosition(userRanks[i].Id, userRanks[i]); _levelService.setUserLevel(userRanks[i]); userList.Add(userRanks[i]); } var userRanks2 = _userService.Get().ToArray(); UserStatsDto[] userRanksDto = new UserStatsDto[userRanks2.Length]; for (int i = 0; i < userRanks2.Length; i++) { userRanksDto[i] = new UserStatsDto(); userRanksDto[i].Id = userRanks2[i].Id; userRanksDto[i].Username = userRanks2[i].Username; userRanksDto[i].Email = userRanks2[i].Email; userRanksDto[i].Level = userRanks2[i].Level; userRanksDto[i].Score = userRanks2[i].Score; userRanksDto[i].Rank = userRanks2[i].Rank; } var listArray = this.OrderByScore2(userRanksDto).ToArray(); UserStatsDto[] usdto = new UserStatsDto[10]; for (int i = 0; i < listArray.Length; i++) { usdto[i] = listArray[i]; if (i == 9) { break; } } return(usdto); }
public ActionResult <UserStatsDto[]> Get() { var allUsers = _userService.Get().ToArray(); UserStatsDto[] userRanksDto = new UserStatsDto[allUsers.Length]; for (int i = 0; i < allUsers.Length; i++) { userRanksDto[i] = new UserStatsDto(); userRanksDto[i].Id = allUsers[i].Id; userRanksDto[i].Username = allUsers[i].Username; userRanksDto[i].Email = allUsers[i].Email; userRanksDto[i].Level = allUsers[i].Level; userRanksDto[i].Score = allUsers[i].Score; userRanksDto[i].Rank = allUsers[i].Rank; userRanksDto[i].dailyChallenges = allUsers[i].dailyChallenges; } return(userRanksDto); }