summaryrefslogtreecommitdiff
path: root/slips/src/app/Marina/Domain/SlipLease.cs
blob: 297bbf0380cb50f18096c1da1f8bf14562f1c17b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using Marina.Domain.Interfaces;

namespace Marina.Domain {
	public class SlipLease : ISlipLease {
		public SlipLease( ISlip slip, ILeaseDuration duration )
			: this( slip, duration, DateTime.Now.Date, duration.CalculateExpiryDateFrom( DateTime.Now.Date ) ) {}

		public SlipLease( ISlip slip, ILeaseDuration duration, DateTime startDate, DateTime expiryDate ) {
			_slip = slip;
			_duration = duration;
			_startDate = startDate;
			_expiryDate = expiryDate;
		}

		public ILeaseDuration Duration() {
			return _duration;
		}

		public DateTime StartDate() {
			return _startDate;
		}

		public DateTime ExpiryDate() {
			return _expiryDate;
		}

		public ISlip Slip() {
			return _slip;
		}

		private readonly ILeaseDuration _duration;
		private readonly DateTime _startDate;
		private readonly DateTime _expiryDate;
		private readonly ISlip _slip;
	}
}