init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
101
Kreta.DataAccessManual/Util/DictionaryItemCacheUtil.cs
Normal file
101
Kreta.DataAccessManual/Util/DictionaryItemCacheUtil.cs
Normal file
|
@ -0,0 +1,101 @@
|
|||
using System;
|
||||
using System.Data;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Util;
|
||||
|
||||
namespace Kreta.DataAccessManual.Util
|
||||
{
|
||||
public sealed class DictionaryItemCacheUtil
|
||||
{
|
||||
private const string DictionaryNamePostfix = "_DNAME";
|
||||
private const string SeparatorString = ",;";
|
||||
|
||||
/// <summary>
|
||||
/// Létrehoz új oszlopokat processedTable-ben {ColumnName}_DNAME névvel(ha még ilyen nevű oszlopok nem léteznek).
|
||||
/// Kitölti a DictionaryCache-ből a columnNamesString értéke alapján {ColumnName}_DNAME értékét.
|
||||
/// Ha már létezik a {ColumnName}_DNAME oszlop, akkor felülírja az oszlop tartalmát.
|
||||
/// </summary>
|
||||
/// <param name="processedTable"></param>
|
||||
/// <param name="columnNamesString"></param>
|
||||
public static void TableColumnFromDictionaryCache(DataTable processedTable, string columnNamesString)
|
||||
{
|
||||
#region Argumentnull-ellenőrzés
|
||||
|
||||
if (processedTable == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(processedTable));
|
||||
}
|
||||
|
||||
if (columnNamesString == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(columnNamesString));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Oszlopnevek kinyerése columnNamesString argumentumból
|
||||
|
||||
// oszlopnevek szeparálása
|
||||
var separator = SeparatorString.ToCharArray();
|
||||
var columnNames = columnNamesString.Split(separator);
|
||||
var columnCount = columnNames.Length;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Egzisztencia-ellenőrzés
|
||||
|
||||
for (var i = 0; i < columnCount; i++)
|
||||
{
|
||||
var columnName = columnNames[i];
|
||||
if (processedTable.Columns.Contains(columnName) == false)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(columnNamesString), columnNamesString, @"The columnNamesString parameter contains columnName that not exists in the specified table!");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Oszlopok hozzáadása
|
||||
|
||||
for (var i = 0; i < columnCount; i++)
|
||||
{
|
||||
var newColumnName = columnNames[i] + DictionaryNamePostfix;
|
||||
if (processedTable.Columns[newColumnName] == null)
|
||||
{
|
||||
processedTable.Columns.Add(newColumnName);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Szövegek beállítása a cache-selt szótárból (nyelvesen)
|
||||
|
||||
// DNAME beállítás a cache-ből
|
||||
foreach (DataRow dataRow in processedTable.Rows)
|
||||
{
|
||||
for (var i = 0; i < columnCount; i++)
|
||||
{
|
||||
var rowHasValue = true;
|
||||
|
||||
var newColumnName = columnNames[i] + DictionaryNamePostfix;
|
||||
if (dataRow[columnNames[i]] == DBNull.Value || string.IsNullOrWhiteSpace(dataRow[columnNames[i]].ToString()))
|
||||
{
|
||||
rowHasValue = false;
|
||||
}
|
||||
|
||||
if (rowHasValue)
|
||||
{
|
||||
var strActCache = Convert.ToInt32(dataRow[columnNames[i]]).GetItemNameFromCache(UserContext.Instance.SelectedTanevId);
|
||||
dataRow[newColumnName] = strActCache;
|
||||
}
|
||||
else
|
||||
{
|
||||
dataRow[newColumnName] = string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue