public async Task <ActionResult> Register(AccountVm data) { try { using (_entities) { //Confirm that model is valid if (!ModelState.IsValid) { return(RedirectToAction("Login", "Home", data)); } //Initialise object of user master table var userMaster = _entities.UserMasters.FirstOrDefault(s => s.Email == data.Email.Trim()); //Check that details is not null if (userMaster != null) { TempData["Error"] = "This email already registered with us."; } else { //Create HASH & SALT var salt = Utilities.GenerateSalt(32); var hash = Utilities.GenerateHash(data.Password.Trim(), data.Email.Trim(), salt); //Create instance of table userMaster = new UserMaster(); userMaster.CopyProperties(data); userMaster.Hash = hash; userMaster.Salt = salt; userMaster.CreatedDate = DateTime.Now; userMaster.IsActive = true; userMaster.IsTermAccept = true; userMaster.RoleMasterId = (int)EnumList.Roles.Owner; //Todo: Email verification task userMaster.IsEmailVerified = true; _entities.UserMasters.Add(userMaster); await _entities.SaveChangesAsync(); //Create response message TempData["Success"] = "Registration done successfully"; } return(RedirectToAction("Login")); } } catch (Exception e) { TempData["Error"] = e.Message; throw; } }