public OverallEntryEvolution Map(TopItemWithPartitionKey currentItem, TopItemWithPartitionKey previousItem) { if (mapToPosition == null) { throw new Exception("MapToPosition is mandatory"); } if (entryArtistImageProvider == null) { throw new Exception("ImageProvider is mandatory"); } if (currentItem == null) { throw new ArgumentNullException(nameof(currentItem), "current item cannot be null"); } if (previousItem == null) { return(new OverallEntryEvolution(null, mapToPosition.Map(currentItem), currentItem.Id, entryArtistImageProvider.GetPictureUrl(currentItem.Id))); } else if (!string.IsNullOrEmpty(currentItem.Id) && !string.IsNullOrEmpty(previousItem.Id) && currentItem.Id != previousItem.Id) { throw new Exception("Evolution between different items not supported."); } else { return(new OverallEntryEvolution(mapToPosition.Map(previousItem), mapToPosition.Map(currentItem), currentItem.Id, entryArtistImageProvider.GetPictureUrl(currentItem.Id))); } }
public new EntryTimeLine Map(IEnumerable <TopItem> fromItem) { if (mapToPositions == null) { throw new Exception("MapToPositions is mandatory"); } if (entryArtistImageProvider == null) { throw new Exception("ImageProvider is mandatory"); } if (fromItem == null) { throw new ArgumentNullException(nameof(fromItem)); } if (mapToPositions == null) { throw new Exception("No mapper to position defined."); } return(fromItem.GroupBy(t => t.Name).Select(g => new EntryTimeLine(g.Select(p => new PositionAtDate { Date = p.Date.ToString("yyyy-MM-dd"), Position = mapToPositions.Map(p).DailyPosition }).ToArray(), g.Key, entryArtistImageProvider.GetPictureUrl(g.First().Name))).FirstOrDefault()); }
public new DayEntryEvolution Map(TopItem currentDailyItem, TopItem previousDailyItem) { if (mapToPositions == null) { throw new Exception("MapToPositions is mandatory"); } if (entryArtistImageProvider == null) { throw new Exception("ImageProvider is mandatory"); } if (currentDailyItem == null || string.IsNullOrEmpty(currentDailyItem.Name)) { throw new ArgumentNullException(nameof(currentDailyItem)); } if (previousDailyItem != null && (string.IsNullOrEmpty(previousDailyItem.Name) || previousDailyItem.Name != currentDailyItem.Name)) { throw new Exception("Cross Items Evolution not supported!"); } var currentDailyItemPositions = mapToPositions.Map(currentDailyItem); currentDailyItemPositions.DailyPosition.Rank = (currentDailyItemPositions.DailyPosition.Rank == 0) ? 9999 : currentDailyItemPositions.DailyPosition.Rank; var previousDailyItemPositions = (previousDailyItem != null) ? mapToPositions.Map(previousDailyItem) : null; if (previousDailyItemPositions != null) { previousDailyItemPositions.DailyPosition.Rank = (previousDailyItemPositions.DailyPosition.Rank == 0) ? 9999 : previousDailyItemPositions.DailyPosition.Rank; } return(new DayEntryEvolution(currentDailyItemPositions.DailyPosition, (previousDailyItemPositions != null)?previousDailyItemPositions.DailyPosition:null, currentDailyItem.Date.Date.ToString("yyyy-MM-dd"), (previousDailyItemPositions != null) ? previousDailyItemPositions.OverallPosition : null, currentDailyItemPositions.OverallPosition, currentDailyItem.Name, entryArtistImageProvider.GetPictureUrl(currentDailyItem.Name))); }
public OverallEntry Map(TopItemWithPartitionKey fromItem) { if (mapTopItemWithPartitionKeyToPosition == null) { throw new Exception("No position mapper"); } if (entryArtistImageProvider == null) { throw new Exception("ImageProvider is mandatory"); } if (fromItem == null) { throw new ArgumentNullException(nameof(fromItem)); } return(new OverallEntry(mapTopItemWithPartitionKeyToPosition.Map(fromItem), fromItem.Id, entryArtistImageProvider.GetPictureUrl(fromItem.Id))); }