< Summary

Information
Class: MRA.DTO.Mapper.DrawingMapper
Assembly: MRA.DTO
File(s): D:\a\MiguelRomerART\MiguelRomerART\MRA.DTO\Mapper\DrawingMapper.cs
Line coverage
100%
Covered lines: 75
Uncovered lines: 0
Coverable lines: 75
Total lines: 100
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
ConvertToModel(...)100%11100%
ConvertToDocument(...)100%11100%

File(s)

D:\a\MiguelRomerART\MiguelRomerART\MRA.DTO\Mapper\DrawingMapper.cs

#LineLine coverage
 1using MRA.Infrastructure.Settings;
 2using MRA.DTO.Models;
 3using MRA.DTO.Mapper.Interfaces;
 4using MRA.Infrastructure.Database.Documents.Interfaces;
 5using MRA.Infrastructure.Database.Documents.MongoDb;
 6using MRA.DTO.Enums.Drawing;
 7
 8namespace MRA.DTO.Mapper;
 9
 10public class DrawingMapper : IDocumentMapper<DrawingModel, IDrawingDocument>
 11{
 12    private readonly string _urlBase;
 13
 2014    public DrawingMapper(AppSettings appConfig)
 15    {
 2016        _urlBase = appConfig.AzureStorage.BlobPath;
 2017    }
 18
 19    public DrawingModel ConvertToModel(IDrawingDocument drawingDocument)
 20    {
 3021        var dateDrawingAt = drawingDocument.drawingAt.ToUniversalTime();
 22
 3023        return new DrawingModel
 3024        {
 3025            Id = drawingDocument.Id,
 3026            Path = drawingDocument.path,
 3027            Type = drawingDocument.type,
 3028            Title = drawingDocument.title,
 3029            Name = drawingDocument.name,
 3030            Date = dateDrawingAt.ToString("yyyy/MM/dd"),
 3031            DateHyphen = dateDrawingAt.ToString("yyyy-MM-dd"),
 3032            DateObject = dateDrawingAt,
 3033            Time = drawingDocument.time ?? 0,
 3034            ProductType = drawingDocument.product_type,
 3035            ProductName = drawingDocument.product_name,
 3036            ListComments = drawingDocument.list_comments,
 3037            ListCommentsStyle = drawingDocument.list_comments_style,
 3038            ListCommentsPros = drawingDocument.list_comments_pros,
 3039            ListCommentsCons = drawingDocument.list_comments_cons,
 3040            Filter = drawingDocument.filter,
 3041            Views = drawingDocument.views,
 3042            Likes = drawingDocument.likes,
 3043            ModelName = drawingDocument.model_name,
 3044            UrlBase = _urlBase,
 3045            Favorite = drawingDocument.favorite,
 3046            ReferenceUrl = drawingDocument.reference_url,
 3047            PathThumbnail = drawingDocument.path_thumbnail,
 3048            Software = drawingDocument.software,
 3049            Paper = drawingDocument.paper,
 3050            SpotifyUrl = drawingDocument.spotify_url,
 3051            InstagramUrl = drawingDocument.instagram_url,
 3052            TwitterUrl = drawingDocument.twitter_url,
 3053            ScorePopular = drawingDocument.score_popular,
 3054            ScoreCritic = drawingDocument.score_critic,
 3055            VotesPopular = drawingDocument.votes_popular,
 3056            Tags = drawingDocument.tags,
 3057            Visible = drawingDocument.visible ?? true,
 3058        };
 59    }
 60
 61    public IDrawingDocument ConvertToDocument(DrawingModel drawing)
 62    {
 763        var dateDrawingAt = new DateTime(drawing.DateObject.Year, drawing.DateObject.Month, drawing.DateObject.Day,
 764            0, 0, 0, DateTimeKind.Utc).ToUniversalTime();
 65
 766        return new DrawingMongoDocument
 767        {
 768            Id = drawing.Id,
 769            path = drawing.Path,
 770            type = drawing.Type,
 771            title = drawing.Title,
 772            drawingAt = dateDrawingAt,
 773            time = drawing.Time,
 774            name = drawing.Name,
 775            product_type = drawing.ProductType,
 776            product_name = drawing.ProductName,
 777            list_comments = drawing.ListComments,
 778            list_comments_pros = drawing.ListCommentsPros,
 779            list_comments_cons = drawing.ListCommentsCons,
 780            list_comments_style = drawing.ListCommentsStyle,
 781            views = drawing.Views,
 782            likes = drawing.Likes,
 783            filter = drawing.Filter,
 784            model_name = drawing.ModelName,
 785            favorite = drawing.Favorite,
 786            reference_url = drawing.ReferenceUrl,
 787            twitter_url = drawing.TwitterUrl,
 788            instagram_url = drawing.InstagramUrl,
 789            path_thumbnail = drawing.PathThumbnail,
 790            software = drawing.Software,
 791            paper = drawing.Paper,
 792            spotify_url = drawing.SpotifyUrl,
 793            tags = drawing.Tags,
 794            votes_popular = drawing.VotesPopular,
 795            score_critic = drawing.ScoreCritic,
 796            score_popular = drawing.ScorePopular,
 797            visible = drawing.Visible
 798        };
 99    }
 100}