public Dog GetDogDetails([FromBody] BaseAnimalRequest request) { Console.WriteLine(_operationId.GetOperationId()); var dog = _animalStorage.GetAnimalDetails(request.AnimalId) as Dog; return(dog); }
public Cat GetCatDetails([FromBody] BaseAnimalRequest request) { Console.WriteLine(_operationId.GetOperationId()); var cat = _animalStorage.GetAnimalDetails(request.AnimalId) as Cat; return(cat); }
public string TalkWithAnAnimal([FromBody] BaseAnimalRequest request) { Console.WriteLine(_operationId.GetOperationId()); var animal = _animalStorage.GetAnimalDetails(request.AnimalId); return(animal?.Speak()); }
public System.Web.Mvc.HttpStatusCodeResult Adopt([FromBody] BaseAnimalRequest request) { Console.WriteLine(_operationId.GetOperationId()); var animal = _animalStorage.Remove(request.AnimalId); if (animal == null) { return(new System.Web.Mvc.HttpStatusCodeResult(HttpStatusCode.NoContent, "Animal with such ID does not stay in the shelter")); } return(new System.Web.Mvc.HttpStatusCodeResult(HttpStatusCode.OK, "Congratulations! You have just adopted " + animal.Name)); }
public System.Web.Mvc.HttpStatusCodeResult FeedASpoiledFish([FromBody] BaseAnimalRequest request) { Console.WriteLine(_operationId.GetOperationId()); var animal = _animalStorage.GetAnimalDetails(request.AnimalId); if (animal == null) { return(new System.Web.Mvc.HttpStatusCodeResult(HttpStatusCode.NoContent, "Animal with such ID does not stay in the shelter")); } var isAlive = animal.FeedASpoiledFish(); if (!isAlive) { _animalStorage.Remove(request.AnimalId); } return(new System.Web.Mvc.HttpStatusCodeResult(HttpStatusCode.OK, "You have just fed " + animal.Name + " a spoiled fish! " + (isAlive ? "But he is alive." : "Now he is dead"))); }
public System.Web.Mvc.HttpStatusCodeResult FeedATreat([FromBody] BaseAnimalRequest request) { Console.WriteLine(_operationId.GetOperationId()); var animal = _animalStorage.GetAnimalDetails(request.AnimalId); if (animal == null) { return(new System.Web.Mvc.HttpStatusCodeResult(HttpStatusCode.NoContent, "Animal with such ID does not stay in the shelter")); } //Animal should not be adopted or talked with while he's eating. //Lock block added to avoid race condition. lock (animal) { animal.FeedATreat(); _animalStorage.UpdateAnimal(request.AnimalId, animal); } return(new System.Web.Mvc.HttpStatusCodeResult(HttpStatusCode.OK, "You have just fed " + animal.Name + " a treat! Now his weight is " + animal.Weight)); }