public PopupResponse Execute(UpdatePopupInput input)
        {
            var popupResponse = new PopupResponse();

            try
            {
                CheckInputValidity(input);

                Log.Information("Actualizando Popup por Id: [{Id}] con nuevo nombre: [{NewTitle}]...", input.Id, input.NombreNuevo);

                var popupToUpdate = Repository.SingleOrDefault(popup => popup.Id == input.Id);
                if (popupToUpdate == null)
                {
                    var exception = new Exception($"No se pudo encontrar el popup con el id: [{input.Id}].");
                    Log.Error(exception, EXCEPTION_MESSAGE_TEMPLATE, exception.Message);
                    HandleErrors(popupResponse, exception, 404);
                    return(popupResponse);
                }

                popupToUpdate.Nombre = input.NombreNuevo;
                popupToUpdate.Base64 = input.Base64Nuevo;

                var updatedPopup = Repository.Update(popupToUpdate);
                popupResponse.Popup      = updatedPopup;
                popupResponse.StatusCode = 200;

                Log.Information("Actualizado con exito el popup con Id: [{Id}] con nuevo nombre [{NewTitle}].", input.Id, input.NombreNuevo);
            }
            catch (Exception exception)
            {
                Log.Error(exception, EXCEPTION_MESSAGE_TEMPLATE, exception.Message);
                HandleErrors(popupResponse, exception);
            }
            return(popupResponse);
        }
 private void CheckInputValidity(UpdatePopupInput 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(UpdatePopupInput input)
 {
     return(ExecuteAndHandleRequest(() => PopupRequestAggregate.UpdatePopupRequest.Execute(input)));
 }