/// <summary> /// Gets personal bank account opening page if the user has a valid ID. /// </summary> /// <param name="Id"></param> /// <returns></returns> public ActionResult PersonalBankAccountOpening(int?Id) { try { var inDB = db.CurrentAccount.Where(hasValue => hasValue.PersonId == null && hasValue.CompanyId == null).FirstOrDefault(usr => usr.Id == Id).Equals(1); if (inDB == false) { PersonRegistrationViewModel personRegistration = new PersonRegistrationViewModel(); try { CurrentAccount dbAcc = db.CurrentAccount.Where(model => model.Id == Id).FirstOrDefault(); personRegistration.PersonalCommonData.AccountNumber = dbAcc.AccountNumber; personRegistration.PersonalCommonData.EmailAddress = dbAcc.EmailAddress; return(View(personRegistration)); } catch (Exception) { ViewBag.Message = "Sikertelen feldolgozás"; return(View(personRegistration)); } } else { return(RedirectToAction("Error", "Home")); } } catch (Exception) { return(RedirectToAction("Error", "Home")); } }
public ActionResult PersonalBankAccountOpening(PersonRegistrationViewModel model) { // Server side validations // Telephone number validation bool validTelephoneNumber = IsValidTelephoneNumber(model.PersonalCommonData.TelephoneNumber); if (!validTelephoneNumber) { ModelState.AddModelError("Formátum hiba", "A telefonaszám nem megfelelő formátumú!"); } //Validation of Company Tax Number bool isValidIdentification = isValidIdentificationNumber(model.IdNumber); if (!isValidIdentification) { ModelState.AddModelError("Formátum hiba", "Hibás formátum!"); } try { if (ModelState.IsValid) { // Hashing the password. var salt = Crypto.GenerateSalt(); var savedPasswordHash = Crypto.SHA256(model.PersonalCommonData.Password + salt); Person newPerson = new Person(); newPerson.FullName = model.PersonalCommonData.Name; newPerson.IdNumber = model.IdNumber; newPerson.MotherName = model.MotherName; newPerson.TelephoneNumber = model.PersonalCommonData.TelephoneNumber; newPerson.Address = model.PersonalCommonData.Address; // Adding new Company to database db.Person.Add(newPerson); var currentAccount = db.CurrentAccount.FirstOrDefault(currAcc => currAcc.AccountNumber == model.PersonalCommonData.AccountNumber); currentAccount.AccountOpenedDate = DateTime.Now; currentAccount.Password = savedPasswordHash; currentAccount.Salt = salt; currentAccount.Person = newPerson; var tokenManagerEntry = db.TokenManager.FirstOrDefault(token => token.TokenKey == currentAccount.TokenManagerTokenKey); tokenManagerEntry.IsActive = false; tokenManagerEntry.AccountCreated = currentAccount.AccountOpenedDate; tokenManagerEntry.TokenExpiry = null; db.Entry(currentAccount).State = EntityState.Modified; db.Entry(tokenManagerEntry).State = EntityState.Modified; db.SaveChanges(); SessionState.Current.CurrentAccountId = currentAccount.Id; SessionState.Current.CurrentUserName = currentAccount.Person.FullName; return(RedirectToAction("Index", "User")); } return(View(model)); } catch (Exception) { return(RedirectToAction("Error", "Home")); } }