예제 #1
0
        public ReserveDataAppend GetReserveDataAppend(ReserveData master)
        {
            if (master == null)
            {
                return(null);
            }

            if (reserveAppendList == null)
            {
                reserveAppendList             = ReserveList.ToDictionary(data => data.Key, data => new ReserveDataAppend());
                updateReserveAppendEpgAuto    = true;
                updateReserveAppendManualAuto = true;
            }
            //キーワード予約が更新された場合
            if (updateReserveAppendEpgAuto == true)
            {
                foreach (ReserveDataAppend data in reserveAppendList.Values)
                {
                    data.EpgAutoList.Clear();
                }
                foreach (EpgAutoAddData item in EpgAutoAddList.Values)
                {
                    item.GetReserveList().ForEach(info => reserveAppendList[info.ReserveID].EpgAutoList.Add(item));
                }
            }
            //プログラム予約が更新された場合
            if (updateReserveAppendManualAuto == true)
            {
                foreach (ReserveDataAppend data in reserveAppendList.Values)
                {
                    data.ManualAutoList.Clear();
                }
                foreach (ManualAutoAddData item in ManualAutoAddList.Values)
                {
                    item.GetReserveList().ForEach(info => reserveAppendList[info.ReserveID].ManualAutoList.Add(item));
                }
            }
            //その他データの再構築
            if (updateReserveAppendEpgAuto == true || updateReserveAppendManualAuto == true)
            {
                foreach (ReserveDataAppend data in reserveAppendList.Values)
                {
                    data.UpdateData();
                }
                updateReserveAppendEpgAuto    = false;
                updateReserveAppendManualAuto = false;
            }

            ReserveDataAppend retv;

            reserveAppendList.TryGetValue(master.ReserveID, out retv);
            return(retv ?? new ReserveDataAppend());
        }
예제 #2
0
        public ReserveDataAppend GetReserveDataAppend(ReserveData master)
        {
            if (master == null)
            {
                return(null);
            }

            Dictionary <uint, ReserveDataAppend> dict = reserveAppendList;

            if (dict == null)
            {
                dict = ReserveList.ToDictionary(data => data.Key, data => new ReserveDataAppend());
                reserveAppendList = dict;

                foreach (EpgAutoAddData item in EpgAutoAddList.Values)
                {
                    item.GetReserveList().ForEach(info => dict[info.ReserveID].EpgAutoList.Add(item));
                }

                foreach (ManualAutoAddData item in ManualAutoAddList.Values)
                {
                    item.GetReserveList().ForEach(info => dict[info.ReserveID].ManualAutoList.Add(item));
                }

                foreach (ReserveData item in ReserveList.Values.Where(data => data.IsEpgReserve == true))
                {
                    UInt64 key = item.Create64PgKey();
                    dict[item.ReserveID].MultipleEPGList.AddRange(ReserveList.Values.Where(data => data.Create64PgKey() == key && data != item));
                }

                foreach (ReserveDataAppend data in dict.Values)
                {
                    data.UpdateData();
                }
            }

            ReserveDataAppend retv;

            if (dict.TryGetValue(master.ReserveID, out retv) == false)
            {
                retv = new ReserveDataAppend();
            }
            return(retv);
        }