mirror of
https://github.com/PepperDash/PepperDashCore.git
synced 2026-01-11 19:44:44 +00:00
fix: updated EvaluateFile method to resolve issues reading files on an appliance discovered when testing on a 3-series
This commit is contained in:
@@ -57,15 +57,15 @@ namespace PepperDash.Core.JsonToSimpl
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const ushort FilePathResolvedChange = 205;
|
public const ushort FilePathResolvedChange = 205;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
public const ushort MessageToSimpl = 206;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Reports the root directory
|
/// Reports the root directory
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const ushort RootDirectory = 207;
|
public const ushort RootDirectoryChange = 206;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reports the room ID
|
||||||
|
/// </summary>
|
||||||
|
public const ushort RoomIdChange = 207;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -63,9 +63,8 @@ namespace PepperDash.Core.JsonToSimpl
|
|||||||
{
|
{
|
||||||
OnBoolChange(false, 0, JsonToSimplConstants.JsonIsValidBoolChange);
|
OnBoolChange(false, 0, JsonToSimplConstants.JsonIsValidBoolChange);
|
||||||
|
|
||||||
|
var dirSeparator = Path.DirectorySeparatorChar;
|
||||||
var dirSeparator = Path.DirectorySeparatorChar; // win-'\', linux-'/'
|
var dirSeparatorAlt = Path.AltDirectorySeparatorChar;
|
||||||
var dirSeparatorAlt = Path.AltDirectorySeparatorChar; // win-'\', linux-'/'
|
|
||||||
|
|
||||||
var is4Series = CrestronEnvironment.ProgramCompatibility == eCrestronSeries.Series4;
|
var is4Series = CrestronEnvironment.ProgramCompatibility == eCrestronSeries.Series4;
|
||||||
var isServer = CrestronEnvironment.DevicePlatform == eDevicePlatform.Server;
|
var isServer = CrestronEnvironment.DevicePlatform == eDevicePlatform.Server;
|
||||||
@@ -78,16 +77,17 @@ namespace PepperDash.Core.JsonToSimpl
|
|||||||
|
|
||||||
|
|
||||||
var rootDirectory = Directory.GetApplicationRootDirectory();
|
var rootDirectory = Directory.GetApplicationRootDirectory();
|
||||||
OnStringChange(rootDirectory, 0, JsonToSimplConstants.RootDirectory);
|
OnStringChange(rootDirectory, 0, JsonToSimplConstants.RootDirectoryChange);
|
||||||
|
|
||||||
|
|
||||||
var splusPath = string.Empty;
|
var splusPath = string.Empty;
|
||||||
if (Regex.IsMatch(filepath, @"user", RegexOptions.IgnoreCase))
|
if (Regex.IsMatch(filepath, @"user", RegexOptions.IgnoreCase))
|
||||||
{
|
{
|
||||||
if (is4Series)
|
if (is4Series)
|
||||||
splusPath = Regex.Replace(filepath, "user", "user", RegexOptions.IgnoreCase);
|
splusPath = Regex.Replace(filepath, "user", "user", RegexOptions.IgnoreCase);
|
||||||
else if (isServer)
|
else if (isServer)
|
||||||
splusPath = Regex.Replace(filepath, "user", "User", RegexOptions.IgnoreCase);
|
splusPath = Regex.Replace(filepath, "user", "User", RegexOptions.IgnoreCase);
|
||||||
|
else
|
||||||
|
splusPath = filepath;
|
||||||
}
|
}
|
||||||
|
|
||||||
filepath = splusPath.Replace(dirSeparatorAlt, dirSeparator);
|
filepath = splusPath.Replace(dirSeparatorAlt, dirSeparator);
|
||||||
@@ -95,11 +95,11 @@ namespace PepperDash.Core.JsonToSimpl
|
|||||||
Filepath = string.Format("{1}{0}{2}", dirSeparator, rootDirectory,
|
Filepath = string.Format("{1}{0}{2}", dirSeparator, rootDirectory,
|
||||||
filepath.TrimStart(dirSeparator, dirSeparatorAlt));
|
filepath.TrimStart(dirSeparator, dirSeparatorAlt));
|
||||||
|
|
||||||
OnStringChange(string.Format("Attempting to evaluate {0}", Filepath), 0, JsonToSimplConstants.MessageToSimpl);
|
OnStringChange(string.Format("Attempting to evaluate {0}", Filepath), 0, JsonToSimplConstants.StringValueChange);
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(Filepath))
|
if (string.IsNullOrEmpty(Filepath))
|
||||||
{
|
{
|
||||||
OnStringChange(string.Format("Cannot evaluate file. JSON file path not set"), 0, JsonToSimplConstants.MessageToSimpl);
|
OnStringChange(string.Format("Cannot evaluate file. JSON file path not set"), 0, JsonToSimplConstants.StringValueChange);
|
||||||
CrestronConsole.PrintLine("Cannot evaluate file. JSON file path not set");
|
CrestronConsole.PrintLine("Cannot evaluate file. JSON file path not set");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -108,19 +108,27 @@ namespace PepperDash.Core.JsonToSimpl
|
|||||||
var fileDirectory = Path.GetDirectoryName(Filepath);
|
var fileDirectory = Path.GetDirectoryName(Filepath);
|
||||||
var fileName = Path.GetFileName(Filepath);
|
var fileName = Path.GetFileName(Filepath);
|
||||||
|
|
||||||
OnStringChange(string.Format("Checking '{0}' for '{1}'", fileDirectory, fileName), 0, JsonToSimplConstants.MessageToSimpl);
|
OnStringChange(string.Format("Checking '{0}' for '{1}'", fileDirectory, fileName), 0, JsonToSimplConstants.StringValueChange);
|
||||||
Debug.Console(1, "Checking '{0}' for '{1}'", fileDirectory, fileName);
|
Debug.Console(1, "Checking '{0}' for '{1}'", fileDirectory, fileName);
|
||||||
|
|
||||||
if (Directory.Exists(fileDirectory))
|
if (Directory.Exists(fileDirectory))
|
||||||
{
|
{
|
||||||
// get the directory info
|
// get the directory info
|
||||||
var directoryInfo = new DirectoryInfo(fileDirectory);
|
var directoryInfo = new DirectoryInfo(fileDirectory);
|
||||||
var actualFile = directoryInfo.GetFiles(fileName).FirstOrDefault();
|
|
||||||
//var actualFile = new DirectoryInfo(Filepath).GetFiles(fileName).FirstOrDefault();
|
// get the roomID
|
||||||
|
if (!string.IsNullOrEmpty(rootDirectory))
|
||||||
|
{
|
||||||
|
var roomId = directoryInfo.Name;
|
||||||
|
OnStringChange(roomId, 0, JsonToSimplConstants.RoomIdChange);
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the file to be read
|
||||||
|
var actualFile = directoryInfo.GetFiles(fileName).FirstOrDefault();
|
||||||
if (actualFile == null)
|
if (actualFile == null)
|
||||||
{
|
{
|
||||||
var msg = string.Format("JSON file not found: {0}", Filepath);
|
var msg = string.Format("JSON file not found: {0}", Filepath);
|
||||||
OnStringChange(msg, 0, JsonToSimplConstants.MessageToSimpl);
|
OnStringChange(msg, 0, JsonToSimplConstants.StringValueChange);
|
||||||
CrestronConsole.PrintLine(msg);
|
CrestronConsole.PrintLine(msg);
|
||||||
ErrorLog.Error(msg);
|
ErrorLog.Error(msg);
|
||||||
return;
|
return;
|
||||||
@@ -130,45 +138,45 @@ namespace PepperDash.Core.JsonToSimpl
|
|||||||
// \USER\PDT000-Template_Main_Config-Combined_DSP_v00.02.json
|
// \USER\PDT000-Template_Main_Config-Combined_DSP_v00.02.json
|
||||||
ActualFilePath = actualFile.FullName;
|
ActualFilePath = actualFile.FullName;
|
||||||
OnStringChange(ActualFilePath, 0, JsonToSimplConstants.ActualFilePathChange);
|
OnStringChange(ActualFilePath, 0, JsonToSimplConstants.ActualFilePathChange);
|
||||||
OnStringChange(string.Format("Actual JSON file is {0}", ActualFilePath), 0, JsonToSimplConstants.MessageToSimpl);
|
OnStringChange(string.Format("Actual JSON file is {0}", ActualFilePath), 0, JsonToSimplConstants.StringValueChange);
|
||||||
Debug.Console(1, "Actual JSON file is {0}", ActualFilePath);
|
Debug.Console(1, "Actual JSON file is {0}", ActualFilePath);
|
||||||
|
|
||||||
Filename = actualFile.Name;
|
Filename = actualFile.Name;
|
||||||
OnStringChange(Filename, 0, JsonToSimplConstants.FilenameResolvedChange);
|
OnStringChange(Filename, 0, JsonToSimplConstants.FilenameResolvedChange);
|
||||||
OnStringChange(string.Format("JSON Filename is {0}", Filename), 0, JsonToSimplConstants.MessageToSimpl);
|
OnStringChange(string.Format("JSON Filename is {0}", Filename), 0, JsonToSimplConstants.StringValueChange);
|
||||||
Debug.Console(1, "JSON Filename is {0}", Filename);
|
Debug.Console(1, "JSON Filename is {0}", Filename);
|
||||||
|
|
||||||
|
|
||||||
FilePathName = string.Format(@"{0}{1}", actualFile.DirectoryName, dirSeparator);
|
FilePathName = string.Format(@"{0}{1}", actualFile.DirectoryName, dirSeparator);
|
||||||
OnStringChange(FilePathName, 0, JsonToSimplConstants.FilePathResolvedChange);
|
OnStringChange(string.Format(@"{0}", actualFile.DirectoryName), 0, JsonToSimplConstants.FilePathResolvedChange);
|
||||||
OnStringChange(string.Format("JSON File Path is {0}", FilePathName), 0, JsonToSimplConstants.MessageToSimpl);
|
OnStringChange(string.Format(@"JSON File Path is {0}", actualFile.DirectoryName), 0, JsonToSimplConstants.StringValueChange);
|
||||||
Debug.Console(1, "JSON File Path is {0}", FilePathName);
|
Debug.Console(1, "JSON File Path is {0}", FilePathName);
|
||||||
|
|
||||||
var json = File.ReadToEnd(ActualFilePath, System.Text.Encoding.ASCII);
|
var json = File.ReadToEnd(ActualFilePath, System.Text.Encoding.ASCII);
|
||||||
|
|
||||||
JsonObject = JObject.Parse(json);
|
JsonObject = JObject.Parse(json);
|
||||||
foreach (var child in Children)
|
foreach (var child in Children)
|
||||||
child.ProcessAll();
|
child.ProcessAll();
|
||||||
|
|
||||||
OnBoolChange(true, 0, JsonToSimplConstants.JsonIsValidBoolChange);
|
OnBoolChange(true, 0, JsonToSimplConstants.JsonIsValidBoolChange);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OnStringChange(string.Format("'{0}' not found", fileDirectory), 0, JsonToSimplConstants.MessageToSimpl);
|
OnStringChange(string.Format("'{0}' not found", fileDirectory), 0, JsonToSimplConstants.StringValueChange);
|
||||||
Debug.Console(1, "'{0}' not found", fileDirectory);
|
Debug.Console(1, "'{0}' not found", fileDirectory);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
var msg = string.Format("EvaluateFile Exception: Message\r{0}", e.Message);
|
var msg = string.Format("EvaluateFile Exception: Message\r{0}", e.Message);
|
||||||
OnStringChange(msg, 0, JsonToSimplConstants.MessageToSimpl);
|
OnStringChange(msg, 0, JsonToSimplConstants.StringValueChange);
|
||||||
CrestronConsole.PrintLine(msg);
|
CrestronConsole.PrintLine(msg);
|
||||||
ErrorLog.Error(msg);
|
ErrorLog.Error(msg);
|
||||||
|
|
||||||
var stackTrace = string.Format("EvaluateFile: Stack Trace\r{0}", e.StackTrace);
|
var stackTrace = string.Format("EvaluateFile: Stack Trace\r{0}", e.StackTrace);
|
||||||
OnStringChange(stackTrace, 0, JsonToSimplConstants.MessageToSimpl);
|
OnStringChange(stackTrace, 0, JsonToSimplConstants.StringValueChange);
|
||||||
CrestronConsole.PrintLine(stackTrace);
|
CrestronConsole.PrintLine(stackTrace);
|
||||||
ErrorLog.Error(stackTrace);
|
ErrorLog.Error(stackTrace);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user