Example #1
0
        /// <summary>
        /// Retrieve the list of users with filters and pagination
        /// </summary>
        /// <param name="pageNumber">Page number</param>
        /// <param name="firstName">First name</param>
        /// <param name="lastName">Last name</param>
        /// <param name="isExport">Is or not export to excel</param>
        public void SearchUsers(int pageNumber, string firstName, string lastName, bool isExport = false)
        {
            //Get the current index
            int currentIndex = (pageNumber - 1) * SearchResult.PageSize;
            using (Cotecna.Voc.Business.UsersContext context = new Cotecna.Voc.Business.UsersContext())
            {
                //Get the list of users
                var query = (from user in context.UserProfiles
                             join userInRole in context.UserInRoles on user.UserId equals userInRole.UserId
                             join role in context.Roles on userInRole.RoleId equals role.RoleId
                             where user.IsInternalUser == false
                             select new
                             {
                                 Email = user.UserName,
                                 user.FirstName,
                                 user.LastName,
                                 IsActive = user.IsActive,
                                 RoleName = role.RoleName
                             });

                //add first name filter
                if (!string.IsNullOrEmpty(firstName))
                    query = query.Where(data => data.FirstName.Contains(firstName));
                //add last name filter
                if (!string.IsNullOrEmpty(lastName))
                    query = query.Where(data => data.LastName.Contains(lastName));
                //get the total of itmes
                SearchResult.TotalCount = query.Count();
                //set page number
                SearchResult.Page = pageNumber;

                if (!isExport)
                {
                    foreach (var item in query.OrderBy(x => x.FirstName).Skip(currentIndex).Take(SearchResult.PageSize).ToList())
                    {
                        //build the result
                        SearchResult.Collection.Add(new UserModel
                        {
                            Email = item.Email,
                            FullName = item.FirstName + " " + item.LastName,
                            IsActive = item.IsActive.GetValueOrDefault()
                            ? Resources.Common.Yes : Resources.Common.No,
                            Role = item.RoleName
                        });
                    }
                }
                else
                {
                    foreach (var item in query.OrderBy(x => x.FirstName).ToList())
                    {
                        //build the result
                        SearchResult.Collection.Add(new UserModel
                        {
                            Email = item.Email,
                            FullName = item.FirstName + " " + item.LastName,
                            IsActive = item.IsActive.GetValueOrDefault()
                            ? Resources.Common.Yes : Resources.Common.No,
                            Role = item.RoleName
                        });
                    }
                }
                //get the number of pages
                SearchResult.NumberOfPages = (int)Math.Ceiling((double)SearchResult.TotalCount / (double)SearchResult.PageSize);

            }
        }
Example #2
0
        /// <summary>
        /// Retrieve the user
        /// </summary>
        /// <param name="email"></param>
        public void SearchUser(string email)
        {
            //Get the current index
            using (Cotecna.Voc.Business.UsersContext context = new Cotecna.Voc.Business.UsersContext())
            {
                //Get the list of users
                var query = (from user in context.UserProfiles
                             join userInRole in context.UserInRoles on user.UserId equals userInRole.UserId
                             join role in context.Roles on userInRole.RoleId equals role.RoleId
                             where user.UserName == email
                             select new UserModel
                             {
                                 Email = user.UserName,
                                 FirstName = user.FirstName,
                                 LastName = user.LastName,
                                 Active = user.IsActive.HasValue ? user.IsActive.Value : false,
                                 SelectedRole = role.RoleName
                             });

                UserModel us = query.SingleOrDefault();
                Charge(us);

            }
        }