У меня есть наблюдаемая коллекция предложений, структура классов ниже.Сравнить элементы с другими товарами в списке
public class Bids
{
public DateTime StartDateTimeLocal { get; set; }
public DateTime EndDateTimeLocal { get; set; }
public decimal Bid5 { get; set; }
public decimal Price5 { get; set; }
public decimal Bid4 { get; set; }
public decimal Price4 { get; set; }
public decimal Bid3 { get; set; }
public decimal Price3 { get; set; }
public decimal Bid2 { get; set; }
public decimal Price2 { get; set; }
public decimal Bid1 { get; set; }
public decimal Price1 { get; set; }
}
У меня есть наблюдаемые коллекции
public ObservableCollection<Bid> Bids {get; set;}
коллекция товара выглядит, как показано ниже,
StartDateTimeLocal EndDateTimeLocal Bid5 Price5 Bid4 Price4 Bid3 Price3 Bid2 Price2 Bid1 Price1 2014-02-14 23:00 2014-02-14 23:30 0 0 0 0 0 0 50 10 100 100 2014-02-14 23:30 2014-02-15 00:00 0 0 0 0 0 0 10 300 200 10 2014-02-15 00:00 2014-02-15 00:30 0 0 0 0 0 0 100 30 0 10 2014-02-15 03:00 2014-02-15 01:00 0 0 0 0 0 0 30 100 0 0
Мне нужно проверить данные в наблюдаемой коллекции действует в соответствии с правилами .. .
- Ставка 2 должна иметь только значение, если ставка 1 имеет значение. Таким образом, если нет ставки 1, то ненулевое значение в ставке 2 является недопустимым. Аналогично, значение в bid1, bid2, bid3 является штрафным, но если bid4 не имеет значения, значение в bid5 недействительно.
- Ставки предложения должны быть постоянными или увеличиваться по мере продвижения вверх. Таким образом, цена ставки 2 должна быть такой же или больше, чем цена предложения 1.
В приведенном выше примере, - 3-й & 4 ряда неверен, так как Bid1 не имеет значения, но Bid2 делает.
- 2-я строка правильная, так как Bid1 имеет значение и, следовательно, Bid2 , имеющее значение в порядке, цена Bid2> Bid1. Пока строка 1 является
некорректна, так как Цена Bid 2 is < Цена Ставки 1
Может кто-нибудь, пожалуйста, посоветуйте подход для выполнения этой проверки.
LINQ означает Language Integrated Query. Он не может выполнять никаких валидаций для вас. Если вы предоставите более подробную информацию, есть варианты. Проверяете ли вы при создании объектов, пытаетесь ли вы проверить в пользовательском интерфейсе, пытаетесь ли вы проверять при вставке строк базы данных и т. Д.? –
Объект Ставки привязан к datagrid, я выполняю эти проверки нажатием кнопки. Объект уже существует и значения находятся в объекте. Если проверки не удались, я буду сообщать об этом пользователю, если нет, сохраните его в базе данных. –
Вы пытались написать проверку не LINQ, прежде чем пытаться использовать LINQ? – MarcinJuraszek