/// <summary>
        /// Async register customer
        /// </summary>
        /// <param name="customer">Csutomer entity</param>
        /// <param name="password">Customer password</param>
        /// <returns>Registrated customer</returns>
        public async Task <Customers> Register(Customers customer, string password)
        {
            byte[] passwordHash;
            byte[] passwordSalt;
            AuthHelpers.CreatePasswordHash(password, out passwordHash, out passwordSalt);

            customer.CustomerPassword = passwordHash;
            customer.CustomerSalt     = passwordSalt;

            using (var transaction = _surveyOnlineContext.Database.BeginTransaction())
            {
                try
                {
                    await _surveyOnlineContext.AddAsync(customer);

                    await _surveyOnlineContext.SaveChangesAsync();

                    transaction.Commit();
                }
                catch (Exception)
                {
                    transaction.Rollback();
                }
            }
            return(customer);
        }