Realizzare un sito in Silverlight 2.0: frontend e animazioni

6 pagine in totale: <<Indietro 1 [2] 3 4 5 6 Avanti >>

Esposizione dei dati: ADO.NET Data Service

Coma accennato nell'articolo su ADO.Net Data Service è possibile utilizzare qualsiasi classe del CLR come storage del servizio, è necessario solo rispettare poche e semplici regole.

La prima è esporre l'entità attraverso proprietà del tipo IQueryable<T>, la seconda risulta indispensabile solo se, come nel nostro caso, si ha la necessità di rendere disponibile mediante REST operazioni di tipo CRUD.

Definiamo tre semplici entità: EasyShopGalleryDirectory, EasyShopGalleryChildDirectory e EasyShopGalleryFile; la prima la rappresenta nel nostro Domain Model le cartelle di primo livello, le altre due rispettivamente le sottocartelle ed i file.

EasyShopGalleryDirectory espone le proprietà Name, Path, Directories e Files, rispettivamente il nome, il percorso, le sottocartelle e i files contenuti nella cartella del File System rappresentato.

L'oggetto EasyShopGalleryDirectory ha tre costruttori pubblici, il primo senza parametri, mentre i due overload rimanenti ne accettano rispettivamente uno ciascuno, una stringa per il percorso fisico della cartella ed un oggetto DirectoryInfo.

public EasyShopGalleryDirectory(string path) 
{ 
    if (string.IsNullOrEmpty(path)) 
        throw new DataServiceException("Percorso non valido"); 
    if (!path.StartsWith(FileManager.GalleryRootDirectory)) 
        throw new DataServiceException("Percorso non valido"); 
    try 
    { 
        _directoryInfo = new DirectoryInfo(path); 
    } 
    catch (Exception ex) 
    { 
        throw new DataServiceException("Impossibile portare a termine l'inizializzazione", ex); 
    } 
} 
public EasyShopGalleryDirectory(DirectoryInfo directoryInfo) 
{ 
    if (directoryInfo == null) 
        throw new DataServiceException("directoryInfo non può essere nullo"); 
    if (!directoryInfo.FullName.StartsWith(FileManager.GalleryRootDirectory)) 
        throw new DataServiceException("Percorso non valido"); 
    _directoryInfo = directoryInfo; 
}

È possibile enumerare le sottocartelle di un'istanza di EasyShopGalleryDirectory semplicemente accedendo alla proprietà Directories.

public IQueryable<EasyShopGalleryChildDirectory> Directories 
{ 
    get 
    { 
        if (_directoryInfo == null) 
        { 
            return new List<EasyShopGalleryChildDirectory>().AsQueryable(); 
        } 
        else 
        { 
            List<EasyShopGalleryChildDirectory> _directories = new List<EasyShopGalleryChildDirectory>(); 
            DirectoryInfo[] _directoriesInfo = _directoryInfo.GetDirectories(); 
            for (int i = 0; i < _directoriesInfo.Length; i++) 
            { 
                _directories.Add(new EasyShopGalleryChildDirectory(_directoriesInfo[i])); 
            } return _directories.AsQueryable(); 
        } 
    } 
} 

Il tipo EasyShopGalleryChildDirectory è del tutto analogo a EasyShopGalleryDirectory solo che il primo non espone la proprietà Directories, così da limitare la possibilità di creare e di conseguenza visualizzare un solo sottolivello di cartelle.

6 pagine in totale: <<Indietro 1 [2] 3 4 5 6 Avanti >>

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.



Segnala su: Facebook MSDN Social Twitter Segnalo Wikio Diggita Technorati Stumbleupon Google Yahoo FriendFeed Delicious Furl

TUTORIALS
TOP TEN ARTICOLI
ARTICOLI VIA E-EMAIL

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

MEDIA
IN EVIDENZA
MISC