mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-16 02:02:55 -07:00
The move!
This commit is contained in:
parent
1daf480b1b
commit
25526cc4d9
1147 changed files with 85 additions and 8524 deletions
35
src/Ombi.Mapping/AutoMapperProfile.cs
Normal file
35
src/Ombi.Mapping/AutoMapperProfile.cs
Normal file
|
@ -0,0 +1,35 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using AutoMapper;
|
||||
using AutoMapper.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Ombi.Mapping
|
||||
{
|
||||
public static class AutoMapperProfile
|
||||
{
|
||||
public static IServiceCollection AddOmbiMappingProfile(this IServiceCollection services)
|
||||
{
|
||||
System.Reflection.Assembly ass = typeof(AutoMapperProfile).GetTypeInfo().Assembly;
|
||||
var assemblies = new List<Type>();
|
||||
foreach (System.Reflection.TypeInfo ti in ass.DefinedTypes)
|
||||
{
|
||||
if (ti.ImplementedInterfaces.Contains(typeof(IProfileConfiguration)))
|
||||
{
|
||||
assemblies.Add(ti.AsType());
|
||||
}
|
||||
}
|
||||
var config = new AutoMapper.MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.AddProfiles(assemblies);
|
||||
});
|
||||
|
||||
var mapper = config.CreateMapper();
|
||||
services.AddSingleton(mapper);
|
||||
|
||||
return services;
|
||||
}
|
||||
}
|
||||
}
|
41
src/Ombi.Mapping/MappingConverters.cs
Normal file
41
src/Ombi.Mapping/MappingConverters.cs
Normal file
|
@ -0,0 +1,41 @@
|
|||
using AutoMapper;
|
||||
using System;
|
||||
using System.Security.Claims;
|
||||
using Ombi.Core.Models.UI;
|
||||
|
||||
namespace Ombi.Mapping
|
||||
{
|
||||
public class StringToDateTimeConverter : ITypeConverter<string, DateTime>
|
||||
{
|
||||
|
||||
public DateTime Convert(string source, DateTime destination, ResolutionContext context)
|
||||
{
|
||||
DateTime dateTime;
|
||||
|
||||
if (string.IsNullOrEmpty(source))
|
||||
{
|
||||
return default(DateTime);
|
||||
}
|
||||
|
||||
if (DateTime.TryParse(source.ToString(), out dateTime))
|
||||
{
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
return default(DateTime);
|
||||
}
|
||||
}
|
||||
|
||||
public class ClaimsConverter : ITypeConverter<Claim, ClaimCheckboxes>
|
||||
{
|
||||
|
||||
public ClaimCheckboxes Convert(Claim source, ClaimCheckboxes destination, ResolutionContext context)
|
||||
{
|
||||
return new ClaimCheckboxes
|
||||
{
|
||||
Enabled = true,
|
||||
Value = source.Value
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
20
src/Ombi.Mapping/Ombi.Mapping.csproj
Normal file
20
src/Ombi.Mapping/Ombi.Mapping.csproj
Normal file
|
@ -0,0 +1,20 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard1.6</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper" Version="6.0.2" />
|
||||
<PackageReference Include="AutoMapper.Collection" Version="3.0.0" />
|
||||
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="2.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Ombi.Api\Ombi.Api.csproj" />
|
||||
<ProjectReference Include="..\Ombi.Core\Ombi.Core.csproj" />
|
||||
<ProjectReference Include="..\Ombi.Helpers\Ombi.Helpers.csproj" />
|
||||
<ProjectReference Include="..\Ombi.Store\Ombi.Store.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
52
src/Ombi.Mapping/Profiles/MovieProfile.cs
Normal file
52
src/Ombi.Mapping/Profiles/MovieProfile.cs
Normal file
|
@ -0,0 +1,52 @@
|
|||
using AutoMapper;
|
||||
using Ombi.Api.TheMovieDb.Models;
|
||||
using Ombi.Core.Models.Search;
|
||||
using Ombi.TheMovieDbApi.Models;
|
||||
|
||||
namespace Ombi.Mapping.Profiles
|
||||
{
|
||||
public class MovieProfile : Profile
|
||||
{
|
||||
public MovieProfile()
|
||||
{
|
||||
CreateMap<SearchResult, MovieSearchResult>()
|
||||
.ForMember(dest => dest.Adult, opts => opts.MapFrom(src => src.adult))
|
||||
.ForMember(dest => dest.BackdropPath, opts => opts.MapFrom(src => src.backdrop_path))
|
||||
.ForMember(dest => dest.Id, opts => opts.MapFrom(src => src.id))
|
||||
.ForMember(dest => dest.OriginalLanguage, opts => opts.MapFrom(src => src.original_language))
|
||||
.ForMember(dest => dest.OriginalTitle, opts => opts.MapFrom(src => src.original_title))
|
||||
.ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.overview))
|
||||
.ForMember(dest => dest.Popularity, opts => opts.MapFrom(src => src.popularity))
|
||||
.ForMember(dest => dest.PosterPath, opts => opts.MapFrom(src => src.poster_path))
|
||||
.ForMember(dest => dest.ReleaseDate, opts => opts.MapFrom(src => src.release_date))
|
||||
.ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.title))
|
||||
.ForMember(dest => dest.Video, opts => opts.MapFrom(src => src.video))
|
||||
.ForMember(dest => dest.VoteAverage, opts => opts.MapFrom(src => src.vote_average))
|
||||
.ForMember(dest => dest.VoteCount, opts => opts.MapFrom(src => src.vote_count));
|
||||
|
||||
CreateMap<MovieResponse, MovieResponseDto>()
|
||||
.ForMember(dest => dest.Adult, opts => opts.MapFrom(src => src.adult))
|
||||
.ForMember(dest => dest.BackdropPath, opts => opts.MapFrom(src => src.backdrop_path))
|
||||
.ForMember(dest => dest.Id, opts => opts.MapFrom(src => src.id))
|
||||
.ForMember(dest => dest.OriginalLanguage, opts => opts.MapFrom(src => src.original_language))
|
||||
.ForMember(dest => dest.OriginalTitle, opts => opts.MapFrom(src => src.original_title))
|
||||
.ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.overview))
|
||||
.ForMember(dest => dest.Popularity, opts => opts.MapFrom(src => src.popularity))
|
||||
.ForMember(dest => dest.PosterPath, opts => opts.MapFrom(src => src.poster_path))
|
||||
.ForMember(dest => dest.ReleaseDate, opts => opts.MapFrom(src => src.release_date))
|
||||
.ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.title))
|
||||
.ForMember(dest => dest.Video, opts => opts.MapFrom(src => src.video))
|
||||
.ForMember(dest => dest.VoteAverage, opts => opts.MapFrom(src => src.vote_average))
|
||||
.ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.imdb_id))
|
||||
.ForMember(dest => dest.Homepage, opts => opts.MapFrom(src => src.homepage))
|
||||
.ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.runtime))
|
||||
.ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.status))
|
||||
.ForMember(dest => dest.Tagline, opts => opts.MapFrom(src => src.tagline))
|
||||
.ForMember(dest => dest.VoteCount, opts => opts.MapFrom(src => src.vote_count));
|
||||
CreateMap<Genre, GenreDto>();
|
||||
|
||||
CreateMap<MovieSearchResult, SearchMovieViewModel>().ReverseMap();
|
||||
CreateMap<MovieResponseDto, SearchMovieViewModel>().ReverseMap();
|
||||
}
|
||||
}
|
||||
}
|
31
src/Ombi.Mapping/Profiles/OmbiProfile.cs
Normal file
31
src/Ombi.Mapping/Profiles/OmbiProfile.cs
Normal file
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Claims;
|
||||
using AutoMapper;
|
||||
using Ombi.Core.Models;
|
||||
using Ombi.Core.Models.UI;
|
||||
using Ombi.Store.Entities;
|
||||
|
||||
namespace Ombi.Mapping.Profiles
|
||||
{
|
||||
public class OmbiProfile : Profile
|
||||
{
|
||||
public OmbiProfile()
|
||||
{
|
||||
CreateMap<User, UserDto>().ReverseMap();
|
||||
|
||||
|
||||
CreateMap<Claim, ClaimCheckboxes>().ConvertUsing<ClaimsConverter>();
|
||||
|
||||
CreateMap<UserDto, UserViewModel>().ForMember(x => x.Password, opt => opt.Ignore());
|
||||
|
||||
CreateMap<ClaimCheckboxes, Claim>()
|
||||
.ConstructUsing(checkbox => checkbox.Enabled ? new Claim(ClaimTypes.Role, checkbox.Value) : new Claim(ClaimTypes.Country, ""));
|
||||
// This is used for the UserViewModel List<string> claims => UserDto List<claim>
|
||||
CreateMap<UserViewModel, UserDto>();
|
||||
|
||||
CreateMap<string, DateTime>().ConvertUsing<StringToDateTimeConverter>();
|
||||
}
|
||||
}
|
||||
}
|
99
src/Ombi.Mapping/Profiles/TvProfile.cs
Normal file
99
src/Ombi.Mapping/Profiles/TvProfile.cs
Normal file
|
@ -0,0 +1,99 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using AutoMapper;
|
||||
using Ombi.Api.TvMaze.Models;
|
||||
using Ombi.Core.Models.Requests;
|
||||
using Ombi.Core.Models.Search;
|
||||
using Ombi.Helpers;
|
||||
//using TraktApiSharp.Objects.Get.Shows;
|
||||
//using TraktApiSharp.Objects.Get.Shows.Common;
|
||||
|
||||
namespace Ombi.Mapping.Profiles
|
||||
{
|
||||
public class TvProfile : Profile
|
||||
{
|
||||
public TvProfile()
|
||||
{
|
||||
CreateMap<TvMazeSearch, SearchTvShowViewModel>()
|
||||
.ForMember(dest => dest.Id, opts => opts.MapFrom(src => src.show.externals.thetvdb))
|
||||
.ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.show.premiered))
|
||||
.ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.show.externals.imdb))
|
||||
.ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.show.network.name))
|
||||
.ForMember(dest => dest.NetworkId, opts => opts.MapFrom(src => src.show.network.id.ToString()))
|
||||
.ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.show.summary.RemoveHtml()))
|
||||
.ForMember(dest => dest.Rating, opts => opts.MapFrom(src => src.score.ToString(CultureInfo.CurrentUICulture)))
|
||||
.ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.show.runtime.ToString()))
|
||||
.ForMember(dest => dest.SeriesId, opts => opts.MapFrom(src => src.show.id))
|
||||
.ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.show.name))
|
||||
.ForMember(dest => dest.Banner, opts => opts.MapFrom(src => !string.IsNullOrEmpty(src.show.image.medium) ? src.show.image.medium.Replace("http", "https") : string.Empty))
|
||||
.ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.show.status));
|
||||
|
||||
CreateMap<TvMazeShow, SearchTvShowViewModel>()
|
||||
.ForMember(dest => dest.Id, opts => opts.MapFrom(src => src.externals.thetvdb))
|
||||
.ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.premiered))
|
||||
.ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.externals.imdb))
|
||||
.ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.network.name))
|
||||
.ForMember(dest => dest.NetworkId, opts => opts.MapFrom(src => src.network.id.ToString()))
|
||||
.ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.summary.RemoveHtml()))
|
||||
.ForMember(dest => dest.Rating, opts => opts.MapFrom(src => src.rating.ToString()))
|
||||
.ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.runtime.ToString(CultureInfo.CurrentUICulture)))
|
||||
.ForMember(dest => dest.SeriesId, opts => opts.MapFrom(src => src.id))
|
||||
.ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.name))
|
||||
.ForMember(dest => dest.Banner, opts => opts.MapFrom(src => !string.IsNullOrEmpty(src.image.medium) ? src.image.medium.Replace("http", "https") : string.Empty))
|
||||
.ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.status))
|
||||
.ForMember(dest => dest.SeasonRequests, opts => opts.MapFrom(src => src.Season));
|
||||
|
||||
//CreateMap<TraktShow, SearchTvShowViewModel>()
|
||||
// .ForMember(dest => dest.Id, opts => opts.MapFrom(src => Convert.ToInt32(src.Ids.Tvdb.ToString())))
|
||||
// .ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.FirstAired.HasValue ? src.FirstAired.Value.ToString("yyyy-MM-ddTHH:mm:ss") : string.Empty))
|
||||
// .ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.Ids.Imdb))
|
||||
// .ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.Network))
|
||||
// .ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.Overview.RemoveHtml()))
|
||||
// .ForMember(dest => dest.Rating, opts => opts.MapFrom(src => src.Rating.ToString()))
|
||||
// .ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.Runtime.ToString()))
|
||||
// .ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.Title))
|
||||
// .ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.Status.DisplayName))
|
||||
// .ForMember(dest => dest.Trailer, opts => opts.MapFrom(src => src.Trailer))
|
||||
// .ForMember(dest => dest.Homepage, opts => opts.MapFrom(src => src.Homepage));
|
||||
|
||||
//CreateMap<TraktTrendingShow, SearchTvShowViewModel>()
|
||||
// .ForMember(dest => dest.Id, opts => opts.MapFrom(src => Convert.ToInt32(src.Show.Ids.Tvdb.ToString())))
|
||||
// .ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.Show.FirstAired.HasValue ? src.Show.FirstAired.Value.ToString("yyyy-MM-ddTHH:mm:ss") : string.Empty))
|
||||
// .ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.Show.Ids.Imdb))
|
||||
// .ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.Show.Network))
|
||||
// .ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.Show.Overview.RemoveHtml()))
|
||||
// .ForMember(dest => dest.Rating, opts => opts.MapFrom(src => src.Show.Rating.ToString()))
|
||||
// .ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.Show.Runtime.ToString()))
|
||||
// .ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.Show.Title))
|
||||
// .ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.Show.Status.DisplayName))
|
||||
// .ForMember(dest => dest.Trailer, opts => opts.MapFrom(src => src.Show.Trailer))
|
||||
// .ForMember(dest => dest.Homepage, opts => opts.MapFrom(src => src.Show.Homepage));
|
||||
|
||||
//CreateMap<TraktMostAnticipatedShow, SearchTvShowViewModel>()
|
||||
// .ForMember(dest => dest.Id, opts => opts.MapFrom(src => Convert.ToInt32(src.Show.Ids.Tvdb.ToString())))
|
||||
// .ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.Show.FirstAired.HasValue ? src.Show.FirstAired.Value.ToString("yyyy-MM-ddTHH:mm:ss") : string.Empty))
|
||||
// .ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.Show.Ids.Imdb))
|
||||
// .ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.Show.Network))
|
||||
// .ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.Show.Overview.RemoveHtml()))
|
||||
// .ForMember(dest => dest.Rating, opts => opts.MapFrom(src => src.Show.Rating.ToString()))
|
||||
// .ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.Show.Runtime.ToString()))
|
||||
// .ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.Show.Title))
|
||||
// .ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.Show.Status.DisplayName))
|
||||
// .ForMember(dest => dest.Trailer, opts => opts.MapFrom(src => src.Show.Trailer))
|
||||
// .ForMember(dest => dest.Homepage, opts => opts.MapFrom(src => src.Show.Homepage));
|
||||
|
||||
//CreateMap<TraktMostWatchedShow, SearchTvShowViewModel>()
|
||||
// .ForMember(dest => dest.Id, opts => opts.MapFrom(src => Convert.ToInt32(src.Show.Ids.Tvdb.ToString())))
|
||||
// .ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.Show.FirstAired.HasValue ? src.Show.FirstAired.Value.ToString("yyyy-MM-ddTHH:mm:ss") : string.Empty))
|
||||
// .ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.Show.Ids.Imdb))
|
||||
// .ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.Show.Network))
|
||||
// .ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.Show.Overview.RemoveHtml()))
|
||||
// .ForMember(dest => dest.Rating, opts => opts.MapFrom(src => src.Show.Rating.ToString()))
|
||||
// .ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.Show.Runtime.ToString()))
|
||||
// .ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.Show.Title))
|
||||
// .ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.Show.Status.DisplayName))
|
||||
// .ForMember(dest => dest.Trailer, opts => opts.MapFrom(src => src.Show.Trailer))
|
||||
// .ForMember(dest => dest.Homepage, opts => opts.MapFrom(src => src.Show.Homepage));
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue