Feedback

Entity Parser for MVC and S#arp Architecture

Sprache: C#

Diese Controller Erweiterung liefert anhand einer per Request übergebenen ID eine S#arp Architecture Entity zurück. Die Entity wird nur dann neu gefetcht wenn die neue ID und die aktuelle ID nicht übereinstimmen. http://code.google.com/p/sharp-architecture/
/// <summary>
/// Returns selected PersistentObject if an actual instance is different
/// </summary>
/// <typeparam name="T">Type of entity</typeparam>
/// <param name="controller"></param>
/// <param name="key">request key</param>
/// <param name="actualInstance">entity instance</param>
/// <returns></returns>
public static T GetEntityFromRequest<T>(this Controller controller, string key, T actualInstance)
	where T : PersistentObject
{
	int entityId = 0;
	if ((controller.Request[key] != null) && (int.TryParse(controller.Request[key].ToString(), out entityId)))
		if ((actualInstance == null) || (actualInstance.ID != entityId))
		{
			T entity = new GenericDao<T>().Load(entityId);
			return entity; 
		}
	
	return actualInstance; 
}
/// <summary>
/// Returns selected PersistentObject if an actual instance is different
/// </summary>
/// <typeparam name="T">Type of entity</typeparam>
/// <param name="controller"></param>
/// <param name="key">request key</param>
/// <param name="actualInstance">entity instance</param>
/// <returns></returns>
public static T GetEntityFromRequest<T>(this Controller controller, string key, T actualInstance)
	where T : PersistentObject
{
	int entityId = 0;
	if ((controller.Request[key] != null) && (int.TryParse(controller.Request[key].ToString(), out entityId)))
		if ((actualInstance == null) || (actualInstance.ID != entityId))
		{
			T entity = new GenericDao<T>().Load(entityId);
			return entity; 
		}
	
	return actualInstance; 
}