public bool ChangeTarrif(ITarif newTarrif) { if (Tarif == newTarrif) { return(true); } var curDate = DateTime.Now; if (Statistics.LastDatePayment + PaymentPeriod >= curDate) { Tarif = newTarrif; Statistics.LastChangePlan = curDate; return(true); } return(false); }
public Account(IContract contract, ITarif tarif, TimeSpan tarifChangePeriod, TimeSpan paymentPeriod) { if (contract == null) { throw new ArgumentNullException(nameof(contract)); } if (tarif == null) { throw new ArgumentNullException(nameof(tarif)); } Contract = contract; Client = Contract.Client; Statistics = new Statistics() { LastDatePayment = Contract.AcceptedDate, LastChangePlan = Contract.AcceptedDate }; Tarif = tarif; TarifChangePeriod = tarifChangePeriod; PaymentPeriod = paymentPeriod; }