public BannerResponse Execute(UpdateBannerInput input) { var bannerResponse = new BannerResponse(); try { CheckInputValidity(input); Log.Information("Actualizando Banner por Id: [{Id}] con nuevo nombre: [{NewTitle}]...", input.Id, input.NombreNuevo); var bannerToUpdate = Repository.SingleOrDefault(banner => banner.Id == input.Id); if (bannerToUpdate == null) { var exception = new Exception($"No se pudo encontrar el banner con el id: [{input.Id}]."); Log.Error(exception, EXCEPTION_MESSAGE_TEMPLATE, exception.Message); HandleErrors(bannerResponse, exception, 404); return(bannerResponse); } bannerToUpdate.Nombre = input.NombreNuevo; bannerToUpdate.Base64 = input.Base64Nuevo; var updatedBanner = Repository.Update(bannerToUpdate); bannerResponse.Banner = updatedBanner; bannerResponse.StatusCode = 200; Log.Information("Actualizado con exito el banner con Id: [{Id}] con nuevo nombre [{NewTitle}].", input.Id, input.NombreNuevo); } catch (Exception exception) { Log.Error(exception, EXCEPTION_MESSAGE_TEMPLATE, exception.Message); HandleErrors(bannerResponse, exception); } return(bannerResponse); }
private void CheckInputValidity(UpdateBannerInput input) { if (input == null) { throw new ArgumentNullException(nameof(input)); } if (input.Id <= 0) { throw new ArgumentException($"Input {nameof(input.Id)} debe ser 1 or mayor."); } if (string.IsNullOrWhiteSpace(input.NombreNuevo)) { throw new ArgumentException($"Input {nameof(input.NombreNuevo)} no puede ser vacio."); } if (string.IsNullOrWhiteSpace(input.Base64Nuevo)) { throw new ArgumentException($"Input {nameof(input.Base64Nuevo)} no puede ser vacio."); } }
public IActionResult Put(UpdateBannerInput input) { return(ExecuteAndHandleRequest(() => BannerRequestAggregate.UpdateBannerRequest.Execute(input))); }