-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExtensionMethods.cs
71 lines (63 loc) · 2.25 KB
/
ExtensionMethods.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AlbumImageSearch.Controllers.Responses;
using AlbumImageSearch.Cosmos;
using AlbumImageSearch.Search;
using Reverb.Models;
namespace AlbumImageSearch
{
public static class ExtensionMethods
{
public static AlbumInfoSearchObject ToSearchObject(this AlbumInfo albumInfo)
{
AlbumInfoSearchObject searchObject = new AlbumInfoSearchObject()
{
AlbumId = albumInfo.AlbumId!.Split(':')[2],
AlbumName = albumInfo.AlbumName,
ArtistName = albumInfo.ArtistName,
Captions = new List<string>()
};
HashSet<string> colors = new HashSet<string>();
colors.Add(albumInfo.VisionResults!.Color!.DominantColorBackground);
colors.Add(albumInfo.VisionResults!.Color!.DominantColorForeground);
foreach (var color in albumInfo.VisionResults!.Color.DominantColors)
{
colors.Add(color);
}
searchObject.Colors = colors.ToList();
HashSet<string> tags = new HashSet<string>();
foreach (var tag in albumInfo.VisionResults!.Tags!)
{
tags.Add(tag.Name);
}
foreach (var tag in albumInfo.VisionResults!.Description!.Tags)
{
tags.Add(tag);
}
searchObject.Tags = tags.ToList();
foreach (var caption in albumInfo.VisionResults!.Description!.Captions)
{
searchObject.Captions.Add(caption.Text);
}
return searchObject;
}
public static Album ToResponseAlbum(this SpotifySavedAlbum savedAlbum)
{
string? artistName = null;
if (savedAlbum.Album.Artists.Count > 0)
{
artistName = savedAlbum.Album.Artists[0].Name;
}
Album album = new Album()
{
AlbumId = savedAlbum.Album.Uri,
AlbumName = savedAlbum.Album.Name,
ArtistName = artistName,
ImageUrl = savedAlbum.Album.GetLargestImage()?.Url
};
return album;
}
}
}