63 lines
2.6 KiB
C#
63 lines
2.6 KiB
C#
using Csla;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Xml;
|
|
using VEPROMS.CSLA.Library;
|
|
|
|
namespace Volian.Controls.Library
|
|
{
|
|
public static class FormatUtility
|
|
{
|
|
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
|
|
//C2023-017: Remove any formats that are not applicable to the current plant
|
|
public static IList<FormatInfo> GetFilteredFormatList(SortedBindingList<FormatInfo> RawList)
|
|
{
|
|
List<FormatInfo> result = new List<FormatInfo>();
|
|
|
|
try
|
|
{
|
|
//Get the top folder configuration XML of the PROMS treeview and load
|
|
//the Formats node to retrieve the available formats for this plant
|
|
FolderInfo fi = FolderInfo.GetTop();
|
|
System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
|
|
xDoc.LoadXml(fi.Config);
|
|
XmlNodeList fList = xDoc.GetElementsByTagName("Formats");
|
|
|
|
//We need to check to see if the current database has been updated with the necessary changes
|
|
//to the folder configuration value. If so then build the list of available to be returned
|
|
//to the calling code
|
|
// added check for a list count of zero. Was getting null error from data gotten from customer
|
|
if (fList == null || fList.Count == 0)
|
|
{
|
|
_MyLog.InfoFormat("Filtered format list not available: Database update needed for config value of top folder record");
|
|
return RawList;
|
|
}
|
|
else
|
|
{
|
|
//Create a string array that we can use to filter the raw list and add the format to the return value
|
|
string[] availableFormats = fList[0].Attributes["Active"].Value.Split(',');
|
|
foreach (FormatInfo item in RawList)
|
|
{
|
|
if (Array.IndexOf(availableFormats, item.ApplicablePlant.ToString()) > -1)
|
|
{
|
|
result.Add(item);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//On any exception simply return the original list that was passed in
|
|
_MyLog.ErrorFormat("Error loading filtered format list - PopulateFormatList(): {0}", ex.Message);
|
|
return RawList;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|