Exemplo n.º 1
0
        public async Task <SportResponse> UpdateAsync(int id, SportSaveResource sportSaveResource)
        {
            var existingItem = await _sportRepository.FindByIdAsync(id);

            if (existingItem == null)
            {
                return(new SportResponse(404, "Item id not found", "Id", "Sport id not found."));
            }

            var existingItemWithName = await _sportRepository.FindByName(sportSaveResource.Name);

            if (existingItemWithName != null && existingItemWithName.Id != id)
            {
                return(new SportResponse(400, "Item already exists", "Name", "Sport name is taken"));
            }

            existingItem.Name = sportSaveResource.Name;

            try
            {
                _sportRepository.Update(existingItem);
                var responseResource = _mapper.Map <Sport, SportResource>(existingItem);
                return(new SportResponse(responseResource));
            }
            catch (Exception ex)
            {
                return(new SportResponse(400, "Unexpected error", "Error", ex.Message));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> PostAsync([FromBody] SportSaveResource saveResource)
        {
            var response = await _sportService.SaveAsync(saveResource);

            if (!response.Success)
            {
                return(BadRequest(response.Error));
            }

            return(CreatedAtAction(nameof(GetAsync), new { id = response.Result.Id }, response.Result));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> PutAsync(int id, [FromBody] SportSaveResource saveResource)
        {
            var response = await _sportService.UpdateAsync(id, saveResource);

            if (!response.Success && response.Error.Status == 404)
            {
                return(NotFound(response.Error));
            }

            if (!response.Success)
            {
                return(BadRequest(response.Error));
            }

            return(Ok(response.Result));
        }
Exemplo n.º 4
0
        public async Task <SportResponse> SaveAsync(SportSaveResource sportSaveResource)
        {
            try
            {
                var existingItem = await _sportRepository.FindByName(sportSaveResource.Name);

                if (existingItem != null)
                {
                    return(new SportResponse(400, "Item already exists", "Name", "Sport name is taken"));
                }

                var sport = _mapper.Map <SportSaveResource, Sport>(sportSaveResource);
                await _sportRepository.AddAsync(sport);

                var responseResource = _mapper.Map <Sport, SportResource>(sport);
                return(new SportResponse(responseResource));
            }
            catch (Exception ex)
            {
                return(new SportResponse(400, "Unexpected error", "Error", ex.Message));
            }
        }