Domanda

Ho bisogno di qualche consiglio su dove tracciare la linea con i miei servizi e repository.

public class Contact
{
     public Guid Id {get;set;}
     public string Username {get;set;}
     public Guid? AvatarId {get;set;}
     public Avatar Avatar {get;set;}
}

public class Avatar
{
     public Guid Id {get;set;}
     public string FullSizeImagePath {get;set;}
     public string ThumbnailSizeImagePath {get;set;}
}

Supponiamo che il modello Avatar verrà utilizzato solo su un modello di contatto e che si tratti di una proprietà opzionale al contatto. Il mio repository dovrebbe essere responsabile per l'aggiunta di un avatar al contatto o il livello aziendale / servizio dovrebbe estendere tale funzionalità? Si può sostenere che è un requisito aziendale avere un avatar, ma poiché fa parte del modello, il livello dei dati dovrebbe sapere come affrontarlo.

Ho proposto di aggiungere la funzionalità per aggiungere / aggiornare e rimuovere un avatar tramite il repository. Il livello aziendale / servizio sarebbe responsabile del salvataggio dei file fisici, della convalida e del chiamata dei metodi appropriati sul repository. Tutta il repository si preoccupa è il contatto appropriato e l'aggiunta di un avatar.

Il mio processo di pensiero era che poiché un avatar viene utilizzato solo a contatto, attualmente estendiamo il repository e aggiungiamo quindi funzionalità al DAL. Questo potrebbe essere utile per un'API separata.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top