예제 #1
0
        /// <summary>
        /// Получение актуального(действующего) планового графика на текущие сутки
        /// </summary>
        static void GetPlanValuesActual(IApiExternal api_, Modes.BusinessLogic.IGenObject IGO)
        {
            //api_.GetPlanFactors() - это список: генерация; минимум генерации; максимум генерации
            //Величины в тестовом примере читаются так: Values (это коллекция) = api_.GetPlanValuesActual(...)
            //А потом цикл по ним, и у них берётся .DT и .Value

            IList <PlanValueItem> LPVI = api_.GetPlanValuesActual(DateTime.Now.Date.LocalHqToSystemEx(), DateTime.Now.Date.AddDays(1).LocalHqToSystemEx(), IGO);

            if (LPVI.Count == 0)
            {
                Console.WriteLine("    Нет параметров генерации!");
            }

            foreach (PlanValueItem pvi in LPVI.OrderBy(RRR => RRR.DT))
            {
                Console.WriteLine("    " + pvi.DT.SystemToLocalHqEx().ToString() + " " + pvi.Type.ToString() + " [" + LPFI[pvi.ObjFactor].Description + "] " + /*it.ObjName это id генерирующего объекта*/ LPFI[pvi.ObjFactor].Name + " =" + pvi.Value.ToString());

                techsite.WritePlanValue(IGO.IdInner, pvi.DT.SystemToLocalHqEx(), pvi.Type.ToString(), (MySQLtechsite.Params)LPFI[pvi.ObjFactor].Id, pvi.Value);     //Запись в БД techsite           //02.09.2013 меняю IGO.Id на IGO.IdInner

                //pvi.DT.SystemToLocalHqEx()    даёт Московское время, как и нужно
                //Аналогичный результат даст явное преобразование TimeZoneInfo.ConvertTimeFromUtc(pvi.DT, TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time"))
                //"Russian Standard Time" - это Москва. "N. Central Asia Standard Time" - это Новосибирск.
                //Про конвертацию времени: http://msdn.microsoft.com/ru-ru/library/bb397769.aspx
            }
        }
예제 #2
0
        static void ProcessChilds(Modes.BusinessLogic.IGenObject IGO, int Level, IApiExternal api_)
        {
            foreach (Modes.BusinessLogic.IGenObject IGOch in IGO.Children)
            {
                if (!(IGOch.GenObjType.Id == 15))      //Оборудование типа ГОУ исключаем - по ним нет ни параметров, ни дочерних элементов
                {
                    Console.WriteLine(new System.String('-', Level) + IGOch.Description + " [" + IGOch.GenObjType.Description + "]  P:" + IGOch.VarParams.Count.ToString() + " Id:" + IGOch.Id.ToString() + " IdInner:" + IGOch.IdInner.ToString());
                    //if (g_bList == false) ProcessParams(IGOch); else ;
                    if (IGOch.GenObjType.Id == 3)
                    {
                        //У оборудования типа Электростанция (id=1) нет параметров - только дочерние элементы
                        if (g_bList == false)
                        {
                            GetPlanValuesActual(api_, IGOch);
                        }
                        else
                        {
                            ;
                        }
                    }
                    else
                    {
                        ;
                    }

                    ProcessChilds(IGOch, Level + 1, api_);
                }
                else
                {
                    ;
                }
            }
        }
예제 #3
0
        void ProcessChilds(Modes.BusinessLogic.IGenObject IGO, int Level, int idInner)
        {
            foreach (Modes.BusinessLogic.IGenObject IGOch in IGO.Children)
            {
                if (!(IGOch.GenObjType.Id == 15))      //Оборудование типа ГОУ исключаем - по ним нет ни параметров, ни дочерних элементов
                {
                    //Console.WriteLine(new System.String('-', Level) + IGOch.Description + " [" + IGOch.GenObjType.Description + "]  P:" + IGOch.VarParams.Count.ToString() + " Id:" + IGOch.Id.ToString() + " IdInner:" + IGOch.IdInner.ToString());
                    //ProcessParams(IGOch);
                    if ((IGOch.GenObjType.Id == 3) && (IGOch.IdInner == idInner))
                    {
                        //У оборудования типа Электростанция (id=1) нет параметров - только дочерние элементы
                        m_listIGO.Add(IGOch);
                    }
                    else
                    {
                        ;
                    }

                    ProcessChilds(IGOch, Level + 1, idInner);
                }
                else
                {
                    ;
                }
            }
        }
예제 #4
0
 static void ProcessParams(Modes.BusinessLogic.IGenObject IGO)
 {
     foreach (Modes.BusinessLogic.IVarParam param in IGO.VarParams)
     {
         Console.WriteLine("Параметр: " + param.Name + " [" + param.Description + "] " + param.GetValue(0));   //пройтись 0...23 - по часам величины
     }
 }
예제 #5
0
        void addIGO(Modes.BusinessLogic.IGenObject igo, int Level, int idInner, Action <Modes.BusinessLogic.IGenObject> fAdd)
        {
            foreach (Modes.BusinessLogic.IGenObject child in igo.Children)
            {
                if (!((ID_GEN_OBJECT_TYPE)child.GenObjType.Id == ID_GEN_OBJECT_TYPE.GOU))
                {
                    //Console.WriteLine(new System.String('-', Level) + IGOch.Description + " [" + IGOch.GenObjType.Description + "]  P:" + IGOch.VarParams.Count.ToString() + " Id:" + IGOch.Id.ToString() + " IdInner:" + IGOch.IdInner.ToString());
                    //ProcessParams(IGOch);
                    if (((ID_GEN_OBJECT_TYPE)child.GenObjType.Id == ID_GEN_OBJECT_TYPE.RGE) &&
                        (child.IdInner == idInner))
                    {
                        fAdd(child);

                        break;
                    }
                    else
                    {
                        //У оборудования типа Электростанция (id = 1) нет параметров - только дочерние элементы
                        ;
                    }

                    addIGO(child, Level + 1, idInner, fAdd);
                }
                else
                {
                    //Оборудование типа ГОУ исключаем - по ним нет ни параметров, ни дочерних элементов
                    ;
                }
            }
        }