Skip to content

Instantly share code, notes, and snippets.

View JoachimL's full-sized avatar

Joachim Løvf JoachimL

View GitHub Profile
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)));
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.Models
{
public class MoviePresentationModel
{
public int Id { get; set; }
public string Title { get; set; }
public int YearOfRelease { get; set; }
}
}
namespace WebApi.OData.Services
{
public class MovieService
{
private readonly MovieRepository movieRepository;
public MovieService(MovieRepository movieRepository)
{
this.movieRepository = movieRepository;
}
namespace WebApi.OData.Repositories
{
public class MovieRepository
{
static Context context = new Context();
internal IQueryable<Domain.Movie> GetAll()
{
return context.Movies;
}
return movieRepository.GetAll().Project<Movie>().To<MoviePresentationModel>();
return movieRepository.GetAll().Select(Mapper.Map<MoviePresentationModel>);
namespace WebApi.OData.Models
{
public class MoviePresentationModel
{
public int Id { get; set; }
public string Title { get; set; }
public int YearOfRelease { get; set; }
public double AverageRating { get; set; }
public string[] Actors { get; set; }
}
public class Movie
{
public int Id { get; set; }
public string Title { get; set; }
public ICollection<Actor> Actors { get;set; }
}
public class MovieModel
{
public string Title { get; set; }