/// <summary> /// Обновление колонок /// </summary> private void Update() { foreach (var column in _azsPriceBook.Book) { var col = _columns.FirstOrDefault(x => x.Id == column.DispenserNumber); var updateCol = false; if (col == null) { updateCol = true; col = new Column(column.DispenserNumber); _columns.Add(col); foreach (var hose in column.NozzleFuelTypes) { var price = _azsPriceBook.Prices.FirstOrDefault(x => x.F_Code == hose.F_Code & x.FF_Code == hose.FF_Code); col.AddHose(new Nozzle(hose.Nozzle, hose.F_Code, hose.FF_Code, price.FuelName, hose.Status, price.Price)); col.SetStatus(hose.Status); } } else { col.State = PumpStateEnum.PUMP_STATE_FREE; foreach (var hose in column.NozzleFuelTypes) { var price = _azsPriceBook.Prices.FirstOrDefault(x => x.F_Code == hose.F_Code & x.FF_Code == hose.FF_Code); updateCol |= col.UpdateHose(new Nozzle(hose.Nozzle, hose.F_Code, hose.FF_Code, price.FuelName, hose.Status, price.Price)); col.SetStatus(hose.Status); } } if (updateCol) { Device.BeginInvokeOnMainThread(() => UpdateUpdateColumns?.Invoke(col)); } } }