Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
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);
        }