main
 1using System;
 2using mars.rover.common;
 3using mars.rover.domain;
 4
 5namespace mars.rover.presentation.model
 6{
 7    public class HeadingFactory : Specification<string>
 8    {
 9        readonly string code;
10        readonly Func<Plateau, Heading> factory;
11
12        public HeadingFactory(string code, Func<Plateau, Heading> factory)
13        {
14            this.code = code;
15            this.factory = factory;
16        }
17
18        public virtual bool is_satisfied_by(string item)
19        {
20            return string.Equals(code, item, StringComparison.OrdinalIgnoreCase);
21        }
22
23        public virtual Heading create(Plateau plateau)
24        {
25            return factory(plateau);
26        }
27    }
28}