示例#1
0
        public ActionResult EditUser(ExpandedUserDTO paramExpandedUserDTO)
        {
            try
            {
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                ExpandedUserDTO objExpandedUserDTO = UpdateDTOUser(paramExpandedUserDTO);

                if (objExpandedUserDTO == null)
                {
                    return(HttpNotFound());
                }

                return(Redirect("~/Admin"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("EditUser", GetUser(paramExpandedUserDTO.UserName)));
            }
        }
示例#2
0
        public ActionResult DeleteUser(string UserName)
        {
            try
            {
                if (UserName == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                if (UserName.ToLower() == this.User.Identity.Name.ToLower())
                {
                    ModelState.AddModelError(
                        string.Empty, "Error: Cannot delete the current user");

                    return(View("EditUser"));
                }

                ExpandedUserDTO objExpandedUserDTO = GetUser(UserName);

                if (objExpandedUserDTO == null)
                {
                    return(HttpNotFound());
                }
                else
                {
                    DeleteUser(objExpandedUserDTO);
                }

                return(Redirect("~/Admin"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("EditUser", GetUser(UserName)));
            }
        }
示例#3
0
        /// <summary>
        /// gets the logged in user's detail from database and
        /// returns ExpandedUserDTO objExpandedUserDTO from database.
        /// <param name="paramUserName"></param>
        /// <returns>ExpandedUserDTO objExpandedUserDTO</returns>
        #region private ExpandedUserDTO GetUser(string paramUserName)
        private ExpandedUserDTO GetUser(string paramUserName)
        {
            ExpandedUserDTO objExpandedUserDTO = new ExpandedUserDTO();
            //get data from database by finding it by the logged in username
            var result = UserManager.FindByName(paramUserName);

            // If we could not find the user, throw an exception
            if (result == null)
            {
                throw new Exception("Could not find the User");
            }
            objExpandedUserDTO.Forename    = result.Forename;
            objExpandedUserDTO.Surname     = result.Surname;
            objExpandedUserDTO.Street      = result.Street;
            objExpandedUserDTO.Town        = result.Town;
            objExpandedUserDTO.Postcode    = result.Postcode;
            objExpandedUserDTO.PhoneNumber = result.PhoneNumber;
            objExpandedUserDTO.UserName    = result.UserName;
            objExpandedUserDTO.Email       = result.UserName;



            return(objExpandedUserDTO);
        }
示例#4
0
        public ActionResult EditUser(ExpandedUserDTO paramExpandedUserDTO)
        {
            try
            {
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                ExpandedUserDTO objExpandedUserDTO = UpdateDTOUser(paramExpandedUserDTO);

                if (objExpandedUserDTO == null)
                {
                    return(HttpNotFound());
                }

                return(Redirect("~/Home/Index"));
            }
            catch (Exception ex)      //if there is an error, return back to EditUser with original input value
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("EditUser", GetUser(paramExpandedUserDTO.UserName)));
            }
        }
示例#5
0
        public ActionResult Index(string searchStringUserNameOrEmail, string currentFilter, int?page)
        {
            GetCurrentUserInViewBag();
            try
            {
                int intPage           = 1;
                int intPageSize       = 5;
                int intTotalPageCount = 0;

                if (searchStringUserNameOrEmail != null)
                {
                    intPage = 1;
                }
                else
                {
                    if (currentFilter != null)
                    {
                        searchStringUserNameOrEmail = currentFilter;
                        intPage = page ?? 1;
                    }
                    else
                    {
                        searchStringUserNameOrEmail = "";
                        intPage = page ?? 1;
                    }
                }

                ViewBag.CurrentFilter = searchStringUserNameOrEmail;

                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();
                int intSkip = (intPage - 1) * intPageSize;

                intTotalPageCount = UserManager.Users
                                    .Where(x => x.UserName.Contains(searchStringUserNameOrEmail))
                                    .Count();

                var result = UserManager.Users
                             .Where(x => x.UserName.Contains(searchStringUserNameOrEmail))
                             .OrderBy(x => x.UserName)
                             .Skip(intSkip)
                             .Take(intPageSize)
                             .ToList();

                foreach (var item in result)
                {
                    ExpandedUserDTO objUserDTO = new ExpandedUserDTO();

                    objUserDTO.UserName          = item.UserName;
                    objUserDTO.Email             = item.Email;
                    objUserDTO.LockoutEndDateUtc = item.LockoutEndDateUtc;

                    //Update your DTO here so that it store other attributes as well. For eg

                    /*
                     * objUserDTO.FirstName = item.firstname;
                     * objUserDTO.LastName = item.lastname;
                     * etc etc
                     */

                    col_UserDTO.Add(objUserDTO);
                }

                // Set the number of pages
                var _UserDTOAsIPagedList =
                    new StaticPagedList <ExpandedUserDTO>
                    (
                        col_UserDTO, intPage, intPageSize, intTotalPageCount
                    );

                return(View(_UserDTOAsIPagedList));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();

                return(View(col_UserDTO.ToPagedList(1, 25)));
            }
        }
示例#6
0
        public async Task <ActionResult> Create(ExpandedUserDTO paramExpandedUserDTO)
        {
            GetCurrentUserInViewBag();
            try
            {
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var college = GetAllCollege();
                paramExpandedUserDTO.Programm = GetSelectListItems(college);


                var Email    = paramExpandedUserDTO.Email.Trim();
                var UserName = paramExpandedUserDTO.Email.Trim();
                var Password = paramExpandedUserDTO.Password.Trim();

                var LastName   = paramExpandedUserDTO.StudentLastName.Trim();
                var FirstName  = paramExpandedUserDTO.StudentFirstName.Trim();
                var MiddleName = paramExpandedUserDTO.StudentMiddleName.Trim();


                var Program   = paramExpandedUserDTO.Program.Trim();
                var YrLevel   = paramExpandedUserDTO.YearLevel;
                var StudentID = paramExpandedUserDTO.StudentID;
                //var IsActive = paramExpandedUserDTO.IsActive.Trim();


                if (Email == "")
                {
                    throw new Exception("No Email");
                }
                if (Password == "")
                {
                    throw new Exception("No Password");
                }
                if (LastName == "")
                {
                    throw new Exception("No LastName");
                }
                if (FirstName == "")
                {
                    throw new Exception("No FirstName");
                }
                if (MiddleName == "")
                {
                    throw new Exception("No MiddleName");
                }
                if (Program == "")
                {
                    throw new Exception("No Program");
                }
                if (YrLevel == null)
                {
                    throw new Exception("No YrLevel");
                }
                if (StudentID == "")
                {
                    throw new Exception("No StudentID");
                }


                // UserName is LowerCase of the Email
                UserName = Email.ToLower();

                // Create user
                var objNewAdminUser = new ApplicationUser {
                    UserName = UserName, Email = Email
                };
                var AdminUserCreateResult = UserManager.Create(objNewAdminUser, Password);

                if (AdminUserCreateResult.Succeeded == true)
                {
                    string strNewRole = Convert.ToString(Request.Form["Roles"]);

                    if (strNewRole != "0")
                    {
                        // Put user in role
                        UserManager.AddToRole(objNewAdminUser.Id, strNewRole);

                        //Put user in student table
                        if (strNewRole == "Student")
                        {
                            var newid = db.Students.FirstOrDefault(d => d.UserID == objNewAdminUser.Id);
                            if (newid == null)
                            {
                                newid              = db.Students.Create();
                                newid.UserID       = objNewAdminUser.Id;
                                newid.StudentEmail = objNewAdminUser.Email;

                                newid.StudentLastName   = LastName;
                                newid.StudentFirstName  = FirstName;
                                newid.StudentMiddleName = MiddleName;
                                newid.StudentID         = StudentID;
                                newid.Program           = Program;
                                newid.YearLevel         = YrLevel;

                                db.Students.Add(newid);

                                db.SaveChanges();
                            }
                        }

                        //Put user in counselor table
                        if (strNewRole == "Counselor")
                        {
                            var newid = db.Counsellor.FirstOrDefault(d => d.UserID == objNewAdminUser.Id);
                            if (newid == null)
                            {
                                newid                 = db.Counsellor.Create();
                                newid.UserID          = objNewAdminUser.Id;
                                newid.CounsellorEmail = objNewAdminUser.Email;
                                db.Counsellor.Add(newid);
                                db.SaveChanges();
                            }
                        }
                    }


                    string code = await UserManager.GenerateEmailConfirmationTokenAsync(objNewAdminUser.Id);

                    var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = objNewAdminUser.Id, code = code }, protocol: Request.Url.Scheme);
                    await UserManager.SendEmailAsync(objNewAdminUser.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(Redirect("~/Admin"));
                }
                else
                {
                    ViewBag.Roles = GetAllRolesAsSelectList();

                    ModelState.AddModelError(string.Empty, "Error: User " + Email + " already exists!");
                    return(View(paramExpandedUserDTO));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Roles = GetAllRolesAsSelectList();

                ExpandedUserDTO objExpandedUserDTO = new ExpandedUserDTO();
                var             college            = GetAllCollege();
                objExpandedUserDTO.Programm = GetSelectListItems(college);

                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View(paramExpandedUserDTO));
            }
        }
        public ActionResult Index(string searchStringUserNameOrEmail, string currentFilter, int?page)
        {
            try
            {
                int intPage           = 1; //set initial page number
                int intPageSize       = 5; // set max record each page can have
                int intTotalPageCount = 0; //set initial page count to 0

                if (searchStringUserNameOrEmail != null)
                {
                    intPage = 1;
                }
                else
                {
                    if (currentFilter != null)
                    {
                        searchStringUserNameOrEmail = currentFilter;
                        intPage = page ?? 1;
                    }
                    else
                    {
                        searchStringUserNameOrEmail = "";
                        intPage = page ?? 1;
                    }
                }

                ViewBag.CurrentFilter = searchStringUserNameOrEmail;

                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();
                int intSkip = (intPage - 1) * intPageSize;

                intTotalPageCount = UserManager.Users
                                    .Where(x => x.UserName.Contains(searchStringUserNameOrEmail))
                                    .Count();

                var result = UserManager.Users
                             .Where(x => x.UserName.Contains(searchStringUserNameOrEmail))
                             .OrderBy(x => x.UserName)
                             .Skip(intSkip)
                             .Take(intPageSize)
                             .ToList();

                foreach (var item in result)
                {
                    ExpandedUserDTO objUserDTO = new ExpandedUserDTO();

                    objUserDTO.UserName          = item.UserName;
                    objUserDTO.Email             = item.Email;
                    objUserDTO.LockoutEndDateUtc = item.LockoutEndDateUtc;

                    col_UserDTO.Add(objUserDTO);
                }

                // Set the number of pages
                var _UserDTOAsIPagedList =
                    new StaticPagedList <ExpandedUserDTO>
                    (
                        col_UserDTO, intPage, intPageSize, intTotalPageCount
                    );

                return(View(_UserDTOAsIPagedList));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();

                return(View(col_UserDTO.ToPagedList(1, 25)));
            }
        }
示例#8
0
        public ActionResult Create(ExpandedUserDTO paramExpandedUserDTO)
        {
            try
            {
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var Email    = paramExpandedUserDTO.Email.Trim();
                var UserName = paramExpandedUserDTO.Email.Trim();
                var Password = paramExpandedUserDTO.Password.Trim();

                if (Email == "")
                {
                    throw new Exception("No Email");
                }

                if (Password == "")
                {
                    throw new Exception("No Password");
                }

                // UserName is LowerCase of the Email
                UserName = Email.ToLower();

                // Create user
                var objNewAdminUser = new ApplicationUser {
                    UserName = UserName, Email = Email
                };
                var AdminUserCreateResult = UserManager.Create(objNewAdminUser, Password);

                if (AdminUserCreateResult.Succeeded == true)
                {
                    string strNewRole = Convert.ToString(Request.Form["Roles"]);

                    // Put user in role
                    if (strNewRole != "0")
                    {
                        UserManager.AddToRole(objNewAdminUser.Id, strNewRole);
                    }

                    // create app to use the arabizi
                    var userId   = objNewAdminUser.Id;
                    var appLimit = Convert.ToInt32(ConfigurationManager.AppSettings["TotalAppCallLimit"]);
                    var app      = new RegisterApp {
                        Name = userId + ".app"
                    };
                    new AppManager().CreateApp(app, userId, false, new RegisterAppConcrete(), new ClientKeysConcrete(), appLimit);

                    // create registered user
                    using (var db = new ArabiziDbContext())
                    {
                        var userguid       = Guid.Parse(userId);
                        var registeredUser = db.RegisterUsers.SingleOrDefault(m => m.UserGuid == userguid);
                        if (registeredUser == null)
                        {
                            db.RegisterUsers.Add(new RegisterUser
                            {
                                UserGuid      = userguid,
                                LastLoginTime = DateTime.Now,
                                Username      = Email,
                                Password      = Password,
                                CreateOn      = DateTime.Now,
                                EmailID       = Email,
                            });
                        }
                        else
                        {
                            registeredUser.LastLoginTime = DateTime.Now;
                        }

                        // commit
                        db.SaveChanges();
                    }

                    return(Redirect("~/Admin"));
                }
                else
                {
                    ViewBag.Roles = GetAllRolesAsSelectList();
                    ModelState.AddModelError(string.Empty, "Error: Failed to create the user. Check password requirements.");
                    return(View(paramExpandedUserDTO));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Roles = GetAllRolesAsSelectList();
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("Create"));
            }
        }
示例#9
0
        public ActionResult Index(string searchStringUserNameOrEmail, string currentFilter, int?page)
        {
            try
            {
                int intPage           = 1;
                int intPageSize       = 6; // Will only display six users per page
                int intTotalPageCount = 0;

                if (searchStringUserNameOrEmail != null)
                {
                    intPage = 1;
                }
                else
                {
                    if (currentFilter != null)
                    {
                        searchStringUserNameOrEmail = currentFilter;
                        intPage = page ?? 1; // If page doesn't have a value, default to 1
                    }
                    else
                    {
                        searchStringUserNameOrEmail = "";
                        intPage = page ?? 1;
                    }
                }

                ViewBag.CurrentFilter = searchStringUserNameOrEmail;


                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();


                int intSkip = (intPage - 1) * intPageSize;

                // Retrieving count of all the users that email and/or username match the user search value.
                intTotalPageCount = UserManager.Users
                                    .Where(x => x.UserName.Contains(searchStringUserNameOrEmail))
                                    .Count();

                // Retrieving a list of users that match the search criteria and the ordering by username
                var result = UserManager.Users
                             .Where(x => x.UserName.Contains(searchStringUserNameOrEmail))
                             .OrderBy(x => x.UserName)
                             .Skip(intSkip)
                             .Take(intPageSize)
                             .ToList();


                // Looping through all users and getting their requested values for output.
                foreach (var item in result)
                {
                    ExpandedUserDTO objUserDTO = new ExpandedUserDTO();

                    objUserDTO.UserName = item.UserName;
                    objUserDTO.Email    = item.Email;

                    objUserDTO.PhoneNumber       = item.PhoneNumber;
                    objUserDTO.LockoutEndDateUtc = item.LockoutEndDateUtc;


                    // Get all rolenames that correspond to each user.
                    // This will be used to display their current accout status: suspended or active.
                    var user = UserManager.FindByName(searchStringUserNameOrEmail);
                    ICollection <UserRolesDTO> colUserRoleDTO = (from objRole in UserManager.GetRoles(item.Id)
                                                                 select new UserRolesDTO
                    {
                        RoleName = objRole
                    }).ToList();


                    objUserDTO.Roles = colUserRoleDTO;
                    col_UserDTO.Add(objUserDTO);
                }

                // Set the number of pages
                var _UserDTOAsIPagedList = new StaticPagedList <ExpandedUserDTO>(col_UserDTO, intPage, intPageSize, intTotalPageCount);

                return(View(_UserDTOAsIPagedList));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();

                return(View(col_UserDTO.ToPagedList(1, 25)));
            }
        }
示例#10
0
        public ActionResult Create(ExpandedUserDTO paramExpandedUserDTO)
        {
            try
            {
                // Validating that user has inputted appropriate values
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                // Trim: Removes white space
                var Email    = paramExpandedUserDTO.Email.Trim();
                var UserName = paramExpandedUserDTO.Email.Trim();
                var Password = paramExpandedUserDTO.Password.Trim();

                if (Email == "")
                {
                    throw new Exception("No Email");
                }

                if (Password == "")
                {
                    throw new Exception("No Password");
                }

                // UserName is LowerCase of the Email
                UserName = Email.ToLower();

                // Create user
                var objNewAdminUser = new ApplicationUser {
                    UserName = UserName, Email = Email
                };
                var AdminUserCreateResult = UserManager.Create(objNewAdminUser, Password);

                if (AdminUserCreateResult.Succeeded == true)
                {
                    string strNewRole = Convert.ToString(Request.Form["Roles"]);

                    if (strNewRole != "0")
                    {
                        // Put user in selected role
                        UserManager.AddToRole(objNewAdminUser.Id, strNewRole);
                    }

                    return(Redirect("~/Admin"));
                }
                else
                {
                    // If unsuccessful
                    ViewBag.Roles = GetAllRolesAsSelectList();
                    ModelState.AddModelError(string.Empty, "Error: Failed to create the user. Check password requirements.");
                    return(View(paramExpandedUserDTO));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Roles = GetAllRolesAsSelectList();
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("Create"));
            }
        }
示例#11
0
        // GET: /Admin/Edit/TestUser
        public PartialViewResult EditUser(string UserName)
        {
            ExpandedUserDTO objExpandedUserDTO = GetUser(UserName);

            return(PartialView("PartialAdmin/_EditUser", objExpandedUserDTO));
        }
示例#12
0
        //public ActionResult Index(string searchStringUserNameOrEmail)
        public ActionResult Index(string searchStringUserNameOrEmail, string currentFilter, int?page)
        {
            try
            {
                int intPage           = 1;
                int intPageSize       = 5;
                int intTotalPageCount = 0;



                if (searchStringUserNameOrEmail != null) //if no search paramater
                {
                    intPage = 1;
                }
                else
                {
                    if (currentFilter != null)
                    {
                        searchStringUserNameOrEmail = currentFilter; //sets the search
                        intPage = page ?? 1;
                    }
                    else
                    {
                        searchStringUserNameOrEmail = "";
                        intPage = page ?? 1;
                    }
                }

                ViewBag.CurrentFilter = searchStringUserNameOrEmail;

                //Sets up a list of expanded users
                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();
                int intSkip = (intPage - 1) * intPageSize;

                //gets how many pages their will be
                intTotalPageCount = UserManager.Users
                                    .Where(x => x.UserName.Contains(searchStringUserNameOrEmail))
                                    .Count();

                //sets result var to the results of users found with the search paramas
                var result = UserManager.Users
                             .Where(x => x.UserName.Contains(searchStringUserNameOrEmail))
                             .OrderBy(x => x.UserName)
                             .Skip(intSkip)
                             .Take(intPageSize)
                             .ToList();



                foreach (var item in result)
                {
                    ExpandedUserDTO objUserDTO         = new ExpandedUserDTO();
                    UserAndRolesDTO objUserAndRolesDTO =
                        GetUserAndRoles(item.UserName);
                    objUserDTO.UserName       = item.UserName;
                    objUserDTO.Email          = item.Email;
                    objUserDTO.LockoutEndDate = item.LockoutEndDateUtc;
                    objUserDTO.Roles          = objUserAndRolesDTO.colUserRoleDTO;

                    col_UserDTO.Add(objUserDTO);
                }

                // Set the number of pages
                var _UserDTOAsIPagedList =
                    new StaticPagedList <ExpandedUserDTO>
                    (
                        col_UserDTO, intPage, intPageSize, intTotalPageCount
                    );

                return(View("Index", _UserDTOAsIPagedList));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();

                return(View("Index", col_UserDTO.ToPagedList(1, 25)));
            }
        }
示例#13
0
 public ExpandedUserDTO Edit(ExpandedUserDTO user)
 {
     throw new NotImplementedException();
 }
示例#14
0
 public void Delete(ExpandedUserDTO user)
 {
     throw new NotImplementedException();
 }
示例#15
0
        public ActionResult Create(ExpandedUserDTO paramExpandedUserDTO)
        {
            try
            {
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var Email    = paramExpandedUserDTO.Email.Trim();
                var UserName = paramExpandedUserDTO.Email.Trim();
                var Password = paramExpandedUserDTO.Password.Trim();

                if (Email == "")
                {
                    throw new Exception("No Email");
                }

                if (Password == "")
                {
                    throw new Exception("No Password");
                }

                // UserName is LowerCase of the Email
                UserName = Email.ToLower();

                // Create user
                ApplicationDbContext db = new ApplicationDbContext();
                var objNewAdminUser     = new ApplicationUser {
                    UserName = UserName, Email = Email
                };
                var AdminUserCreateResult = UserManager.Create(objNewAdminUser, Password);

                if (AdminUserCreateResult.Succeeded == true)
                {
                    string strNewRole = Convert.ToString(Request.Form["Roles"]);

                    if (strNewRole != "0")
                    {
                        // Put user in role
                        userRole userRole = new userRole();
                        userRole.userKey = objNewAdminUser.Id;
                        userRole.roleKey = strNewRole;
                        db.userRoles.Add(userRole);
                        db.SaveChanges();
                        UserManager.AddToRole(objNewAdminUser.Id, strNewRole);
                    }

                    return(Redirect("~/Admin"));
                }
                else
                {
                    ViewBag.Roles = GetAllRolesAsSelectList();
                    ModelState.AddModelError(string.Empty,
                                             "Error: Failed to create the user. Check password requirements.");
                    return(View(paramExpandedUserDTO));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Roles = GetAllRolesAsSelectList();
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("Create"));
            }
        }
示例#16
0
        public ActionResult Index(string searchStringUserNameOrEmail, string currentFilter, int?page)
        {
            try
            {
                int intPage           = 1;
                int intPageSize       = 5;
                int intTotalItemCount = 0;

                //
                if (searchStringUserNameOrEmail != null)
                {
                    intPage = 1;
                }
                else if (currentFilter != null)
                {
                    searchStringUserNameOrEmail = currentFilter;
                    intPage = page ?? 1;
                }
                else
                {
                    searchStringUserNameOrEmail = "";
                    intPage = page ?? 1;
                }

                //
                ViewBag.CurrentFilter = searchStringUserNameOrEmail;
                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();
                int intSkip = (intPage - 1) * intPageSize;

                //
                var users  = UserManager.Users.Where(x => x.UserName.Contains(searchStringUserNameOrEmail));
                var lusers = users.ToList();

                // get register apps to make a join with users and with registerusers to get get last login time
                var registerApps  = new Arabizer().loaddeserializeRegisterApps_DAPPERSQL();
                var registerUsers = new Arabizer().loaddeserializeRegisterUsers_DAPPERSQL();
                var result0       = lusers.Join(registerApps, u => u.Id.ToUpper(), a => a.UserID.ToUpper(), (usr, app) => new
                {
                    app.UserID,
                    usr.UserName,
                    usr.Email,
                    usr.LockoutEndDateUtc,
                    app.TotalAppCallConsumed,
                    app.TotalAppCallLimit
                }).Join(registerUsers, r1 => r1.Email, u => u.EmailID, (res1, regusr) => new
                {
                    res1.UserID,
                    res1.UserName,
                    res1.Email,
                    res1.LockoutEndDateUtc,
                    res1.TotalAppCallConsumed,
                    res1.TotalAppCallLimit,
                    regusr.LastLoginTime
                });

                // themes count for the user
                var xtrctThemesCountPerUser = new Arabizer().loaddeserializeM_XTRCTTHEME_CountPerUser_DAPPERSQL();
                var result1 = result0.Join(xtrctThemesCountPerUser, r => r.UserID.ToUpper(), x => x.UserID.ToUpper(), (res2, xtcpu) => new
                {
                    res2.UserID,
                    res2.UserName,
                    res2.Email,
                    res2.LockoutEndDateUtc,
                    res2.TotalAppCallConsumed,
                    res2.TotalAppCallLimit,
                    res2.LastLoginTime,
                    xtcpu.CountPerUser
                });

                // fb pages count for the user & fb posts count for the user
                List <LM_CountPerTheme> fbPageCountPerTheme     = new Arabizer().loaddeserializeT_FB_INFLUENCER_CountPerTheme_DAPPERSQL();
                List <M_XTRCTTHEME>     xtrctThemes             = new Arabizer().loaddeserializeM_XTRCTTHEME_DAPPERSQL();
                List <LM_CountPerTheme> fbPostsCountPerTheme    = new Arabizer().loaddeserializeT_FB_POST_CountPerTheme_DAPPERSQL();
                List <LM_CountPerTheme> fbCommentsCountPerTheme = new Arabizer().loaddeserializeT_FB_Comments_CountPerTheme_DAPPERSQL();
                var usersToThemesToFbPagesCount = fbPageCountPerTheme.Join(
                    xtrctThemes,
                    fb => fb.fk_theme,
                    xt => xt.ID_XTRCTTHEME.ToString(),
                    (fb, xt) => new
                {
                    fb.fk_theme,
                    fb.CountPerTheme,
                    fkUserID = xt.UserID
                });
                var usersToThemesToFbPagesToFbPostsCount = usersToThemesToFbPagesCount.Join(
                    fbPostsCountPerTheme,
                    u => u.fk_theme,
                    fb => fb.fk_theme,
                    (u, fb) => new
                {
                    u.fk_theme,
                    u.CountPerTheme,
                    u.fkUserID,
                    FBPostsCountPerUser = fb.CountPerTheme
                });
                var usersToThemesToFbPagesToFbPostsToFBCommentsCount = usersToThemesToFbPagesToFbPostsCount.Join(
                    fbCommentsCountPerTheme,
                    u => u.fk_theme,
                    fb => fb.fk_theme,
                    (u, fb) => new
                {
                    u.fk_theme,
                    u.CountPerTheme,
                    u.fkUserID,
                    u.FBPostsCountPerUser,
                    FBCommentsCountPerUser = fb.CountPerTheme
                });
                var result3 = result1.GroupJoin(usersToThemesToFbPagesToFbPostsToFBCommentsCount,
                                                x => x.UserID,
                                                y => y.fkUserID, (x, y) => new
                {
                    x.UserID,
                    x.UserName,
                    x.Email,
                    x.LockoutEndDateUtc,
                    x.TotalAppCallConsumed,
                    x.TotalAppCallLimit,
                    x.LastLoginTime,
                    ThemesCountPerUser     = x.CountPerUser,
                    FBPagesCountPerUser    = y.Sum(m => m.CountPerTheme),
                    FBPostsCountPerUser    = y.Sum(m => m.FBPostsCountPerUser),
                    FBCommentsCountPerUser = y.Sum(m => m.FBCommentsCountPerUser)
                });

                // darija entries count for the user
                var arEntriesCountPerUser = new Arabizer().loaddeserializeM_ARABICDARIJAENTRY_CountPerUser_DAPPERSQL();
                var result = result3.Join(arEntriesCountPerUser,
                                          x => x.UserID,
                                          y => y.UserID, (x, y) => new
                {
                    x.UserID,
                    x.UserName,
                    x.Email,
                    x.LockoutEndDateUtc,
                    x.TotalAppCallConsumed,
                    x.TotalAppCallLimit,
                    x.LastLoginTime,
                    x.ThemesCountPerUser,
                    x.FBPagesCountPerUser,
                    ArEntriesCountPerUser = y.CountPerUser,
                    x.FBPostsCountPerUser,
                    x.FBCommentsCountPerUser
                });

                // items count
                intTotalItemCount = result.Count();

                // take the items for the current page only
                result = result
                         .OrderByDescending(x => x.LastLoginTime)
                         .Skip(intSkip)
                         .Take(intPageSize);

                //
                foreach (var item in result)
                {
                    ExpandedUserDTO objUserDTO = new ExpandedUserDTO();
                    objUserDTO.UserName               = item.UserName;
                    objUserDTO.Email                  = item.Email;
                    objUserDTO.LockoutEndDateUtc      = item.LockoutEndDateUtc;
                    objUserDTO.TotalAppCallLimit      = item.TotalAppCallLimit;
                    objUserDTO.TotalAppCallConsumed   = item.TotalAppCallConsumed;
                    objUserDTO.LastLoginTime          = item.LastLoginTime;
                    objUserDTO.ThemesCountPerUser     = item.ThemesCountPerUser;
                    objUserDTO.FBPagesCountPerUser    = item.FBPagesCountPerUser;
                    objUserDTO.ArEntriesCountPerUser  = item.ArEntriesCountPerUser;
                    objUserDTO.FBPostsCountPerUser    = item.FBPostsCountPerUser;
                    objUserDTO.FBCommentsCountPerUser = item.FBCommentsCountPerUser;
                    col_UserDTO.Add(objUserDTO);
                }

                // Created the paged list and Set the number of pages
                var _UserDTOAsIPagedList = new StaticPagedList <ExpandedUserDTO>(col_UserDTO, intPage, intPageSize, intTotalItemCount);

                // themes : deserialize/send list of themes, plus send active theme, plus send list of tags/keywords
                var userId               = User.Identity.GetUserId();
                var userXtrctThemes      = new Arabizer().loaddeserializeM_XTRCTTHEME_DAPPERSQL(userId);
                var userActiveXtrctTheme = userXtrctThemes.Find(m => m.CurrentActive == "active");
                @ViewBag.UserXtrctThemes  = userXtrctThemes;
                @ViewBag.XtrctThemesPlain = userXtrctThemes.Select(m => new SelectListItem {
                    Text = m.ThemeName.Trim(), Selected = m.ThemeName.Trim() == userActiveXtrctTheme.ThemeName.Trim() ? true : false
                });
                @ViewBag.UserActiveXtrctTheme = userActiveXtrctTheme;

                // Fetch the data for fbPages for all themes for that user
                var fbFluencerAsTheme = new Arabizer().loadDeserializeT_FB_INFLUENCERs_DAPPERSQL(userId);
                ViewBag.AllInfluenceVert = fbFluencerAsTheme;

                //
                return(View(_UserDTOAsIPagedList));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();
                return(View(col_UserDTO.ToPagedList(1, 25)));
            }
        }
        public async Task <ActionResult> Create(ExpandedUserDTO paramExpandedUserDTO)
        {
            try
            {
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                // To convert the user uploaded Photo as Byte Array before save to DB
                byte[] imageData = null;
                if (Request.Files.Count > 0)
                {
                    HttpPostedFileBase poImgFile = Request.Files["UserPhoto"];

                    using (var binary = new BinaryReader(poImgFile.InputStream))
                    {
                        imageData = binary.ReadBytes(poImgFile.ContentLength);
                    }
                }



                var FirstName = paramExpandedUserDTO.FirstName.Trim();

                var Surname         = paramExpandedUserDTO.Surname.Trim();
                var DOB             = paramExpandedUserDTO.DOB.Trim();
                var UserName        = paramExpandedUserDTO.Email.Trim();
                var Email           = paramExpandedUserDTO.Email.Trim();
                var Gender          = paramExpandedUserDTO.Gender.Trim();
                var Country         = paramExpandedUserDTO.Country.Trim();
                var City            = paramExpandedUserDTO.City.Trim();
                var UserFingerprint = paramExpandedUserDTO.UserFingerprint.Trim();
                //var UserPic = paramExpandedUserDTO.UserPic.Trim();


                if (Email == "")
                {
                    throw new Exception("No Email");
                }

                if (paramExpandedUserDTO.Password == "")
                {
                    throw new Exception("No Password");
                }

                // set default status Id by the following description
                var statusDescription = "";
                var statusId          = "";

                VoteViewModel    vvM  = new VoteViewModel();
                GetAgeCalculated gAge = new GetAgeCalculated();
                int userAge           = gAge.GetAge(paramExpandedUserDTO.DOB);
                if (userAge >= 17)
                {
                    statusDescription = "Not Vote";
                }
                else
                {
                    statusDescription = "Age-rule";
                }
                statusId = vvM.GetUserStatusIdByDescriptio(statusDescription);
                // check if the statusId is empty than add the values to the table
                if (statusId == null)
                {
                    // set the default vote to the vote status table
                    VoteViewModel vM = new VoteViewModel();
                    vM.InsertDescriptionToUserStatus("Vote");
                    vM.InsertDescriptionToUserStatus("Not Vote");
                    vM.InsertDescriptionToUserStatus("Age-rule");

                    statusId = vM.GetUserStatusIdByDescriptio(statusDescription);
                }
                // UserName is LowerCase of the Email
                UserName = Email.ToLower();

                // Create user
                var objNewAdminUser = new ApplicationUser
                {
                    FirstName = paramExpandedUserDTO.FirstName,
                    Surname   = paramExpandedUserDTO.Surname,
                    DOB       = paramExpandedUserDTO.DOB,
                    UserName  = paramExpandedUserDTO.Email,

                    Email           = paramExpandedUserDTO.Email,
                    Gender          = paramExpandedUserDTO.Gender,
                    Country         = paramExpandedUserDTO.Country,
                    City            = paramExpandedUserDTO.City,
                    UserPic         = paramExpandedUserDTO.UserPic,
                    UserFingerprint = paramExpandedUserDTO.UserFingerprint,
                    UserStatusId    = paramExpandedUserDTO.UserStatusId
                };
                objNewAdminUser.UserPic      = imageData;
                objNewAdminUser.UserStatusId = statusId;
                //var AdminUserCreateResult = UserManager.Create(objNewAdminUser, paramExpandedUserDTO.Password);
                var result = await UserManager.CreateAsync(objNewAdminUser, paramExpandedUserDTO.Password);

                if (result.Succeeded)
                {
                    string strNewRole = Convert.ToString(Request.Form["Roles"]);

                    if (strNewRole != "0")
                    {
                        // Put user in role
                        UserManager.AddToRole(objNewAdminUser.Id, strNewRole);
                    }

                    return(Redirect("~/Admin"));
                }
                else
                {
                    ViewBag.Roles = GetAllRolesAsSelectList();
                    ModelState.AddModelError(string.Empty,
                                             "Error: Failed to create the user. Check password requirements.");
                    return(View(paramExpandedUserDTO));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Roles = GetAllRolesAsSelectList();
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("Create"));
            }
        }
        public ActionResult Create(ExpandedUserDTO paramExpandedUserDTO)
        {
            try
            {
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                var Companyname  = paramExpandedUserDTO.Companyname.Trim();
                var Forename     = paramExpandedUserDTO.Forename.Trim();
                var Surname      = paramExpandedUserDTO.Surname.Trim();
                var Street       = paramExpandedUserDTO.Street.Trim();
                var Town         = paramExpandedUserDTO.Town.Trim();
                var Postcode     = paramExpandedUserDTO.Postcode.Trim();
                var PhoneNumber  = paramExpandedUserDTO.PhoneNumber.Trim();
                var Email        = paramExpandedUserDTO.Email.Trim();
                var UserName     = paramExpandedUserDTO.Email.Trim();
                var Password     = paramExpandedUserDTO.Password.Trim();
                var BacsApproved = paramExpandedUserDTO.BacsApproved;

                if (Email == "")
                {
                    throw new Exception("No Email");
                }

                if (Password == "")
                {
                    throw new Exception("No Password");
                }

                // set UserName as LowerCase of the Email
                UserName = Email.ToLower();

                // Create user

                var objNewAdminUser = new ApplicationUser
                {
                    Companyname  = Companyname,
                    UserName     = UserName,
                    Email        = Email,
                    Forename     = Forename,
                    Surname      = Surname,
                    Street       = Street,
                    Town         = Town,
                    Postcode     = Postcode,
                    PhoneNumber  = PhoneNumber,
                    BacsApproved = BacsApproved,
                };
                //Create user with objNewAdminUser with Password
                var AdminUserCreateResult = UserManager.Create(objNewAdminUser, Password);

                if (AdminUserCreateResult.Succeeded == true)
                {
                    string strNewRole = Convert.ToString(Request.Form["Roles"]);

                    if (strNewRole != "0")
                    {
                        // Put user in role
                        UserManager.AddToRole(objNewAdminUser.Id, strNewRole);
                    }

                    return(Redirect("~/Admin"));
                }
                else
                {
                    ViewBag.Roles = GetAllRolesAsSelectList();
                    ModelState.AddModelError(string.Empty,
                                             "Error: Failed to create the user. Check password requirements.");
                    return(View(paramExpandedUserDTO));
                }
            }
            // if exception occur return create method with error message
            catch (Exception ex)
            {
                ViewBag.Roles = GetAllRolesAsSelectList();
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("Create"));
            }
        }
示例#19
0
        public ActionResult Create(ExpandedUserDTO paramExpandedUserDTO)
        {
            try
            {
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var Email    = paramExpandedUserDTO.Email.Trim();
                var UserName = paramExpandedUserDTO.Email.Trim();
                var Password = paramExpandedUserDTO.Password.Trim();

                var Nombre    = paramExpandedUserDTO.Nombre.Trim();
                var Apellido  = paramExpandedUserDTO.Apellido.Trim();
                var Direccion = paramExpandedUserDTO.Direccion.Trim();
                var Telefono  = paramExpandedUserDTO.Telefono.Trim();
                var Empresa   = paramExpandedUserDTO.Empresa.Trim();
                var Imagen    = paramExpandedUserDTO.Imagen.Trim();

                if (Email == "")
                {
                    throw new Exception("No Email");
                }

                if (Password == "")
                {
                    throw new Exception("No Password");
                }

                // UserName is LowerCase of the Email
                UserName = Email.ToLower();

                // Create user

                var objNewAdminUser = new ApplicationUser {
                    UserName = UserName, Email = Email, Nombre = Nombre, Apellido = Apellido, Direccion = Direccion, Telefono = Telefono, Empresa = Empresa, Imagen = Imagen
                };
                var AdminUserCreateResult = UserManager.Create(objNewAdminUser, Password);

                if (AdminUserCreateResult.Succeeded == true)
                {
                    string strNewRole = Convert.ToString(Request.Form["Roles"]);

                    if (strNewRole != "0")
                    {
                        // Put user in role
                        UserManager.AddToRole(objNewAdminUser.Id, strNewRole);
                    }

                    return(Redirect("~/Admin"));
                }
                else
                {
                    ViewBag.Roles = GetAllRolesAsSelectList();
                    ModelState.AddModelError(string.Empty,
                                             "Error: Failed to create the user. Check password requirements.");
                    return(View(paramExpandedUserDTO));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Roles = GetAllRolesAsSelectList();
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("Create"));
            }
        }
        /// <summary>
        /// returns the updated ExpandedUserDTO class object paramExpandedUserDTO
        /// after updating database user detail with input data
        /// </summary>
        /// <param name="objExpandedUserDTO"></param>
        /// <returns>ExpandedUserDTO paramExpandedUserDTO</returns>
        /// <includesource>yes</includesource>
        #region private ExpandedUserDTO UpdateDTOUser(ExpandedUserDTO objExpandedUserDTO)
        private ExpandedUserDTO UpdateDTOUser(ExpandedUserDTO paramExpandedUserDTO)
        {
            ApplicationUser result =
                UserManager.FindByName(paramExpandedUserDTO.UserName);
            List <UserRolesDTO> roles = new List <UserRolesDTO>();

            // If we could not find the user, throw an exception
            if (result == null)
            {
                throw new Exception("Could not find the User");
            }

            result.Companyname       = paramExpandedUserDTO.Companyname;
            result.Forename          = paramExpandedUserDTO.Forename;
            result.Surname           = paramExpandedUserDTO.Surname;
            result.Street            = paramExpandedUserDTO.Street;
            result.Town              = paramExpandedUserDTO.Town;
            result.Postcode          = paramExpandedUserDTO.Postcode;
            result.PhoneNumber       = paramExpandedUserDTO.PhoneNumber;
            result.UserName          = paramExpandedUserDTO.UserName;
            result.Email             = paramExpandedUserDTO.UserName;
            result.LockoutEndDateUtc = paramExpandedUserDTO.LockoutEndDateUtc;
            result.LockoutEnabled    = paramExpandedUserDTO.LockoutEnabled;
            result.AccessFailedCount = paramExpandedUserDTO.AccessFailedCount;
            result.BacsApproved      = paramExpandedUserDTO.BacsApproved;



            // Lets check if the account needs to be unlocked
            if (UserManager.IsLockedOut(result.Id))
            {
                // Unlock user
                UserManager.ResetAccessFailedCountAsync(result.Id);
            }

            UserManager.Update(result);


            // Was a password sent across?
            if (!string.IsNullOrEmpty(paramExpandedUserDTO.Password))
            {
                // Remove current password
                var removePassword = UserManager.RemovePassword(result.Id);
                if (removePassword.Succeeded)
                {
                    // Add new password
                    var AddPassword =
                        UserManager.AddPassword(
                            result.Id,
                            paramExpandedUserDTO.Password
                            );

                    if (AddPassword.Errors.Count() > 0)
                    {
                        throw new Exception(AddPassword.Errors.FirstOrDefault());
                    }
                }
            }

            return(paramExpandedUserDTO);
        }
示例#21
0
        public ActionResult Create(ExpandedUserDTO paramExpandedUserDTO)
        {
            try
            {
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                ApplicationUser result = UserManager.FindByName(paramExpandedUserDTO.NameIdentifier);
                if (result == null)
                {
                    var NameIdentifier = paramExpandedUserDTO.NameIdentifier.Trim();
                    var Email          = paramExpandedUserDTO.Email.Trim();
                    //int IdLevel = paramExpandedUserDTO.IdLevel;
                    var IdDept   = paramExpandedUserDTO.IdDept;
                    var UserName = paramExpandedUserDTO.NameIdentifier.Trim();
                    var Password = paramExpandedUserDTO.Password.Trim();
                    //var PartnerID = paramExpandedUserDTO.PartnerID.Trim();

                    if (NameIdentifier == "")
                    {
                        throw new Exception("No Name Identifier");
                    }
                    if (Email == "")
                    {
                        throw new Exception("No Email");
                    }

                    if (Password == "")
                    {
                        throw new Exception("No Password");
                    }

                    // UserName is LowerCase of the Email
                    //UserName = Email.ToLower();

                    // Create user

                    var objNewUserUser = new ApplicationUser {
                        IdDept = IdDept, NameIdentifier = NameIdentifier, UserName = UserName, Email = Email
                    };
                    var UserUserCreateResult = UserManager.Create(objNewUserUser, Password);

                    if (UserUserCreateResult.Succeeded == true)
                    {
                        string strNewRole = Convert.ToString(Request.Form["Roles"]);

                        if (strNewRole != "0")
                        {
                            // Put user in role
                            UserManager.AddToRole(objNewUserUser.Id, strNewRole);
                        }

                        return(Redirect("~/User/Index"));
                    }
                    else
                    {
                        //ViewBag.IdLevel = GetAllLevelAsSelectList();
                        //ViewBag.IdGroup = GetAllGroupAsSelectList();
                        ViewBag.Roles  = GetAllRolesAsSelectList();
                        ViewBag.IdDept = GetDeptToList();
                        //ViewBag.PartnerID = GetAllPartnerAsSelectList();
                        ModelState.AddModelError(string.Empty,
                                                 "Error: Failed to create the user. Check password requirements or username has been taken");
                        return(View(paramExpandedUserDTO));
                    }
                }
                else
                {
                    throw new Exception("Username has been taken, input another one");
                }
            }
            catch (Exception ex)
            {
                //ViewBag.IdLevel = GetAllLevelAsSelectList();
                //ViewBag.IdGroup = GetAllGroupAsSelectList();
                ViewBag.Roles  = GetAllRolesAsSelectList();
                ViewBag.IdDept = GetDeptToList();
                //ViewBag.PartnerID = GetAllPartnerAsSelectList();
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("Create"));
            }
        }