public ActionResult CreateUser(UserRegistrationViewModel userRegistrationViewModel)
        {
            //UserRegistration objUserRegistration = new UserRegistration();

            //  var transaction = objUserRegistration;

            using (var dbTransaction = db.Database.BeginTransaction())
            {
                UserRegistration objUserRegistration = db.UserRegistrations.Create();
                Address          address             = db.Addresses.Create();
                Course           course        = db.Courses.Create();
                UserInRole       userInRole    = db.UserInRoles.Create();
                SecurityTable    securityTable = db.SecurityTables.Create();
                try
                {
                    if (ModelState.IsValid)
                    {
                        address.CurrentAddress   = userRegistrationViewModel.CurrentAddress;
                        address.PermanentAddress = userRegistrationViewModel.PermanentAddress;
                        address.ZipCode          = userRegistrationViewModel.ZipCode;
                        address.CountryId        = userRegistrationViewModel.CountryId;
                        address.StateId          = userRegistrationViewModel.StateId;
                        address.CityId           = userRegistrationViewModel.CityId;

                        //Random random = new Random();
                        //int i = random.Next();
                        //userRegistrationViewModel.AddressId = i;

                        // for only taking what it return to check
                        db.Addresses.Add(address);
                        db.SaveChanges();        // savepoint 1

                        var temp = address.AddressId;


                        //not require because .add create new id
                        objUserRegistration.UserId      = Guid.NewGuid();
                        objUserRegistration.Fname       = userRegistrationViewModel.Fname;
                        objUserRegistration.Lname       = userRegistrationViewModel.Lname;
                        objUserRegistration.DateOfBirth = userRegistrationViewModel.DateOfBirth;
                        objUserRegistration.Hobbies     = userRegistrationViewModel.Hobbies;
                        objUserRegistration.Email       = userRegistrationViewModel.Email;
                        //objUserRegistration.Password = userRegistrationViewModel.Password;
                        objUserRegistration.Gender       = userRegistrationViewModel.Gender;
                        objUserRegistration.IsActive     = userRegistrationViewModel.IsActive;
                        objUserRegistration.IsVerified   = userRegistrationViewModel.IsVerified;
                        objUserRegistration.DateCreated  = DateTime.Now;
                        objUserRegistration.DateModified = DateTime.Now;
                        objUserRegistration.CourseId     = userRegistrationViewModel.CourseId;

                        objUserRegistration.AddressId = temp;

                        ////for course
                        //var tempCourse = db.Courses.Where(s => s.CourseId == userRegistrationViewModel.CourseId).Select(s => s.CourseName);

                        //password Hashing passwords with MD5 or sha-256 C#
                        objUserRegistration.Password = Convert.ToBase64String(System.Security.Cryptography.SHA256.Create()
                                                                              .ComputeHash(Encoding.UTF8.GetBytes(userRegistrationViewModel.Password)));

                        db.UserRegistrations.Add(objUserRegistration);
                        db.SaveChanges();                // savepoint 2
                        var tempUserId = db.UserRegistrations.Select(a => a.UserId);

                        //for Role in UserInRole

                        userInRole.RoleId = userRegistrationViewModel.RoleId;
                        userInRole.UserId = objUserRegistration.UserId;
                        db.UserInRoles.Add(userInRole);
                        db.SaveChanges();

                        // Security PIN
                        securityTable.UserId           = objUserRegistration.UserId;
                        securityTable.SecurityQuestion = userRegistrationViewModel.SecurityPIN;
                        db.SecurityTables.Add(securityTable);
                        db.SaveChanges();

                        dbTransaction.Commit();

                        Response.Write("<script>alert('Data inserted successfully')</script>");
                        return(RedirectToAction("UserLogIn", "UserLogIn"));
                    }

                    ModelState.AddModelError("", "please fill the form properly");
                    return(View(userRegistrationViewModel));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception source: {0} user is failed to register", ex.Message);
                    dbTransaction.Rollback();
                    ModelState.AddModelError("", "please fill the form properly");
                }
            }

            return(RedirectToAction("Index", "Home"));
        }
Beispiel #2
0
 public WimImage(SecurityTable securityTable, DirectoryTableEntry[] directoryTable)
 {
     _securityTable  = securityTable;
     _directoryTable = directoryTable;
 }