Example #1
0
        public async System.Threading.Tasks.Task <ActionResult> Create(FormCollection collection)
        {
            ViewBag.successMessage = "";
            ViewBag.errorMessage   = "";
            var  id         = "";
            var  userid     = "";
            var  firstName  = "";
            var  lastName   = "";
            var  email      = "";
            var  password   = "";
            bool isAllValid = true;

            if (Session["LogedUserID"] != null)
            {
                try
                {
                    var action = Request.Form["action"].ToString();
                    if (action == "create")
                    {
                        firstName = Request.Form["firstName"].ToString();
                        lastName  = Request.Form["lastName"].ToString();
                        email     = Request.Form["email"].ToString();
                        password  = Request.Form["password"].ToString();
                        if (!Regex.IsMatch(firstName, @"^[a-zA-Z\s]+$"))
                        {
                            ViewBag.successMessage = "";
                            ViewBag.errorMessage   = "Provide valid First Name";
                            var _existingpList = db.SP_SelectPatient();
                            return(View(_existingpList));
                        }
                        if (!Regex.IsMatch(lastName, @"^[a-zA-Z\s]+$"))
                        {
                            ViewBag.successMessage = "";
                            ViewBag.errorMessage   = "Provide valid Last Name";
                            var _existingpList = db.SP_SelectPatient();
                            return(View(_existingpList));
                        }
                        Utility util = new Utility();
                        if (!(util.IsValid(email)))
                        {
                            ViewBag.successMessage = "";
                            ViewBag.errorMessage   = "Provide valid Email Address";
                            var _existingpList = db.SP_SelectPatient();
                            return(View(_existingpList));
                        }


                        var user = new ApplicationUser
                        {
                            UserName  = email,
                            Email     = email,
                            FirstName = firstName,
                            LastName  = lastName,
                        };
                        var result = await UserManager.CreateAsync(user, password);

                        if (result.Succeeded)
                        {
                            //var patient = new DataAccess.Patient();
                            //patient.userId = user.Id;
                            //patient.lastName = user.LastName;
                            //patient.firstName = user.FirstName;
                            //patient.email = user.Email;
                            //patient.cb = Session["LogedUserID"].ToString();
                            //patient.active = true;
                            //db.Patients.Add(patient);
                            //db.SaveChanges();
                            db.SP_AddPatient(firstName, lastName, email, user.Id, Session["LogedUserID"].ToString());
                            db.SaveChanges();

                            var userAssignRole = new UserAssignRoleModel();
                            userAssignRole.UserId = user.Id;//"8466ba63-b903-4d0a-8633-ce399ed1b542";//
                            userAssignRole.Role   = "Patient";



                            var     strContent = JsonConvert.SerializeObject(userAssignRole);
                            var     response   = ApiConsumerHelper.PostData("api/Roles/AssignRole", strContent);
                            dynamic resultAdd  = JsonConvert.DeserializeObject(response);
                            ViewBag.successMessage = "Record has been saved successfully";
                            ViewBag.errorMessage   = "";
                        }
                        else
                        {
                            ViewBag.successMessage = "";
                            foreach (var error in result.Errors)
                            {
                                ViewBag.errorMessage = error;
                            }
                            var _existingpList = db.SP_SelectPatient();
                            return(View(_existingpList));
                        }
                    }
                    if (action == "edit")
                    {
                        id       = Request.Form["id"].ToString();
                        userid   = Request.Form["userid"].ToString();
                        password = Request.Form["password"].ToString();
                        string token = await UserManager.GeneratePasswordResetTokenAsync(userid);

                        //var firstName = Request.Form["firstName"].ToString();
                        //var lastName = Request.Form["lastName"].ToString();
                        //var email = Request.Form["email"].ToString();
                        //db.sp_ResetPatientPassword(Convert.ToInt64(id), password, Session["LogedUserID"].ToString(), System.DateTime.Now);
                        // db.SaveChanges();
                        var result = await UserManager.ResetPasswordAsync(userid, token, password);

                        if (result.Succeeded)
                        {
                            ViewBag.successMessage = "Record has been saved successfully";
                            ViewBag.errorMessage   = "";
                        }
                        else
                        {
                            ViewBag.successMessage = "";
                            foreach (var error in result.Errors)
                            {
                                ViewBag.errorMessage = error;
                            }
                            var _existingpList = db.SP_SelectPatient();
                            return(View(_existingpList));
                        }
                    }
                    if (action == "delete")
                    {
                        long pid = Convert.ToInt64(Request.Form["id"].ToString());
                        userid = Request.Form["userid"].ToString();
                        Patient patient = db.Patients.Where(a => a.patientID == pid).FirstOrDefault();
                        if (patient != null)
                        {
                            //Update AdminUsers table
                            patient.active          = false;
                            patient.mb              = Session["LogedUserID"].ToString();
                            patient.md              = DateTime.Now;
                            db.Entry(patient).State = EntityState.Modified;
                            db.SaveChanges();
                            ViewBag.successMessage = "Record has been deleted successfully";
                            ViewBag.errorMessage   = "";
                        }
                        else
                        {
                            ViewBag.successMessage = "";
                            ViewBag.errorMessage   = "Patient not found.";
                        }
                    }


                    var _existingpatientsList = db.SP_SelectPatient();
                    return(View(_existingpatientsList));
                }
                catch (Exception ex)
                {
                    ViewBag.errorMessage = "Error occurred while processing your request.";
                    return(View());
                }
            }
            else
            {
                return(RedirectToAction("AdminLogin", "Account"));
            }
        }