Exemplo n.º 1
0
        public async Task <IActionResult> Index(string name, string page_nb)
        {
            int  userId        = Int32.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value);
            int  idAssociation = Int32.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.UserData).Value);
            User user          = await _repo.findById(userId);

            List <UserAssociation> userAssociations = _assoc.GetUserAssociations().Where(x => x.IdAssociation == idAssociation).ToList();
            List <PrivateUser>     privateUsers     = new List <PrivateUser>();
            List <User>            users            = new List <User>();
            int        usersOnPage = 5;
            int        userNb      = _assoc.GetUserAssociations().Count(x => x.IdAssociation == idAssociation);
            int        pageNb      = 0;
            double     pages       = (double)userNb / usersOnPage;
            int        pagesNb     = (int)Math.Ceiling(pages);
            List <int> pageList    = new List <int>();

            foreach (UserAssociation ua in userAssociations)
            {
                User userAux = await _repo.findById((int)ua.IdUser);

                users.Add(userAux);
            }
            if (name != null)
            {
                foreach (UserAssociation ua in userAssociations)
                {
                    User userAux = await _repo.findById((int)ua.IdUser);

                    if (userAux.Name == name && ua.IdAssociation == idAssociation)
                    {
                        PrivateUser pU = new Library.Data.Models.PrivateUser();
                        pU.Email   = userAux.Email;
                        pU.Surname = userAux.Surname;
                        pU.Name    = userAux.Name;
                        pU.Cnp     = userAux.Cnp;
                        pU.License = userAux.License;
                        pU.Id      = userAux.Id;
                        privateUsers.Add(pU);
                    }
                }
            }
            else if (page_nb != null)
            {
                switch (page_nb)
                {
                case "First":
                    pageNb = 0;
                    break;

                case "Last":
                    pageNb = pagesNb - 1;
                    break;

                default:
                    pageNb = Int32.Parse(page_nb) - 1;
                    break;
                }
                for (int i = pageNb * usersOnPage; i < pageNb * usersOnPage + usersOnPage && i < userNb; i++)
                {
                    PrivateUser u1 = new Library.Data.Models.PrivateUser();
                    // u1.Function = users[i].IdUserFunctionNavigation.FunctionName;
                    u1.Email   = users[i].Email;
                    u1.Surname = users[i].Surname;
                    u1.Name    = users[i].Name;
                    u1.Cnp     = users[i].Cnp;
                    u1.License = users[i].License;
                    u1.Id      = users[i].Id;
                    privateUsers.Add(u1);
                }
                for (int i = 0; i < 3; i++)
                {
                    pageList.Add(i);
                }
            }
            else
            {
                for (int i = 0; i < usersOnPage; i++)
                {
                    PrivateUser u1 = new Library.Data.Models.PrivateUser();
                    u1.Email   = users[i].Email;
                    u1.Surname = users[i].Surname;
                    u1.Name    = users[i].Name;
                    u1.Cnp     = users[i].Cnp;
                    u1.License = users[i].License;
                    u1.Id      = users[i].Id;
                    privateUsers.Add(u1);
                }
            }
            int sendCurrent = pageNb + 1;

            ViewBag.LastPage         = pagesNb;
            ViewBag.CurrentPage      = sendCurrent;
            ViewBag.NumberOfPages    = pageList;
            ViewData["PrivateUsers"] = privateUsers;
            ViewData["CurrentUser"]  = user.Name + " " + user.Surname;
            return(View());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Index(string name, string page_nb)
        {
            int userId         = Int32.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value);
            var user_functions = await _repo.getAllUserFunctions();

            User user = await _repo.findById(userId);

            List <PrivateUser> privateUsers = new List <PrivateUser>();
            int         usersOnPage         = 5;
            List <User> users;
            int         userNb      = _repo.getNumberOfUsers();
            int         pageNb      = 0;
            double      pages       = (double)userNb / usersOnPage;
            int         pagesNb     = (int)Math.Ceiling(pages);
            int         sendCurrent = 1;
            List <int>  pageList    = new List <int>();

            for (int i = 0; i < 3; i++)
            {
                pageList.Add(i);
            }
            if (name != null)
            {
                users = await _repo.findByName(name);

                for (int i = 0; i < users.Count; i++)
                {
                    PrivateUser u1 = new Library.Data.Models.PrivateUser();
                    u1.Email   = users[i].Email;
                    u1.Surname = users[i].Surname;
                    u1.Name    = users[i].Name;
                    u1.Cnp     = users[i].Cnp;
                    u1.License = users[i].License;
                    u1.Id      = users[i].Id;
                    privateUsers.Add(u1);
                }
            }
            else if (page_nb != null)
            {
                users = await _repo.getAllUser();

                switch (page_nb)
                {
                case "First":
                    pageNb = 0;
                    break;

                case "Last":
                    pageNb = pagesNb - 1;
                    break;

                default:
                    pageNb = Int32.Parse(page_nb) - 1;
                    break;
                }
                sendCurrent = pageNb + 1;
                for (int i = pageNb * usersOnPage; i < pageNb * usersOnPage + usersOnPage && i < userNb; i++)
                {
                    PrivateUser u1 = new Library.Data.Models.PrivateUser();
                    //u1.Function = users[i].IdUserFunctionNavigation.FunctionName;
                    u1.Email   = users[i].Email;
                    u1.Surname = users[i].Surname;
                    u1.Name    = users[i].Name;
                    u1.Cnp     = users[i].Cnp;
                    u1.License = users[i].License;
                    u1.Id      = users[i].Id;
                    privateUsers.Add(u1);
                }
            }
            else
            {
                users = await _repo.getAllUser();

                for (int i = 0; i < usersOnPage; i++)
                {
                    PrivateUser u1 = new Library.Data.Models.PrivateUser();
                    //u1.Function = users[i].IdUserFunctionNavigation.FunctionName;
                    u1.Email   = users[i].Email;
                    u1.Surname = users[i].Surname;
                    u1.Name    = users[i].Name;
                    u1.Cnp     = users[i].Cnp;
                    u1.License = users[i].License;
                    u1.Id      = users[i].Id;
                    privateUsers.Add(u1);
                }
            }
            ViewBag.CurrentPage      = sendCurrent;
            ViewBag.LastPage         = pagesNb;
            ViewBag.NumberOfPages    = pageList;
            ViewData["PrivateUsers"] = privateUsers;
            ViewData["CurrentUser"]  = user.Name + " " + user.Surname;
            return(View());
        }