Exemplo n.º 1
0
 public static AuthorDto AsDto(this AuthorDocument document)
 => new AuthorDto
 {
     Id          = document.Id,
     FullName    = document.FullName,
     ImageUrl    = document.ImageUrl,
     Description = document.Description,
     CreatedAt   = document.CreatedAt
 };
        private async Task <Author> ComplexMapFromAuthorDBToAuthor(AuthorDocument authorFromDB,
                                                                   Raven.Client.Documents.Session.IAsyncDocumentSession session) //Estamos usando, al pasar la sesión abierta, los datos que hemos precargado en memoria.
                                                                                                                                 //El límite de operaciones por sesión a base de datos ya no nos afecta (!)
        {
            var convertedAuthor = _mapper.Map <Author>(authorFromDB);                                                            //For each author, recover the mapping.
                                                                                                                                 //
            // var coursesFromDB = await session.LoadAsync<CourseDocument>(authorFromDB.CoursesIds.ToArray());
            //¡Aquí se carga un diccionario porque también van los ids! Confirmar.

            var coursesFromDB = await session.LoadAsync <CourseDocument>(authorFromDB.CoursesIds.ToArray());

            var x = coursesFromDB.Values.ToList <CourseDocument>();

            var convertedCourses = _mapper.Map <List <Course> >(x);

            convertedAuthor.Courses = convertedCourses;

            return(convertedAuthor);
        }