public Account(ICustomer customer, AccountType type = AccountType.Normal, float balance = 0.0F, DateTime closeDate = default(DateTime), IInterestRate state = null, float allowedDebit = 250.00F) { AccountId = customer.NewAccountId(); CustomerId = customer.CustomerId; Balance = balance; OpenDate = DateTime.Now; CloseDate = closeDate; History = new List<IOperationHistory>(); AllowedDebit = allowedDebit; Debits = 0.0F; Type = type; State = state ?? new Normal(this); State.Check(); }