示例#1
0
        public async Task <bool> Handle(CreatePetRequest message, IOutboundPort <NewEntityResponse <int> > outputPort)
        {
            var user = await _userStore.GetUserById(message.User);

            if (user == null)
            {
                return(false);
            }

            // Compose a new Pet instance:
            var pet = _entityFactory.GetPetBuilder()
                      .SetName(message.Name)
                      .SetSpecies(await _store.GetSpeciesById(message.SpeciesType))
                      .SetMorph(message.Morph)
                      .SetOwner(user)
                      .Build();

            var id = await _store.Create(pet);

            var response = new NewEntityResponse <int> {
                Id = id
            };

            outputPort.Handle(response);
            return(true);
        }
示例#2
0
        public Pet AddPet(CreatePetRequest newPetObj)
        {
            using (var db = new SqlConnection(ConnectionString))
            {
                var newPetQuery = db.QueryFirstOrDefault <Pet>(@"
                    Insert into pets (name, userId, breed, dateOfBirth, dateOfDeath, burialStreet, burialCity, burialState, burialZipCode, burialPlot)
                    Output inserted.*
                    Values(@name,@userId,@breed,@dateOfBirth,@dateOfDeath,@burialStreet,@burialCity,@burialState,@burialZipCode,@burialPlot)",
                                                               new { newPetObj.Name,
                                                                     newPetObj.UserId,
                                                                     newPetObj.Breed,
                                                                     newPetObj.DateOfBirth,
                                                                     newPetObj.DateOfDeath,
                                                                     newPetObj.BurialStreet,
                                                                     newPetObj.BurialCity,
                                                                     newPetObj.BurialState,
                                                                     newPetObj.BurialZipCode,
                                                                     newPetObj.BurialPlot });
                if (newPetQuery != null)
                {
                    return(newPetQuery);
                }

                throw new Exception("No Pet Found");
            }
        }
示例#3
0
        public ActionResult AddPet(CreatePetRequest createRequest)
        {
            if (!_validator.Validate(createRequest))
            {
                return(BadRequest(new { error = "pets must have a name, user Id, breed, date of birth, and date of death." }));
            }
            var newPet = _petRepository.AddPet(createRequest);

            return(Created($"api/pets/{newPet.Id}", newPet));
        }
示例#4
0
        public override async Task <ActionResult <EmployeeResponse> > HandleAsync(UpdateEmployeeRequest request)
        {
            var employee = await _employeeService.AddPetAsync(CreatePetRequest.FromPetRequest(request.Pets));

            if (employee is null)
            {
                return(NotFound());
            }

            return(EmployeeResponse.FromEmployeeDTO(employee));
        }
示例#5
0
 public void Create(CreatePetRequest request)
 {
     _endpoint.Send <ICreatePetCommand>(new
     {
         OwnerId         = request.OwnerId,
         OwnerEmail      = request.OwnerEmail,
         Name            = request.Name,
         Breed           = request.Breed,
         Sex             = request.Sex,
         Species         = request.Species,
         ColorHex        = request.ColorHex,
         BirthDate       = request.BirthDate,
         ProfileImageUrl = request.ProfileImageUrl,
         MessageType     = (typeof(ICreatePetCommand)).Name,
         Timestamp       = DateTimeOffset.UtcNow
     }).Wait();
 }
示例#6
0
        public async Task <IActionResult> CreateNewPet([FromBody] NewPetForm petInfo)
        {
            if (!ModelState.IsValid ||
                string.IsNullOrWhiteSpace(petInfo.Name))
            {
                return(BadRequest(ModelState));
            }

            // Convert into core Dto.NewPetRequest.
            var request = new CreatePetRequest
            {
                Name        = petInfo.Name,
                SpeciesType = petInfo.SpeciesId,
                Morph       = petInfo.Morph,
                User        = _claimsCompat.ExtractFirstIdClaim(HttpContext.User)
            };

            var port    = new BasicPresenter <NewEntityResponse <int> >();
            var success = await _addPetUseCase.Handle(request, port);

            return((success) ? new OkObjectResult(port.Response.Id) : BadRequest());
        }
示例#7
0
 public IActionResult Post([FromBody] CreatePetRequest request)
 {
     _petService.Create(request);
     return(NoContent());
 }
 public bool Validate(CreatePetRequest requestToValidate)
 {
     return(!(string.IsNullOrEmpty(requestToValidate.Name) ||
              string.IsNullOrEmpty(requestToValidate.Breed) ||
              string.IsNullOrEmpty(requestToValidate.DateOfBirth.ToString())));
 }