mirror of
https://github.com/mgroves/MonodroidStockPortfolio.git
synced 2025-01-04 03:00:20 +00:00
148 lines
No EOL
4.4 KiB
C#
148 lines
No EOL
4.4 KiB
C#
#region " © Copyright 2005-07 to Marcos Meli - http://www.marcosmeli.com.ar"
|
|
|
|
// Errors, suggestions, contributions, send a mail to: marcos@filehelpers.com.
|
|
|
|
#endregion
|
|
|
|
using System;
|
|
using System.Collections;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
|
|
namespace FileHelpers
|
|
{
|
|
/// <summary>This is the class that handles the errors of the engines process.</summary>
|
|
/// <remarks>All the engines and DataStorages contains a ErrorManager.</remarks>
|
|
#if NET_2_0
|
|
[DebuggerDisplay("{ErrorsDescription()}. ErrorMode: {ErrorMode.ToString()}")]
|
|
#endif
|
|
public sealed class ErrorManager
|
|
{
|
|
/// <summary>Initializes a new instance of the <see cref="ErrorManager"/> class.</summary>
|
|
public ErrorManager()
|
|
{
|
|
}
|
|
|
|
/// <summary>Initializes a new instance of the <see cref="ErrorManager"/> class. with the specified <see cref="ErrorMode"/>.</summary>
|
|
/// <param name="mode">Indicates the error behavior of the class.</param>
|
|
public ErrorManager(ErrorMode mode)
|
|
{
|
|
mErrorMode = mode;
|
|
}
|
|
|
|
|
|
#if NET_2_0
|
|
private string ErrorsDescription()
|
|
{
|
|
if (ErrorCount == 1)
|
|
return ErrorCount.ToString() + " Error";
|
|
else if (ErrorCount == 0)
|
|
return "No Errors";
|
|
else
|
|
return ErrorCount.ToString() + " Errors";
|
|
}
|
|
|
|
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
|
#endif
|
|
ArrayList mErrorsArray = new ArrayList();
|
|
|
|
/// <summary>Is an array of <see cref="ErrorInfo"/> that contains the errors of the last operation in this class.</summary>
|
|
#if NET_2_0
|
|
[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
|
|
#endif
|
|
public ErrorInfo[] Errors
|
|
{
|
|
get { return (ErrorInfo[]) mErrorsArray.ToArray(typeof (ErrorInfo)); }
|
|
}
|
|
|
|
#if NET_2_0
|
|
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
|
#endif
|
|
private ErrorMode mErrorMode = ErrorMode.ThrowException;
|
|
|
|
|
|
/// <summary>Indicates the behavior of the <see cref="FileHelperEngine"/> when it found an error.</summary>
|
|
public ErrorMode ErrorMode
|
|
{
|
|
get { return mErrorMode; }
|
|
set { mErrorMode = value; }
|
|
}
|
|
|
|
|
|
/// <summary>Number of contained errors.</summary>
|
|
public int ErrorCount
|
|
{
|
|
get { return mErrorsArray.Count; }
|
|
}
|
|
|
|
/// <summary>Indicates if contains one or more errors.</summary>
|
|
public bool HasErrors
|
|
{
|
|
get { return mErrorsArray.Count > 0; }
|
|
}
|
|
|
|
/// <summary>Clears the error collection.</summary>
|
|
public void ClearErrors()
|
|
{
|
|
mErrorsArray.Clear();
|
|
}
|
|
|
|
/// <summary>Add the specified ErrorInfo to the contained collection.</summary>
|
|
/// <param name="error"></param>
|
|
internal void AddError(ErrorInfo error)
|
|
{
|
|
mErrorsArray.Add(error);
|
|
}
|
|
|
|
/// <summary>Add the specified ErrorInfo to the contained collection.</summary>
|
|
internal void AddErrors(ErrorManager errors)
|
|
{
|
|
mErrorsArray.AddRange(errors.mErrorsArray);
|
|
}
|
|
|
|
// public void ProcessError(Exception ex, string line)
|
|
// {
|
|
// }
|
|
|
|
|
|
/// <summary>Saves the contained errors to the specified file.</summary>
|
|
/// <param name="fileName">The file that contains the errors.</param>
|
|
public void SaveErrors(string fileName)
|
|
{
|
|
string header;
|
|
if (ErrorCount > 0)
|
|
header = "FileHelpers - Errors Saved ";
|
|
else
|
|
header = "FileHelpers - NO Errors Found ";
|
|
|
|
header += "at " + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString();
|
|
header += StringHelper.NewLine + "LineNumber | LineString |ErrorDescription";
|
|
|
|
SaveErrors(fileName, header);
|
|
}
|
|
|
|
/// <summary>Saves the contained errors to the specified file.</summary>
|
|
/// <param name="fileName">The file that contains the errors.</param>
|
|
/// <param name="header">The header line of the errors file.</param>
|
|
public void SaveErrors(string fileName, string header)
|
|
{
|
|
FileHelperEngine engine = new FileHelperEngine(typeof (ErrorInfo));
|
|
|
|
if (header.IndexOf(StringHelper.NewLine) == header.LastIndexOf(StringHelper.NewLine))
|
|
header += StringHelper.NewLine;
|
|
|
|
engine.HeaderText = header;
|
|
engine.WriteFile(fileName, Errors);
|
|
|
|
}
|
|
|
|
/// <summary>Load errors from a file.</summary>
|
|
/// <param name="fileName">The file that contains the errors.</param>
|
|
public static ErrorInfo[] LoadErrors(string fileName)
|
|
{
|
|
FileHelperEngine engine = new FileHelperEngine(typeof (ErrorInfo));
|
|
return (ErrorInfo[]) engine.ReadFile(fileName);
|
|
}
|
|
|
|
}
|
|
} |