Example #1
0
        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)));
            }
        }
Example #2
0
        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());
        }
Example #3
0
        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)));
        }
Example #4
0
        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)));
        }