public ActionResult Register(RP_users usr)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (usr.u_name == null || usr.u_username == null || usr.u_email == null || usr.u_password == null || usr.u_phone == null)
                    {
                        ViewBag.Error = "All Fields are required.";
                    }
                    else if (usr.u_username.Contains(" "))
                    {
                        ViewBag.Error = "Username can'be more than one word.";
                    }
                    else
                    {
                        int token = rand.Next(100000, 1000000);
                        RPE.RP_users.Add(new RP_users {
                            u_role = 2, u_name = usr.u_name, u_username = usr.u_username, u_email = usr.u_email, u_password = usr.u_password, u_phone = usr.u_phone, u_city = usr.u_city, u_status = "Pending", u_token = token, u_created = DateTime.Now, u_image = "default.jpg", u_membership = 1
                        });
                        RPE.SaveChanges();
                        ViewBag.Success = "You've Signup Successfully.";
                        return(RedirectToAction("Login", "Home"));
                    }
                }
                catch (Exception ex)
                {
                    this.Response.Write("<script>alert(Error:" + ex.ToString() + ");</script>");
                }
            }

            return(View());
        }
        public ActionResult Login(RP_users usr)
        {
            if (usr.u_username == null || usr.u_password == null)
            {
                ViewBag.Error = "Please Enter Username/Password First.";
            }
            else
            {
                try
                {
                    int _flag = RPE.RP_users.Where(x => x.u_username == usr.u_username && x.u_password == usr.u_password).Count();
                    if (_flag > 0)
                    {
                        string[] role        = roles.GetRolesForUser(usr.u_username);
                        var      user_status = RPE.RP_users.Where(x => x.u_username == usr.u_username).Single().u_status;

                        if (user_status == "Active")
                        {
                            FormsAuthentication.SetAuthCookie(usr.u_username, false);

                            var user_name = RPE.RP_users.Where(x => x.u_username == usr.u_username).Single().u_name;
                            var user_id   = RPE.RP_users.Where(x => x.u_username == usr.u_username).Single().u_id;

                            Session["user"]  = user_name;
                            Session["usrID"] = user_id;

                            if (role[0] == "Admin")
                            {
                                return(RedirectToAction("Dashboard", "Admin"));
                            }
                            else
                            {
                                return(RedirectToAction("UserProfile", "User"));
                            }
                        }
                        else
                        {
                            ViewBag.Error = "Your Account is not Activated.. Please Wait.";
                        }
                    }
                    else
                    {
                        ViewBag.Error = "Invalid Username/Password.";
                    }
                }
                catch (Exception ex)
                {
                    this.Response.Write("<script>alert(Error:" + ex.ToString() + ");</script>");
                }
            }

            return(View());
        }
        public ActionResult UpdateUser(RP_users usr)
        {
            try
            {
                var userID = RPE.RP_users.Where(x => x.u_id == usr.u_id).FirstOrDefault();

                if (usr.userImageData != null)
                {
                    usr.u_image = "~/assets/img/user/" + "user-id-" + userID + "-" + usr.userImageData.FileName;
                    usr.userImageData.SaveAs(Server.MapPath(usr.u_image));
                    userID.u_image = "user-id-" + userID + "-" + usr.userImageData.FileName;
                }

                if (usr.u_password == null)
                {
                    usr.u_password = userID.u_password;
                }
                else
                {
                    userID.u_password = usr.u_password;
                }

                userID.u_facebook   = usr.u_facebook;
                userID.u_twitter    = usr.u_twitter;
                userID.u_instagram  = usr.u_instagram;
                userID.u_about      = usr.u_about;
                userID.u_name       = usr.u_name;
                userID.u_username   = usr.u_username;
                userID.u_email      = usr.u_email;
                userID.u_phone      = usr.u_phone;
                userID.u_city       = usr.u_city;
                userID.u_membership = usr.u_membership;
                userID.u_role       = usr.u_role;
                userID.u_status     = usr.u_status;

                RPE.Entry(userID).State = EntityState.Modified;
                RPE.SaveChanges();
            }
            catch (Exception ex)
            {
                this.Response.Write("<script>alert(Error:" + ex.ToString() + ");</script>");
            }

            return(RedirectToAction("AllUsers", "Admin"));
        }
        public ActionResult AddUser(RP_users usr)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (usr.u_name == null || usr.u_username == null || usr.u_email == null || usr.u_password == null || usr.u_phone == null)
                    {
                        ViewBag.Error = "All Fields are required.";
                    }
                    else if (usr.u_username.Contains(" "))
                    {
                        ViewBag.Error = "Username can'be more than one word.";
                    }
                    else
                    {
                        if (usr.userImageData != null)
                        {
                            usr.u_image = "~/assets/img/user/" + "user-id-" + usr.u_id + "-" + usr.userImageData.FileName;
                            usr.userImageData.SaveAs(Server.MapPath(usr.u_image));
                            usr.u_image = "user-id-" + usr.u_id + "-" + usr.userImageData.FileName;
                        }
                        else
                        {
                            usr.u_image = "default.jpg";
                        }

                        int token = rand.Next(100000, 1000000);
                        RPE.RP_users.Add(new RP_users {
                            u_role = usr.u_role, u_name = usr.u_name, u_username = usr.u_username, u_email = usr.u_email, u_password = usr.u_password, u_phone = usr.u_phone, u_city = usr.u_city, u_status = usr.u_status, u_token = token, u_created = DateTime.Now, u_image = usr.u_image, u_membership = usr.u_membership, u_about = usr.u_about, u_facebook = usr.u_facebook, u_twitter = usr.u_twitter, u_instagram = usr.u_instagram
                        });
                        RPE.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    this.Response.Write("<script>alert(Error:" + ex.ToString() + ");</script>");
                }
            }

            return(RedirectToAction("AllUsers", "Admin"));
        }
        public ActionResult BecomeaSeller(RP_users usr)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Int32 usrID  = (int)Session["usrID"];
                    var   userID = RPE.RP_users.Where(x => x.u_id == usrID).FirstOrDefault();

                    userID.u_role = 3;

                    RPE.Entry(userID).State = EntityState.Modified;
                    RPE.SaveChanges();
                }
                catch (Exception ex)
                {
                    this.Response.Write("<script>alert(Error:" + ex.ToString() + ");</script>");
                }
            }

            return(RedirectToAction("UserProfile", "User"));
        }
        public ActionResult Update(RP_users usr)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Int32 usrID  = (int)Session["usrID"];
                    var   userID = RPE.RP_users.Where(x => x.u_id == usrID).FirstOrDefault();

                    if (usr.userImageData != null)
                    {
                        usr.u_image = "~/assets/img/user/" + "user-id-" + usrID + "-" + usr.userImageData.FileName;
                        usr.userImageData.SaveAs(Server.MapPath(usr.u_image));
                        userID.u_image = "user-id-" + usrID + "-" + usr.userImageData.FileName;
                    }

                    if (usr.u_name != null)
                    {
                        userID.u_name = usr.u_name;
                    }

                    if (usr.u_email != null)
                    {
                        userID.u_email = usr.u_email;
                    }

                    if (usr.u_phone != null)
                    {
                        userID.u_phone = usr.u_phone;
                    }

                    if (usr.u_about != null)
                    {
                        userID.u_about = usr.u_about;
                    }

                    if (usr.u_city != null)
                    {
                        userID.u_city = usr.u_city;
                    }

                    if (usr.u_password != null)
                    {
                        userID.u_password = usr.u_password;
                    }

                    if (usr.u_facebook != null)
                    {
                        userID.u_facebook = usr.u_facebook;
                    }

                    if (usr.u_twitter != null)
                    {
                        userID.u_twitter = usr.u_twitter;
                    }

                    if (usr.u_instagram != null)
                    {
                        userID.u_instagram = usr.u_instagram;
                    }

                    RPE.Entry(userID).State = EntityState.Modified;
                    RPE.SaveChanges();
                }
                catch (Exception ex)
                {
                    this.Response.Write("<script>alert(Error:" + ex.ToString() + ");</script>");
                }
            }

            return(RedirectToAction("UserProfile", "User"));
        }