Deduping tags only updates affected models

pull/4/head
Mark McDowall 10 years ago
parent 59f487392e
commit 33ed76556f

@ -144,5 +144,60 @@ namespace NzbDrone.Core.Test.Datastore.Migration
Mocker.Resolve<SeriesRepository>().Get(1).Tags.First().Should().Be(1); Mocker.Resolve<SeriesRepository>().Get(1).Tags.First().Should().Be(1);
} }
[Test]
public void should_only_update_affected_series()
{
WithTestDb(c =>
{
c.Insert.IntoTable("Series").Row(new
{
Tvdbid = 1,
TvRageId = 1,
Title = "Title1",
CleanTitle = "CleanTitle1",
Status = 1,
Images = "",
Path = "c:\\test",
Monitored = 1,
SeasonFolder = 1,
Runtime = 0,
SeriesType = 0,
UseSceneNumbering = 0,
LastInfoSync = "2000-01-01 00:00:00",
Tags = "[2]"
});
c.Insert.IntoTable("Series").Row(new
{
Tvdbid = 2,
TvRageId = 2,
Title = "Title2",
CleanTitle = "CleanTitle2",
Status = 1,
Images = "",
Path = "c:\\test",
Monitored = 1,
SeasonFolder = 1,
Runtime = 0,
SeriesType = 0,
UseSceneNumbering = 0,
LastInfoSync = "2000-01-01 00:00:00",
Tags = "[]"
});
c.Insert.IntoTable("Tags").Row(new
{
Label = "test"
});
c.Insert.IntoTable("Tags").Row(new
{
Label = "test"
});
});
Mocker.Resolve<SeriesRepository>().Get(2).Tags.Should().BeEmpty();
}
} }
} }

@ -116,8 +116,9 @@ namespace NzbDrone.Core.Datastore.Migration
using (IDbCommand updateCmd = conn.CreateCommand()) using (IDbCommand updateCmd = conn.CreateCommand())
{ {
updateCmd.Transaction = tran; updateCmd.Transaction = tran;
updateCmd.CommandText = String.Format(@"UPDATE {0} SET Tags = ?", table); updateCmd.CommandText = String.Format(@"UPDATE {0} SET Tags = ? WHERE Id = ?", table);
updateCmd.AddParameter(model.Tags.ToJson()); updateCmd.AddParameter(model.Tags.ToJson());
updateCmd.AddParameter(model.Id);
updateCmd.ExecuteNonQuery(); updateCmd.ExecuteNonQuery();
} }

Loading…
Cancel
Save