diff --git a/src/Fdc3.AppDirectory/AppDirectoryException.cs b/src/Fdc3.AppDirectory/AppDirectoryException.cs new file mode 100644 index 0000000..e3435c1 --- /dev/null +++ b/src/Fdc3.AppDirectory/AppDirectoryException.cs @@ -0,0 +1,30 @@ +/* + * Morgan Stanley makes this available to you under the Apache License, + * Version 2.0 (the "License"). You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0. + * + * See the NOTICE file distributed with this work for additional information + * regarding copyright ownership. Unless required by applicable law or agreed + * to in writing, software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +using System; +using System.Runtime.Serialization; + +namespace MorganStanley.Fdc3.AppDirectory +{ + /// + /// Base class for exceptions thrown by implementations + /// + public class AppDirectoryException : Exception + { + public AppDirectoryException() { } + protected AppDirectoryException(SerializationInfo info, StreamingContext context) : base(info, context) { } + public AppDirectoryException(string message) : base(message) { } + public AppDirectoryException(string message, Exception innerException) : base(message, innerException) { } + } +} diff --git a/src/Fdc3.AppDirectory/AppNotFoundException.cs b/src/Fdc3.AppDirectory/AppNotFoundException.cs new file mode 100644 index 0000000..bb6ead2 --- /dev/null +++ b/src/Fdc3.AppDirectory/AppNotFoundException.cs @@ -0,0 +1,31 @@ +/* + * Morgan Stanley makes this available to you under the Apache License, + * Version 2.0 (the "License"). You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0. + * + * See the NOTICE file distributed with this work for additional information + * regarding copyright ownership. Unless required by applicable law or agreed + * to in writing, software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +using System.Runtime.Serialization; + +namespace MorganStanley.Fdc3.AppDirectory +{ + /// + /// The exception that is thrown by when the app is not found. + /// + public class AppNotFoundException : AppDirectoryException + { + public AppNotFoundException(string appId) : base($"The app with id '{appId}' was not found in the App Directory") + { + } + + public AppNotFoundException() : base("The app was not found in the App Directory") { } + protected AppNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context) { } + } +} diff --git a/src/Fdc3.AppDirectory/IAppDirectory.cs b/src/Fdc3.AppDirectory/IAppDirectory.cs index b0f8e06..391ac63 100644 --- a/src/Fdc3.AppDirectory/IAppDirectory.cs +++ b/src/Fdc3.AppDirectory/IAppDirectory.cs @@ -33,6 +33,7 @@ public interface IAppDirectory /// /// Application identifier /// The application - Task GetApp(string appId); + /// The app was not found + Task GetApp(string appId); } } diff --git a/src/Tests/MorganStanley.Fdc3.AppDirectory.Tests/MorganStanley.Fdc3.AppDirectory.Tests.csproj b/src/Tests/MorganStanley.Fdc3.AppDirectory.Tests/MorganStanley.Fdc3.AppDirectory.Tests.csproj index 993b39d..3ddbcb8 100644 --- a/src/Tests/MorganStanley.Fdc3.AppDirectory.Tests/MorganStanley.Fdc3.AppDirectory.Tests.csproj +++ b/src/Tests/MorganStanley.Fdc3.AppDirectory.Tests/MorganStanley.Fdc3.AppDirectory.Tests.csproj @@ -1,4 +1,4 @@ - + net6.0 diff --git a/src/Tests/MorganStanley.Fdc3.AppDirectory.Tests/Usings.cs b/src/Tests/MorganStanley.Fdc3.AppDirectory.Tests/Usings.cs index 89c3803..b1feab6 100644 --- a/src/Tests/MorganStanley.Fdc3.AppDirectory.Tests/Usings.cs +++ b/src/Tests/MorganStanley.Fdc3.AppDirectory.Tests/Usings.cs @@ -11,4 +11,4 @@ * or implied. See the License for the specific language governing permissions * and limitations under the License. */ -global using Xunit; \ No newline at end of file +global using Xunit;