コード例 #1
0
ファイル: UserService.cs プロジェクト: Imartinn/VirtualPets
        public async Task <Guid> CreateUserAsync(string name)
        {
            var user = _virtualPetsDbContext.Users.Add(new User(name));
            await _virtualPetsDbContext.SaveChangesAsync().ConfigureAwait(false);

            return(user.Entity.Id);
        }
コード例 #2
0
        public async Task RaiseHunger(Guid animalId)
        {
            var animal = await _virtualPetsDbContext.Animals.FindAsync(animalId).ConfigureAwait(false);

            animal.RaiseHunger();

            await _virtualPetsDbContext.SaveChangesAsync();
        }
コード例 #3
0
        public async Task FeedAnimalAsync(Guid userId, Guid animalId)
        {
            var animal = await _virtualPetsDbContext.Animals.FindAsync(animalId).ConfigureAwait(false);

            ValidationHelper.ValidateNullAndOwnerOrThrow(userId, animal);

            animal.Feed();

            await _virtualPetsDbContext.SaveChangesAsync();
        }
コード例 #4
0
        public async Task <Guid> AdoptAnimalAsync(Guid userId, string animalName, AnimalType animalType)
        {
            if (await _virtualPetsDbContext.Users.FirstOrDefaultAsync(x => x.Id == userId).ConfigureAwait(false) == null)
            {
                throw new ArgumentException("The provided user does not exist");
            }

            Animal newAnimal;

            switch (animalType)
            {
            case AnimalType.Dog:
                newAnimal = new Dog(userId, animalName);
                break;

            case AnimalType.Cat:
                newAnimal = new Cat(userId, animalName);
                break;

            case AnimalType.Bear:
                newAnimal = new Bear(userId, animalName);
                break;

            case AnimalType.Parrot:
                newAnimal = new Parrot(userId, animalName);
                break;

            default:
                throw new ArgumentException("We don't sell that kind of animal");
            }

            await _virtualPetsDbContext.Animals.AddAsync(newAnimal).ConfigureAwait(false);

            await _virtualPetsDbContext.SaveChangesAsync().ConfigureAwait(false);

            return(newAnimal.Id);
        }