134 lines
3.8 KiB
C#
134 lines
3.8 KiB
C#
using System;
|
|
using System.Xml.Linq;
|
|
|
|
namespace DataFileAnalyzer
|
|
{
|
|
/// <summary>
|
|
/// An error or a warning associated to a DataFile
|
|
/// </summary>
|
|
public class DataFileError
|
|
{
|
|
/// <summary>
|
|
/// The error/warning codes
|
|
/// </summary>
|
|
public enum Codes
|
|
{
|
|
Generic = 0,
|
|
BasicUpdate,
|
|
NeedDependencies,
|
|
ErrorComputingDependencies,
|
|
WarningComputingDependencies,
|
|
UnresolvedDependencies,
|
|
MissingFile,
|
|
NotInPerforce,
|
|
Orphan,
|
|
}
|
|
|
|
/// <summary>
|
|
/// The error code
|
|
/// </summary>
|
|
public Codes Code { get; set; }
|
|
|
|
/// <summary>
|
|
/// The error message
|
|
/// </summary>
|
|
public string Message { get; set; }
|
|
|
|
/// <summary>
|
|
/// Constructor
|
|
/// </summary>
|
|
public DataFileError(string _message)
|
|
{
|
|
Code = Codes.Generic;
|
|
Message = _message;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Constructor
|
|
/// </summary>
|
|
public DataFileError(Codes _code)
|
|
{
|
|
Code = _code;
|
|
Message = null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Constructor
|
|
/// </summary>
|
|
public DataFileError(Codes _code, string _message)
|
|
{
|
|
Code = _code;
|
|
Message = _message;
|
|
}
|
|
|
|
/// <summary>
|
|
/// String conversion
|
|
/// </summary>
|
|
public override string ToString()
|
|
{
|
|
if (string.IsNullOrEmpty(Message))
|
|
return GetGenericMessage(Code);
|
|
return Message;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Save the DataFileError to _element
|
|
/// </summary>
|
|
/// <returns>true if no error</returns>
|
|
public bool Save(XElement _element)
|
|
{
|
|
_element.SetAttributeValue("Code", (int)Code);
|
|
_element.SetAttributeValue("Message", Message);
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Load the DataFileError from _element
|
|
/// </summary>
|
|
/// <returns>true if no error</returns>
|
|
public bool Load(XElement _element)
|
|
{
|
|
int codeInt;
|
|
XAttribute attribute = _element.Attribute("Code");
|
|
if (attribute != null && int.TryParse(attribute.Value, out codeInt))
|
|
Code = (Codes)codeInt;
|
|
else
|
|
return false;
|
|
|
|
attribute = _element.Attribute("Message");
|
|
if (attribute != null)
|
|
Message = attribute.Value;
|
|
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Convert code to a string
|
|
/// </summary>
|
|
public static string GetGenericMessage(Codes _code)
|
|
{
|
|
switch (_code)
|
|
{
|
|
case Codes.Generic:
|
|
return "Error.";
|
|
case Codes.BasicUpdate:
|
|
return "An error occurred while checking the file.";
|
|
case Codes.NeedDependencies:
|
|
return "Dependencies need to be recomputed.";
|
|
case Codes.ErrorComputingDependencies:
|
|
return "An error occurred when computing dependencies.";
|
|
case Codes.WarningComputingDependencies:
|
|
return "A warning was raised when computing dependencies.";
|
|
case Codes.UnresolvedDependencies:
|
|
return "File has unresolved dependencies.";
|
|
case Codes.MissingFile:
|
|
return "File is missing.";
|
|
case Codes.NotInPerforce:
|
|
return "File is not on Perforce";
|
|
case Codes.Orphan:
|
|
return "File is orphan";
|
|
}
|
|
return "Error.";
|
|
}
|
|
}
|
|
}
|