/// <summary> /// Получить список правил с id системы КИС /// </summary> /// <param name="tor"></param> /// <returns></returns> public List <OracleRules> GetRulesCopyToOracleRulesOfKis(typeOracleRules tor) { List <OracleRules> list = new List <OracleRules>(); IEnumerable <IGrouping <int, Oracle_RulesCopy> > result = GetRulesCopy(tor).GroupBy(c => c.IDStationOn); foreach (IGrouping <int, Oracle_RulesCopy> gr in result) { List <int> from = new List <int>(); foreach (Oracle_RulesCopy rc in gr) { int?st_from = rcs.GetIDStationsKis(rc.IDStationFrom); if (st_from != null) { from.Add((int)st_from); } } int?st_on = rcs.GetIDStationsKis(gr.Key); if (st_on != null) { list.Add(new OracleRules() { IDOn = (int)st_on, IDFrom = from.ToArray() }); } } return(list); }
public int DeleteOracle_RulesCopy(int id_station_on, int id_station_from, typeOracleRules tp) { try { return(rep_rc.db.ExecuteSqlCommand("DELETE FROM RailWay.Oracle_RulesCopy WHERE IDStationOn=" + id_station_on.ToString() + " AND IDStationFrom = " + id_station_from.ToString() + " AND TypeCopy = " + ((int)tp).ToString())); } catch (Exception e) { LogRW.LogError(e, "DeleteRulesCopy(2)", eventID); return(-1); } }
/// <summary> /// Получить список правил с id системы railcars /// </summary> /// <param name="tor"></param> /// <returns></returns> public List <OracleRules> GetRulesCopyToOracleRules(typeOracleRules tor) { List <OracleRules> list = new List <OracleRules>(); IEnumerable <IGrouping <int, Oracle_RulesCopy> > result = GetRulesCopy(tor).GroupBy(c => c.IDStationOn); foreach (IGrouping <int, Oracle_RulesCopy> gr in result) { List <int> from = new List <int>(); foreach (Oracle_RulesCopy rc in gr) { from.Add(rc.IDStationFrom); } list.Add(new OracleRules() { IDOn = gr.Key, IDFrom = from.ToArray() }); } return(list); }
/// <summary> /// Сохранить правило и для станции прибытия (если станция отправки station_from = 0, будут сохранены все станции которые еще не указанные для данной станции прибытия) /// </summary> /// <param name="station_on"></param> /// <param name="station_from"></param> /// <param name="tp"></param> /// <returns></returns> public int CreateRulesCopy(int station_on, int station_from, typeOracleRules tp) { int result = 0; int[] stations_from = station_from == 0 ? rcs.GetListStations(rcs.GetStationOfNotListID(GetListIDfromRules(GetRulesCopy(station_on, tp)).ToArray())).ToArray() : new int[] { station_from }; foreach (int ids in stations_from) { Oracle_RulesCopy or_ryles = new Oracle_RulesCopy() { IDRulesCopy = 0, IDStationFrom = ids, IDStationOn = station_on, TypeCopy = (int)tp }; int res = SaveOracle_RulesCopy(or_ryles); if (res > 0) { result++; } } return(result); }
/// <summary> /// Получить правило для по типу копирования для станций /// </summary> /// <param name="from"></param> /// <param name="on"></param> /// <returns></returns> public Oracle_RulesCopy GetRulesCopy(int from, int on, typeOracleRules tor) { return(GetRulesCopy().Where(r => r.IDStationFrom == from & r.IDStationOn == on & r.TypeCopy == (int)tor).FirstOrDefault()); }
/// <summary> /// Удалить правила копирования для станции прибытия /// </summary> /// <param name="station_on"></param> /// <param name="station_from"></param> /// <param name="tp"></param> /// <returns></returns> public int DeleteRulesCopy(int station_on, int station_from, typeOracleRules tp) { return(station_from == 0 ? DeleteOracle_RulesCopy(station_on, tp) : DeleteOracle_RulesCopy(station_on, station_from, tp)); }
/// <summary> /// Проверка есть на эти станции правила /// </summary> /// <param name="station_from"></param> /// <param name="station_on"></param> /// <param name="tp"></param> /// <returns></returns> public bool IsRules(int station_from, int station_on, typeOracleRules tp) { Oracle_RulesCopy rules = GetRulesCopy().Where(r => r.TypeCopy == (int)tp & r.IDStationFrom == station_from & r.IDStationOn == station_on).FirstOrDefault(); return(rules != null ? true : false); }
/// <summary> /// /// </summary> /// <param name="station_from"></param> /// <param name="station_on"></param> /// <param name="tor"></param> /// <returns></returns> public OracleRules GetRulesCopyToOracleRules(int station_from, int station_on, typeOracleRules tor) { Oracle_RulesCopy rules = GetRulesCopy(station_from, station_on, tor); return(rules != null ? new OracleRules() { IDOn = rules.IDStationOn, IDFrom = new int[] { rules.IDStationFrom } } : null); }
/// <summary> /// Получить правила для станции прибытия по типу правила копирования /// </summary> /// <param name="station_on"></param> /// <param name="tor"></param> /// <returns></returns> public IQueryable <Oracle_RulesCopy> GetRulesCopy(int station_on, typeOracleRules tor) { return(GetRulesCopy().Where(r => r.TypeCopy == (int)tor & r.IDStationOn == station_on)); }
/// <summary> /// Получить все правила по указанному типу правил /// </summary> /// <param name="tor"></param> /// <returns></returns> public IQueryable <Oracle_RulesCopy> GetRulesCopy(typeOracleRules tor) { return(GetRulesCopy().Where(r => r.TypeCopy == (int)tor)); }