public int CreateDay1(CreateTenantModel domainModel)
        {
            var username = ClaimsPrincipal.Current.Identity.SplitName();

            // Create repositories
            var tenantRepository = new TenantRepository();
            var userAccountRepository = new UserAccountRepository();
            var creditCardRepository = new CreditCardRepository();

            // Get the User
            var user = userAccountRepository.Fetch(username);

            // Create the Tenant
            var tenantId = tenantRepository.Create(user.UserAccountId, domainModel.Tenant);

            // Create the CreditCard
            if (!string.IsNullOrEmpty(domainModel.CreditCard.CreditCardNumber))
            {
                creditCardRepository.Insert(tenantId, domainModel.CreditCard);
            }

            // Update the User
            userAccountRepository.UpdatePesonalDetails(username, domainModel.UserAccount.Firstname, domainModel.UserAccount.Lastname);

            return tenantId;
        }
        public void UpdateCacheData(UserAccountModel domainModel)
        {
            // Create repositories
            var userAccountRepository = new UserAccountRepository();

            // Create the UserAccount
            userAccountRepository.UpdateCacheData(domainModel);
        }
        public void UpdatePersonalDetails(string username, string firstname, string lastname)
        {
            // Create repositories
            var userAccountRepository = new UserAccountRepository();

            // Create the UserAccount
            userAccountRepository.UpdatePesonalDetails(username, firstname, lastname);
        }
        public UserAccountModel FetchByUsername(string username)
        {
            // Create repository
            var userAccountRepository = new UserAccountRepository();

            // Find the user
            var user = userAccountRepository.Fetch(username);

            return user;
        }
        public int Create(CreateUserAccountModel domainModel)
        {
            // Create repositories
            var userAccountRepository = new UserAccountRepository();

            // Create the UserAccount
            var userAccountId = userAccountRepository.Insert(domainModel);

            return userAccountId;
        }
        public int CreateDay2(CreateTenantModel domainModel)
        {
            var username = ClaimsPrincipal.Current.Identity.SplitName();

            // Create repositories
            var tenantRepository = new TenantRepository();
            var userAccountRepository = new UserAccountRepository();

            // Get the User
            var user = userAccountRepository.Fetch(username);

            // Create the Tenant
            var tenantId = tenantRepository.Create(user.UserAccountId, domainModel.Tenant);

            return tenantId;
        }