Index: CardDvbC.cs =================================================================== --- CardDvbC.cs (revision 26874) +++ CardDvbC.cs (working copy) @@ -516,98 +516,103 @@ { Channel dbChannel; DVBCChannel channel = (DVBCChannel)channels[i]; - //TuningDetail currentDetail = layer.GetChannel(channel); - TuningDetail currentDetail = layer.GetChannel(channel.Provider, channel.Name, channel.ServiceId); - bool exists; - if (currentDetail == null) + if (channel.FreeToAir) { - //add new channel - exists = false; - dbChannel = layer.AddNewChannel(channel.Name); - dbChannel.SortOrder = 10000; - if (channel.LogicalChannelNumber >= 1) - { - dbChannel.SortOrder = channel.LogicalChannelNumber; - } - } - else - { - exists = true; - dbChannel = currentDetail.ReferencedChannel(); - } - dbChannel.IsTv = channel.IsTv; - dbChannel.IsRadio = channel.IsRadio; - dbChannel.Persist(); - - if (dbChannel.IsTv) - { - layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels); - if (checkBoxCreateSignalGroup.Checked) + //TuningDetail currentDetail = layer.GetChannel(channel); + TuningDetail currentDetail = layer.GetChannel(channel.Provider, channel.Name, channel.ServiceId); + bool exists; + if (currentDetail == null) { - layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.DVBC); + //add new channel + exists = false; + dbChannel = layer.AddNewChannel(channel.Name); + dbChannel.SortOrder = 10000; + if (channel.LogicalChannelNumber >= 1) + { + dbChannel.SortOrder = channel.LogicalChannelNumber; + } } - if (checkBoxCreateGroups.Checked) + else { - layer.AddChannelToGroup(dbChannel, channel.Provider); + exists = true; + dbChannel = currentDetail.ReferencedChannel(); } - } - if (dbChannel.IsRadio) - { - layer.AddChannelToRadioGroup(dbChannel, TvConstants.RadioGroupNames.AllChannels); - if (checkBoxCreateSignalGroup.Checked) + + dbChannel.IsTv = channel.IsTv; + dbChannel.IsRadio = channel.IsRadio; + dbChannel.Persist(); + + if (dbChannel.IsTv) { - layer.AddChannelToRadioGroup(dbChannel, TvConstants.RadioGroupNames.DVBC); + layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels); + if (checkBoxCreateSignalGroup.Checked) + { + layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.DVBC); + } + if (checkBoxCreateGroups.Checked) + { + layer.AddChannelToGroup(dbChannel, channel.Provider); + } } - if (checkBoxCreateGroups.Checked) + if (dbChannel.IsRadio) { - layer.AddChannelToRadioGroup(dbChannel, channel.Provider); + layer.AddChannelToRadioGroup(dbChannel, TvConstants.RadioGroupNames.AllChannels); + if (checkBoxCreateSignalGroup.Checked) + { + layer.AddChannelToRadioGroup(dbChannel, TvConstants.RadioGroupNames.DVBC); + } + if (checkBoxCreateGroups.Checked) + { + layer.AddChannelToRadioGroup(dbChannel, channel.Provider); + } } - } - if (currentDetail == null) - { - layer.AddTuningDetails(dbChannel, channel); - } - else - { - //update tuning details... - TuningDetail td = layer.UpdateTuningDetails(dbChannel, channel, currentDetail); - td.Persist(); - } - - if (channel.IsTv) - { - if (exists) + if (currentDetail == null) { - tv.updChannel++; + layer.AddTuningDetails(dbChannel, channel); } else { - tv.newChannel++; - tv.newChannels.Add(channel); + //update tuning details... + TuningDetail td = layer.UpdateTuningDetails(dbChannel, channel, currentDetail); + td.Persist(); } - } - if (channel.IsRadio) - { - if (exists) + + if (channel.IsTv) { - radio.updChannel++; + if (exists) + { + tv.updChannel++; + } + else + { + tv.newChannel++; + tv.newChannels.Add(channel); + } } - else + if (channel.IsRadio) { - radio.newChannel++; - radio.newChannels.Add(channel); + if (exists) + { + radio.updChannel++; + } + else + { + radio.newChannel++; + radio.newChannels.Add(channel); + } } + layer.MapChannelToCard(card, dbChannel, false); + line = String.Format("{0}tp- {1} {2} {3}:New TV/Radio:{4}/{5} Updated TV/Radio:{6}/{7}", 1 + index, + tuneChannel.Frequency, tuneChannel.ModulationType, tuneChannel.SymbolRate, + tv.newChannel, radio.newChannel, tv.updChannel, radio.updChannel); + item.Text = line; } - layer.MapChannelToCard(card, dbChannel, false); - line = String.Format("{0}tp- {1} {2} {3}:New TV/Radio:{4}/{5} Updated TV/Radio:{6}/{7}", 1 + index, - tuneChannel.Frequency, tuneChannel.ModulationType, tuneChannel.SymbolRate, - tv.newChannel, radio.newChannel, tv.updChannel, radio.updChannel); - item.Text = line; } - tv.updChannelSum += tv.updChannel; - radio.updChannelSum += radio.updChannel; + tv.updChannelSum += tv.updChannel; + radio.updChannelSum += radio.updChannel; + } } catch (Exception ex)