/// <summary> /// Получить товар за идентификационним кодом. /// </summary> /// <param name="id">Полный идентификационный код товара.</param> /// <returns>Товар с соответствующим идентификационным кодом.</returns> public Article GetArticle(long id) { using (_ent = new SupermarketDataEntities()) { return _ent.Articles.FirstOrDefault(item => item.ID == id); } }
/// <summary> /// Поиск товаров по имени или идентификационному коду. /// </summary> /// <param name="name">Значение для поиска.</param> /// <returns>Список найденных товаров.</returns> public async Task<ObservableCollection<Article>> SearchAsync(string name) { using (_ent = new SupermarketDataEntities()) { List<Article> result = new List<Article>(); long parsedId; bool idNeeded = long.TryParse(name, out parsedId); IQueryable<Article> founded; if (idNeeded) { string id = parsedId.ToString(); founded = from d in _ent.Articles where d.ID.ToString().Contains(id) select d; result.AddRange(await founded.ToListAsync()); } string[] words = name.Split(' '); founded = from d in _ent.Articles where words.All(item => d.Name.Contains(item)) select d; result.AddRange(await founded.ToListAsync()); return new ObservableCollection<Article>(result); } }
/// <summary> /// Обеспечивает авторизацию. /// </summary> /// <param name="username">Имя пользователя.</param> /// <param name="password">Пароль пользователя.</param> /// <returns>Результат авторизации.</returns> private bool Authorize(string username, string password) { var hash = SHA1HashStringForUTF8String(password).ToUpper(); using (SupermarketDataEntities ent = new SupermarketDataEntities()) { var wanted = from d in ent.Users where d.Username == username && d.PasswordHash.ToUpper() == hash select d; try { var res = wanted.ToList(); return res.Count != 0; } catch { return false; } } }