public ActionResult SignUp([Bind(Include = "FirstName,LastName,Email,Password,ConfirmPassword")] SignUpViewModel signUpViewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var            config      = new MapperConfiguration(cfg => cfg.CreateMap <SignUpViewModel, SignUpUserDTO>());
                    var            mapper      = config.CreateMapper();
                    SignUpUserDTO  user        = mapper.Map <SignUpViewModel, SignUpUserDTO>(signUpViewModel);
                    LoginedUserDTO loginedUser = BusinessLayerUser.SignUp(user);
                    if (loginedUser != null)
                    {
                        FormsAuthentication.SetAuthCookie(loginedUser.Email, false);

                        Session["userID"]  = loginedUser.ID.ToString();
                        Session["emailID"] = loginedUser.Email;
                        return(RedirectToAction("Index", "BookReadingEvent"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Error while Registering in Database");
                        return(View());
                    }
                }
            }
            catch (DataBaseUpdationException exception)
            {
                return(Content(exception.Message));
            }

            return(View());
        }
        public ActionResult LoginUser(LoginUserViewModel loginUserViewModel)
        {
            if (ModelState.IsValid)
            {
                if (loginUserViewModel.Email == "*****@*****.**" && loginUserViewModel.Password == "#Salodhia")
                {
                    Session["emailID"] = "*****@*****.**";
                    FormsAuthentication.SetAuthCookie("*****@*****.**", false);

                    return(RedirectToAction("AdminHome", "BookReadingEvent"));
                }
                var            config      = new MapperConfiguration(cfg => cfg.CreateMap <LoginUserViewModel, LoginUserDTO>());
                var            mapper      = config.CreateMapper();
                LoginUserDTO   user        = mapper.Map <LoginUserViewModel, LoginUserDTO>(loginUserViewModel);
                LoginedUserDTO loginedUser = BusinessLayerUser.LoginUser(user);
                if (loginedUser != null)
                {
                    FormsAuthentication.SetAuthCookie(loginedUser.Email, false);
                    Session["userID"]  = loginedUser.ID.ToString();
                    Session["emailID"] = loginedUser.Email;

                    return(RedirectToAction("Index", "BookReadingEvent"));
                }
                else
                {
                    ModelState.AddModelError("", "You Entered Wrong Credential");
                    return(View());
                }
            }

            return(View());
        }
        public LoginedUserDTO LoginUser(LoginUserDTO loginUserDTO)
        {
            var list = UserRepository.Find(tempuser => (tempuser.Email == loginUserDTO.Email && tempuser.Password == loginUserDTO.Password)).ToList();

            if (list.Count != 0)
            {
                User           user        = list.First();
                var            config      = new MapperConfiguration(cfg => cfg.CreateMap <User, LoginedUserDTO>());
                var            mapper      = config.CreateMapper();
                LoginedUserDTO logineduser = mapper.Map <User, LoginedUserDTO>(user);
                return(logineduser);
            }
            return(null);
        }
        public LoginedUserDTO SignUp(SignUpUserDTO loginUser)
        {
            var  config = new MapperConfiguration(cfg => cfg.CreateMap <SignUpUserDTO, User>());
            var  mapper = config.CreateMapper();
            User user   = mapper.Map <SignUpUserDTO, User>(loginUser);

            user.CreatedOn  = DateTime.Now;
            user.ModifiedOn = DateTime.Now;
            UserRepository.Add(user);
            bool isCommited = true;



            if (isCommited)
            {
                User           returnuser  = UserRepository.Find(tempuser => (tempuser.Email == user.Email && tempuser.Password == user.Password)).ToList().First();
                var            config2     = new MapperConfiguration(cfg => cfg.CreateMap <User, LoginedUserDTO>());
                var            mapper2     = config2.CreateMapper();
                LoginedUserDTO logineduser = mapper2.Map <User, LoginedUserDTO>(returnuser);
                return(logineduser);
            }

            return(null);
        }
        public RequestMessageFormat <LoginedUserDTO> LoginUser(LoginUserDTO loginUserDTO)
        {
            RequestMessageFormat <LoginedUserDTO> response = new RequestMessageFormat <LoginedUserDTO>();

            try
            {
                int count = this.UserRepository.Find(user => user.Email == loginUserDTO.Email).ToList().Count();

                if (count == 0)
                {
                    response.Data    = null;
                    response.Message = "No User found with this email";
                    response.Success = false;
                    return(response);
                }
                else
                {
                    count = 0;
                    count = this.UserRepository.Find(user => user.Email == loginUserDTO.Email && user.Password == loginUserDTO.Password).ToList().Count();
                    if (count != 0)
                    {
                        User user = this.UserRepository.Find(theuser => theuser.Email == loginUserDTO.Email).ToList().First();
                        if (user.IsApprover == BooleanType.True)
                        {
                            LoginedUserDTO loginedUserDTO1 = this.AutoMapperConfigurations.UserToLoginedUserDTO(user);
                            response.Data = loginedUserDTO1;

                            response.Message = "You are successfully loggedIn";
                            response.Success = true;
                            return(response);
                        }

                        LoginedUserDTO loginedUserDTO = this.AutoMapperConfigurations.UserToLoginedUserDTO(user);


                        UserCurrentRequestStatus userCurrentRequestStatus = this.UserCurrentRequestStatusRepository.Find(status => status.UserId == user.ID).ToList().First();
                        loginedUserDTO.UserRequestStatus = userCurrentRequestStatus.UserRequestType;


                        response.Data = loginedUserDTO;

                        response.Message = "You are successfully loggedIn";
                        response.Success = true;
                        return(response);
                    }
                    else
                    {
                        response.Data    = null;
                        response.Message = "Incorrect Password";
                        response.Success = false;
                        return(response);
                    }
                }
            }
            catch (Exception)
            {
                response.Message = "Some Error Occurred while adding data please try again";
                response.Data    = null;
                response.Success = false;
                return(response);
            }
        }