public void GetValues(object[] arr, ref int i) { arr[i++] = From.Measure; arr[i++] = To.Measure; arr[i++] = Subnet_Number; arr[i++] = CalcStatus.ToString(); if (CalcStatus == CalcStatus.Success || CalcStatus == CalcStatus.ExtraP) { arr.Put(ref i, OilVolumeRate_sc); arr.Put(ref i, WaterVolumeRate_sc); arr.Put(ref i, GasVolumeRate_sc); bool All = CalcStatus == CalcStatus.Success; From.GetValues(arr, ref i, All); To.GetValues(arr, ref i, All); if (All && fluid != null) { arr.Put(ref i, fluid.Reservoir_Pressure__Atm); // Пластовое давление (начальное, пл.у.), атм arr.Put(ref i, fluid.Temperature__C); // Пластовая температура (пл.у.), °C arr.Put(ref i, fluid.Oil_VolumeFactor); // Объёмный фактор (коэффициент) нефти (пл.у.), м³/ м³ arr.Put(ref i, fluid.Bubblpnt_Pressure__Atm); // Давление насыщения нефти (пл.у.), атм arr.Put(ref i, fluid.Oil_GasFactor); // Газосодержание нефти (пл.у.), м³/ м³ arr.Put(ref i, float.NaN); // Газовый фактор нефти (пл.у.), м³/ м³ arr.Put(ref i, fluid.Oil_Density); // Плотность нефти (с.у.), т/м³ arr.Put(ref i, fluid.Water_Density); // Плотность воды (с.у.), т/м³ arr.Put(ref i, fluid.Gas_Density); // Плотность газа (с.у.), кг/м³ arr.Put(ref i, fluid.Oil_Viscosity); // Вязкость нефти (пл.у.), сПз arr.Put(ref i, fluid.Water_Viscosity); // Вязкость воды (пл.у.), сПз arr.Put(ref i, fluid.Particles); // Взвешенных частиц (мехпримеси), мг/л ~ 1ppm } } }
private void TaskStatusUpdate(CalcStatus calcStatus) => _observer?.OnNext(calcStatus.ToString("G"));