public async Task<bool> WatchSaveAsync()
{
var manager = this.GetManagers().UserWatchInfoManager;
var user = await manager.FindAsync(this.InfoView.Source.Id);
var watched = this.Watcheds.Where(z => z.IsWatched)
.Select(z => z.Episode)
.OrderBy(z => z)
.ToList();
if (watched.Count == 0)
{
if (user.Watcheds != null)
{
user.Watcheds = null;
if (await manager.UpdateAsync(user))
{
this.ShowStatueMessage("watched updated.");
return true;
}
}
}
else
{
if (user.Watcheds?.Count != watched.Count || !watched.SequenceEqual(user.Watcheds))
{
user.Watcheds = watched;
if (await manager.UpdateAsync(user))
{
this.ShowStatueMessage("watched updated.");
return true;
}
}
}
return false;
}