Skip to content

Instantly share code, notes, and snippets.

View JoachimL's full-sized avatar

Joachim Løvf JoachimL

View GitHub Profile
return movieRepository.GetAll().Select(Mapper.Map<MoviePresentationModel>);
return movieRepository.GetAll().Project<Movie>().To<MoviePresentationModel>();
namespace WebApi.OData.Repositories
{
public class MovieRepository
{
static Context context = new Context();
internal IQueryable<Domain.Movie> GetAll()
{
return context.Movies;
}
namespace WebApi.OData.Services
{
public class MovieService
{
private readonly MovieRepository movieRepository;
public MovieService(MovieRepository movieRepository)
{
this.movieRepository = movieRepository;
}
namespace WebApi.OData.Models
{
public class MoviePresentationModel
{
public int Id { get; set; }
public string Title { get; set; }
public int YearOfRelease { get; set; }
}
}
namespace WebApi.OData.Domain
{
public class Movie
{
public virtual int Id { get; set; }
public virtual string Title { get; set; }
public virtual DateTime Released { get; set; }
public virtual ICollection<Person> Directors { get; set; }
public virtual ICollection<Person> Actors { get; set; }
public virtual ICollection<UserRating> Ratings { get; set; }
namespace WebApi.OData
{
public class DomainToModelMappingProfile : Profile
{
public DomainToModelMappingProfile()
{
Mapper.CreateMap<Movie, MoviePresentationModel>()
.ForMember(m => m.YearOfRelease, x => x.MapFrom(y => y.Released.Year))
.ForMember(m => m.AverageRating, x => x.MapFrom(y => y.Ratings.Average(r => r.Rating)))
.ForMember(m => m.Actors, x => x.MapFrom(y => y.Actors.Select(a => a.Name)));
namespace WebApi.OData
{
public class DomainToModelMappingProfile : Profile
{
public DomainToModelMappingProfile()
{
Mapper.CreateMap<Movie, MoviePresentationModel>()
.ForMember(m => m.YearOfRelease, x => x.MapFrom(y => y.Released.Year))
.ForMember(m => m.AverageRating, x => x.MapFrom(y => y.Ratings.Average(r => r.Rating)))
.ForMember(m => m.Actors, x => x.MapFrom(y => y.Actors.Select(a => a.Name)));
@JoachimL
JoachimL / gist:46e90f29f477d3de83ad
Last active August 29, 2015 14:14
Usage before IoC/Feature Toggle
foreach(var relatedPage in SlowPageRelationRepository.GetPagesRelatedTo(this.PageId, "en"")
{
// ...
}
public static class SlowPageRelationRepository
{
private static readonly SlowPageDatabaseHandler PageDatabaseHandler = new SlowPageDatabaseHandler();
public static ICollection<Page> GetPagesRelatedTo(int page, string language)
{
return PageDatabaseHandler.GetRelatedPages(page, language);
}
public static CategorizedPageCollection GetCategorizedPagesRelatedTo(int page, string language)