예제 #1
0
        public Result Handle(AddGirlScoutCommand command)
        {
            var repository = new TroopRepository(_unitOfWork);
            var troop      = repository.GetTroop(command.TroopId);

            if (troop == null)
            {
                return(Result.Fail($"No troop with Id: {command.TroopId}"));
            }

            var girlScout = new GirlScout
            {
                FirstName       = command.FirstName,
                LastName        = command.LastName,
                Inventory       = new GirlScoutCookieInventory(),
                ParentFirstName = command.ParentFirstName,
                ParentLastName  = command.ParentLastName,
                PhoneNumber     = command.PhoneNumber
            };

            troop.AddGirlScout(girlScout);

            _unitOfWork.Commit();

            return(Result.Ok());
        }
예제 #2
0
        public TroopDto Handle(GetTroopQuery query)
        {
            var repository = new TroopRepository(_unitOfWork);

            var troop = repository.GetTroop(query.Id);

            return(new TroopDto
            {
                Id = troop.Id,
                GirlScouts = troop.GirlScouts.Select(g => new GirlScoutDto
                {
                    FirstName = g.FirstName,
                    LastName = g.LastName,
                    ParentFirstName = g.ParentFirstName,
                    ParentLastName = g.ParentLastName,
                    PhoneNumber = g.PhoneNumber,
                    Inventory = CreateInventoryDto(g.Inventory)
                }).ToList(),
                Name = troop.Name,
                Inventory = CreateInventoryDto(troop.Inventory)
            });
        }