public IActionResult Put(int id,
                          [FromBody] UpdatePublisherDto dto,
                          [FromServices] IUpdatePublisherCommand command)
 {
     dto.Id = id;
     _executor.ExecuteCommand(command, dto);
     return(StatusCode(StatusCodes.Status204NoContent));
 }
Пример #2
0
        public async Task <IActionResult> UpdateAsync([FromRoute] int id, [FromBody] UpdatePublisherDto updateItem, CancellationToken cancellationToken)
        {
            if (!await this._publisherService.ExistsAsync(id))
            {
                return(StatusCode(StatusCodes.Status404NotFound));
            }

            if (await this._publisherService.UpdateAsync(id, updateItem, cancellationToken))
            {
                return(StatusCode(StatusCodes.Status200OK));
            }

            return(StatusCode(StatusCodes.Status400BadRequest));
        }
        public void Execute(UpdatePublisherDto request)
        {
            _validator.ValidateAndThrow(request);
            var publisher = _context.Publishers.Find(Id);

            if (publisher == null)
            {
                throw new EntityNotFOundException(request.Id, typeof(Publisher));
            }

            if (request.Name == null && request.City == null && request.State == null)
            {
                request.Name  = publisher.Name;
                request.City  = publisher.City;
                request.State = publisher.State;
            }

            if (request.Name == null && request.City != null && request.State != null)
            {
                request.Name = publisher.Name;
            }

            if (request.Name != null && request.City == null && request.State != null)
            {
                request.City = publisher.City;
            }

            if (request.Name != null && request.City != null && request.State == null)
            {
                request.State = publisher.State;
            }

            publisher.Name  = request.Name;
            publisher.State = request.State;
            publisher.City  = request.City;

            _context.SaveChanges();
        }