Esempio n. 1
0
        private void When(object @event)
        {
            switch (@event)
            {
            case Events.CityCreated e:
                Id   = new CityId(e.Id);
                Name = e.Name;
                break;

            case Events.CityNameChanged e:
                Name = e.Name;
                break;

            case Events.CityDeleted e:
                Id   = new CityId(e.Id);
                Name = e.Name;
                break;
            }
        }
Esempio n. 2
0
        public static City Create(CityId id, string name)
        {
            if (id is null)
            {
                throw new ArgumentNullException(nameof(id), "City without unique identifier cannot be created.");
            }

            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException(nameof(name), "City without name cannot be created.");
            }

            var city = new City();

            city.Apply(new Events.CityCreated
            {
                Id   = id,
                Name = name
            });

            return(city);
        }