Информация о нашем зарегистрированном пользователе находится внутри проекта PBM, а наш класс поиска - внутри сети.
поэтому мы не можем получить доступ к классу утилит из сети
нам нужно будет записать информацию о пользователе во временное хранилище silverlight-
Это вступает в игру, когда я хочу отображать только те записи, которые введены пользователем.
Здесь, в этом коде, я могу сделать это и с помощью поиска:
// необходимо выполнить поиск пользователя, вошедшего в систему - идентификатор пользователя 1 жестко задан
pSearchQuery = pSearchQuery.Where(item => item.AddedBy == 1);
Как мне настроить хранилище в Silverlight? Обратите внимание, безопасность не является главной проблемой в этом приложении.
Вот код, как я отображаю пациентов. пользователь может выполнить поиск по имени или фамилии или полу. здесь я бы добавил фильтр, чтобы пользователь видел только своих пациентов.
namespace PBM.Web.Classes
{
общественный класс Поиск
{
public static IQueryable GetSearchQueryPatient (IQueryable pSearchQuery, Patient pPatient)
{
if (!string.IsNullOrEmpty(pPatient.FirstName))
{
pSearchQuery = pSearchQuery.Where(item => item.FirstName.Contains(pPatient.FirstName)) ;
}
if (!string.IsNullOrEmpty(pPatient.LastName))
{
pSearchQuery = pSearchQuery.Where(item => item.LastName.Contains(pPatient.LastName));
}
if (pPatient.Gender.HasValue && pPatient.Gender.Value > 0)
{
pSearchQuery = pSearchQuery.Where(item => item.Gender.Value == pPatient.Gender.Value);
}
// search by user logged in has to be done - need to write user loggedin to a silverlight storage area and compare here to Addedby which is what we call the user owner of the patient record. current set to 1.
pSearchQuery = pSearchQuery.Where(item => item.AddedBy == 1);
pSearchQuery = pSearchQuery.OrderBy(item => item.FirstName).ThenBy(item => item.LastName);
return pSearchQuery;