/// <summary> /// /// </summary> /// <param name="logonId"></param> /// <param name="collectionRequest"></param> /// <param name="criteria"></param> /// <returns></returns> public EarnerSearchReturnValue EarnerSearch(Guid logonId, CollectionRequest collectionRequest, EarnerSearchCriteria criteria) { EarnerSearchReturnValue returnValue = new EarnerSearchReturnValue(); try { // Get the logged on user from the current logons and add their // ApplicationSettings the list of concurrent sessions. Host.LoadLoggedOnUser(logonId); try { switch (UserInformation.Instance.UserType) { case DataConstants.UserType.Staff: case DataConstants.UserType.Client: case DataConstants.UserType.ThirdParty: // Can do everything break; default: throw new Exception("Access denied"); } // Create a data list creator for a list of matters DataListCreator<EarnerSearchItem> dataListCreator = new DataListCreator<EarnerSearchItem>(); // Declare an inline event (annonymous delegate) to read the // dataset if it is required dataListCreator.ReadDataSet += delegate(object sender, ReadDataSetEventArgs e) { // TODO: Does not use criteria: FeeReference, EarnerId, UFNDate, UFNNumber e.DataSet = SrvEarnerLookup.GetEarners(criteria.IncludeArchived, criteria.MultiOnly); DataTable dt = Functions.SortDataTable(e.DataSet.Tables[0], "PersonSurname"); e.DataSet.Tables.Remove(e.DataSet.Tables[0]); e.DataSet.Tables.Add(dt); }; // Create the data list returnValue.Earners = dataListCreator.Create(logonId, // Give the query a name so it can be cached "EarnerSearch", // Tell it the query criteria used so if the cache is accessed // again it knows if it is the same query criteria.ToString(), collectionRequest, // Import mappings to map the dataset row fields to the data // list entity properties new ImportMapping[] { new ImportMapping("Id", "MemberId"), new ImportMapping("Reference", "feeRef"), new ImportMapping("Title", "PersonTitle"), new ImportMapping("Name","PersonName"), new ImportMapping("SurName","PersonSurname") } ); } finally { // Remove the logged on user's ApplicationSettings from the // list of concurrent sessions Host.UnloadLoggedOnUser(); } } catch (System.Data.SqlClient.SqlException) { returnValue.Success = false; returnValue.Message = Functions.SQLErrorMessage; } catch (Exception ex) { returnValue.Success = false; returnValue.Message = ex.Message; } return returnValue; }
/// <summary> /// /// </summary> /// <param name="logonId"></param> /// <param name="collectionRequest"></param> /// <param name="criteria"></param> /// <returns></returns> public EarnerSearchReturnValue EarnerSearch(Guid logonId, CollectionRequest collectionRequest, EarnerSearchCriteria criteria) { EarnerSearchReturnValue returnValue = new EarnerSearchReturnValue(); try { // Get the logged on user from the current logons and add their // ApplicationSettings the list of concurrent sessions. Host.LoadLoggedOnUser(logonId); try { switch (UserInformation.Instance.UserType) { case DataConstants.UserType.Staff: case DataConstants.UserType.Client: case DataConstants.UserType.ThirdParty: // Can do everything break; default: throw new Exception("Access denied"); } // Create a data list creator for a list of matters DataListCreator <EarnerSearchItem> dataListCreator = new DataListCreator <EarnerSearchItem>(); // Declare an inline event (annonymous delegate) to read the // dataset if it is required dataListCreator.ReadDataSet += delegate(object sender, ReadDataSetEventArgs e) { // TODO: Does not use criteria: FeeReference, EarnerId, UFNDate, UFNNumber e.DataSet = SrvEarnerLookup.GetEarners(criteria.IncludeArchived, criteria.MultiOnly); DataTable dt = Functions.SortDataTable(e.DataSet.Tables[0], "PersonSurname"); e.DataSet.Tables.Remove(e.DataSet.Tables[0]); e.DataSet.Tables.Add(dt); }; // Create the data list returnValue.Earners = dataListCreator.Create(logonId, // Give the query a name so it can be cached "EarnerSearch", // Tell it the query criteria used so if the cache is accessed // again it knows if it is the same query criteria.ToString(), collectionRequest, // Import mappings to map the dataset row fields to the data // list entity properties new ImportMapping[] { new ImportMapping("Id", "MemberId"), new ImportMapping("Reference", "feeRef"), new ImportMapping("Title", "PersonTitle"), new ImportMapping("Name", "PersonName"), new ImportMapping("SurName", "PersonSurname") } ); } finally { // Remove the logged on user's ApplicationSettings from the // list of concurrent sessions Host.UnloadLoggedOnUser(); } } catch (System.Data.SqlClient.SqlException) { returnValue.Success = false; returnValue.Message = Functions.SQLErrorMessage; } catch (Exception ex) { returnValue.Success = false; returnValue.Message = ex.Message; } return(returnValue); }