Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,61 @@

namespace Microsoft.VisualStudio.SolutionPersistence.Model;

/// <summary>
/// Represents an argument exception inside the solution.
/// </summary>
public class SolutionArgumentException : ArgumentException
{
public readonly SolutionErrorType Type;

/// <summary>
/// Initializes a new instance of the <see cref="SolutionArgumentException"/> class.
/// </summary>
/// <param name="message">Message to be shown with the exception.</param>
/// <param name="type">Reason for the exception.</param>
public SolutionArgumentException(string? message, SolutionErrorType type)
: base(message)
{
this.Type = type;
}

/// <summary>
/// Initializes a new instance of the <see cref="SolutionArgumentException"/> class.
/// </summary>
/// <param name="message">Message to be shown with the exception.</param>
/// <param name="innerException">Exception that triggered this exception.</param>
/// <param name="type">Reason for the exception.</param>
public SolutionArgumentException(string? message, Exception? innerException, SolutionErrorType type)
: base(message, innerException)
{
this.Type = type;
}

/// <summary>
/// Initializes a new instance of the <see cref="SolutionArgumentException"/> class.
/// </summary>
/// <param name="message">Message to be shown with the exception.</param>
/// <param name="paramName">Name of parameter that triggered this exception.</param>
/// <param name="type">Reason for the exception.</param>
public SolutionArgumentException(string? message, string? paramName, SolutionErrorType type)
: base(message, paramName)
{
this.Type = type;
}

/// <summary>
/// Initializes a new instance of the <see cref="SolutionArgumentException"/> class.
/// </summary>
/// <param name="message">Message to be shown with the exception.</param>
/// <param name="paramName">Name of parameter that triggered this exception.</param>
/// <param name="innerException">Exception that triggered this exception.</param>
/// <param name="type">Reason for the exception.</param>
public SolutionArgumentException(string? message, string? paramName, Exception? innerException, SolutionErrorType type)
: base(message, paramName, innerException)
{
this.Type = type;
}

/// <summary>
/// Gets reason why the exception was raised.
/// </summary>
public SolutionErrorType Type { get; init; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,123 @@ namespace Microsoft.VisualStudio.SolutionPersistence.Model;
/// </summary>
public enum SolutionErrorType
{
/// <summary>
/// The cause of the error is not specified.
/// </summary>
Undefined,

/// <summary>
/// There was an error while trying to move a folder to a child folder.
/// </summary>
CannotMoveFolderToChildFolder,

/// <summary>
/// The default project type was duplicated.
/// </summary>
DuplicateDefaultProjectType,

/// <summary>
/// File has two extensions.
/// </summary>
DuplicateExtension,

/// <summary>
/// Item already exists in the solution.
/// </summary>
DuplicateItemRef,

/// <summary>
/// Name of item is duplicate.
/// </summary>
DuplicateName,

/// <summary>
/// A project with the same name already exists.
/// </summary>
DuplicateProjectName,

/// <summary>
/// A project with the same path already exists.
/// </summary>
DuplicateProjectPath,

/// <summary>
/// This project type is already specified.
/// </summary>
DuplicateProjectTypeId,

/// <summary>
/// Invalid syntax for solution configuration.
/// </summary>
InvalidConfiguration,

/// <summary>
/// Invalid encoding for solution.
/// </summary>
InvalidEncoding,

/// <summary>
/// Folder path doesn't follow correct format.
/// </summary>
InvalidFolderPath,

/// <summary>
/// Folder was not found.
/// </summary>
InvalidFolderReference,

/// <summary>
/// Item is not valid.
/// </summary>
InvalidItemRef,

/// <summary>
/// Found a circular dependency.
/// </summary>
InvalidLoop,

/// <summary>
/// Model does not belong to this solution.
/// </summary>
InvalidModelItem,

/// <summary>
/// Name of item is not valid.
/// </summary>
InvalidName,

/// <summary>
/// Project was not found.
/// </summary>
InvalidProjectReference,

/// <summary>
/// Project type was not found.
/// </summary>
InvalidProjectTypeReference,

/// <summary>
/// File version is not supported.
/// </summary>
InvalidVersion,

/// <summary>
/// Empty value for project attribute.
/// </summary>
MissingProjectValue,

/// <summary>
/// The file is not a solution file.
/// </summary>
NotSolution,

/// <summary>
/// This veersion is not supported.
/// </summary>
UnsupportedVersion,
InvalidXmlDecoratorElementName

/// <summary>
/// Invalid decorator element name.
/// </summary>
InvalidXmlDecoratorElementName,
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,33 @@ public SolutionException()
{
}

/// <summary>
/// Initializes a new instance of the <see cref="SolutionException"/> class.
/// </summary>
/// <param name="message">The error message that explains the reason for the exception.</param>
public SolutionException(string message)
: base(message)
{
this.ErrorType = SolutionErrorType.Undefined;
}

/// <summary>
/// Initializes a new instance of the <see cref="SolutionException"/> class.
/// </summary>
/// <param name="message">The error message that explains the reason for the exception.</param>
/// <param name="inner">The exception that is the cause of the current exception.</param>
public SolutionException(string message, Exception inner)
: base(message, inner)
{
this.ErrorType = SolutionErrorType.Undefined;
}

/// <summary>
/// Initializes a new instance of the <see cref="SolutionException"/> class.
/// </summary>
/// <param name="message">The error message that explains the reason for the exception.</param>
/// <param name="errorType">The type of error associated to this exception.</param>
public SolutionException(string message, SolutionErrorType errorType = SolutionErrorType.Undefined)
public SolutionException(string message, SolutionErrorType errorType)
: base(message)
{
this.ErrorType = errorType;
Expand All @@ -36,7 +57,7 @@ public SolutionException(string message, SolutionErrorType errorType = SolutionE
/// <param name="message">The error message that explains the reason for the exception.</param>
/// <param name="inner">The exception that is the cause of the current exception.</param>
/// <param name="errorType">The type of error associated to this exception.</param>
public SolutionException(string message, Exception inner, SolutionErrorType errorType = SolutionErrorType.Undefined)
public SolutionException(string message, Exception inner, SolutionErrorType errorType)
: base(message, inner)
{
this.ErrorType = errorType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
#nullable enable
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.Type -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType?
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.CannotMoveFolderToChildFolder = 0 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.DuplicateDefaultProjectType = 1 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.DuplicateExtension = 2 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.DuplicateItemRef = 3 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.DUplicateName = 4 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.DuplicateProjectName = 5 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.DuplicateProjectPath = 6 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.DuplicateProjectTypeId = 7 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidConfiguration = 8 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidEncoding = 9 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidFolderPath = 10 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidFolderReference = 11 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidItemRef = 12 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidLoop = 13 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidModelItem = 14 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidName = 15 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidProjectReference = 16 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidProjectType = 17 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidProjectTypeReference = 18 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidScope = 19 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.InvalidVersion = 20 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.MissingDisplayName = 21 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.MissingPath = 22 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.MissingProjectId = 23 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.MissingProjectValue = 24 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.MissingSectionName = 25 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.NotSolution = 26 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.SyntaxError = 27 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType.UnsupportedVersion = 28 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentExceptionType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.SolutionArgumentException(string? message, Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType type) -> void
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.SolutionArgumentException(string? message, string? paramName, Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType type) -> void
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.SolutionArgumentException(string? message, string? paramName, System.Exception? innerException, Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType type) -> void
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.SolutionArgumentException(string? message, System.Exception? innerException, Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType type) -> void
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.Type.get -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.Type.init -> void
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.CannotMoveFolderToChildFolder = 1 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateDefaultProjectType = 2 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateExtension = 3 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateItemRef = 4 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateName = 5 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateProjectName = 6 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateProjectPath = 7 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateProjectTypeId = 8 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidConfiguration = 9 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidEncoding = 10 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidFolderPath = 11 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidFolderReference = 12 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidItemRef = 13 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidLoop = 14 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidModelItem = 15 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidName = 16 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidProjectReference = 17 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidProjectTypeReference = 18 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidVersion = 19 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidXmlDecoratorElementName = 23 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.MissingProjectValue = 20 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.NotSolution = 21 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.Undefined = 0 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.UnsupportedVersion = 22 -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.ErrorType.get -> Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType?
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.ErrorType.init -> void
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.SolutionException(string! message, Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType errorType = Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.Undefined) -> void
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.SolutionException(string! message, System.Exception! inner, Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType errorType = Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.Undefined) -> void
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.SolutionException(string! message, Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType errorType) -> void
Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.SolutionException(string! message, System.Exception! inner, Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType errorType) -> void
Loading