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()); }
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); }