public LoyaltyPointAccount CreateFromSpecification(LoyaltyPointAccountSpecification specification)
        {
            var identity = identityFactory.CreateFromSpecification(specification.Identity);

            var initialBalance = new Amount(primaryCurrency, specification.InitialBalance);

            var account = new LoyaltyPointAccount(createdState, activeState, inactiveState, identity, primaryCurrency);

            account.AddPoints(initialBalance);
            return(account);
        }
        public IAccount CreateFromSpecification(StandardAccountSpecification spec)
        {
            var identity = identityFactory.CreateFromSpecification(spec.Identity);

            var accountInformation = new AccountInformation
            {
                Identity        = identity,
                PrimaryCurrency = primaryCurrency
            };

            balanceUpdateMethod.Deposit(accountInformation, spec.StartingBalance);

            var result = new StandardAccount(statusAwareOperations, identity, primaryCurrency);

            return(result);
        }