Ejemplo n.º 1
0
        /// <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"));
            }
        }
Ejemplo n.º 2
0
        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"));
            }
        }