|
using System;
using System.Collections.Generic;
using System.Data;
using SecuredLibrary.BusinessObjects;
using SecuredLibrary.Common;
using SecuredLibrary.Model.Interfaces;
namespace SecuredLibrary.Model
{
public class ExampleModel : IModel
{
private DataSet dataBase = new DataSet();
private string dbFilePath = "DB.xml";
#region IModel Members
/// <summary>
/// Gets secured object filtered by SecuredObject and UserId
/// </summary>
/// <param name="SecuredMethod"></param>
/// <param name="UserId"></param>
/// <returns></returns>
public SecuredObject GetSecuredObject(string SecuredMethod, long UserId)
{
RefreshDataBase();
DataTable securedObjectTable = dataBase.Tables[TextLabels.SecuredObjectTableName];
SecuredObject returnSecuredObject = null;
for (int i = 0; i < securedObjectTable.Rows.Count; i++)
{
DataRow tempRow = securedObjectTable.Rows[i];
string tempSecuredMehtod = tempRow[TextLabels.SecuredMethodColumnName].ToString();
long tempUserId = Int64.Parse(tempRow[TextLabels.UserIdColumnName].ToString());
if(String.Compare(tempSecuredMehtod, SecuredMethod, false) == 0 && tempUserId == UserId)
{
returnSecuredObject = new SecuredObject();
returnSecuredObject.Id = Int64.Parse(tempRow[TextLabels.IdColumnName].ToString());
returnSecuredObject.SecuredMethod = tempSecuredMehtod;
returnSecuredObject.UserId = tempUserId;
break;
}
}
return returnSecuredObject;
}
/// <summary>
/// Gets secured object list
/// </summary>
/// <returns></returns>
public IList<SecuredObject> GetSecuredObject()
{
RefreshDataBase();
DataTable securedObjectTable = dataBase.Tables[TextLabels.SecuredObjectTableName];
IList<SecuredObject> returnSecuredObjectList = new List<SecuredObject>();
for (int i = 0; i < securedObjectTable.Rows.Count; i++)
{
DataRow tempRow = securedObjectTable.Rows[i];
string tempSecuredMehtod = tempRow[TextLabels.SecuredMethodColumnName].ToString();
long tempUserId = Int64.Parse(tempRow[TextLabels.UserIdColumnName].ToString());
SecuredObject tempSecuredObject = new SecuredObject();
tempSecuredObject.Id = Int64.Parse(tempRow[TextLabels.IdColumnName].ToString());
tempSecuredObject.SecuredMethod = tempSecuredMehtod;
tempSecuredObject.UserId = tempUserId;
returnSecuredObjectList.Add(tempSecuredObject);
}
return returnSecuredObjectList;
}
/// <summary>
/// Inserts SecuredObject into DB
/// </summary>
/// <param name="SecuredObjectInstance"></param>
/// <returns>Id of inserted SecuredObject</returns>
public long InsertSecuredObject(ref SecuredObject SecuredObjectInstance)
{
RefreshDataBase();
long newId = GetMaxId(TextLabels.SecuredObjectTableName) + 1;
DataTable securedObjectTable = dataBase.Tables[TextLabels.SecuredObjectTableName];
DataRow newRow = securedObjectTable.NewRow();
newRow[TextLabels.SecuredMethodColumnName] = SecuredObjectInstance.SecuredMethod;
newRow[TextLabels.UserIdColumnName] = SecuredObjectInstance.UserId;
newRow[TextLabels.IdColumnName] = newId;
securedObjectTable.Rows.Add(newRow);
SaveDataBase();
return newId;
}
#endregion
#region Private helpers
private long GetMaxId(string TableName)
{
DataTable tempTable = dataBase.Tables[TableName];
long maxId = 0;
for(int i = 0; i < tempTable.Rows.Count; i++)
{
long tempValue = Int64.Parse(tempTable.Rows[i][TextLabels.IdColumnName].ToString());
if(tempValue > maxId)
{
maxId = tempValue;
}
}
return maxId;
}
private void SaveDataBase()
{
dataBase.WriteXml(dbFilePath);
}
private void RefreshDataBase()
{
dataBase.ReadXml(dbFilePath);
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.