public void Execute(IGetAllFeatureTypesInfosRequests request, Action<IGetAllFeatureTypesInfosResponse> responseBoundary)
        {
            if (request == null)
                throw new ArgumentNullException("request", "Use case request cannot be null!");
            if (responseBoundary == null)
                throw new ArgumentNullException("responseBoundary", "Response handler cannot be null!");

            try
            {
                var layers = repository.GetAllLayersInfos();
                responseBoundary(layers.Any() ? new GetAllFeatureTypesInfosResponse(layers) : GetAllFeatureTypesInfosResponse.NULL);
            }
            catch (Exception ex)
            {
                throw new UseCaseExecutionException("An error occurred while trying to get Layer info!", ex);
            }
        }
        public void Execute(IGetAllFeatureTypesInfosRequests request, Action <IGetAllFeatureTypesInfosResponse> responseBoundary)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request", "Use case request cannot be null!");
            }
            if (responseBoundary == null)
            {
                throw new ArgumentNullException("responseBoundary", "Response handler cannot be null!");
            }

            try
            {
                var layers = repository.GetAllLayersInfos();
                responseBoundary(layers.Any() ? new GetAllFeatureTypesInfosResponse(layers) : GetAllFeatureTypesInfosResponse.NULL);
            }
            catch (Exception ex)
            {
                throw new UseCaseExecutionException("An error occurred while trying to get Layer info!", ex);
            }
        }