• 20 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 29/06/2017

Construisez une API simple pour manipuler le modèle

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Téléchargez le fichier d'audiodescription : Partie 4, Chapitre 4
Vous trouverez sous la vidéo les codes source du cours.

Code Source

IFichesClientService.cs

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace FichesClientWCFService
{
    [ServiceContract]
    public interface IFichesClientService
    {
        [OperationContract]
        ObservableCollection<FicheClient> GetFiches();

        [OperationContract]
        ObservableCollection<FicheClient> GetFichesClientsMasculins();

        [OperationContract]
        bool AjoutFicheClient();

        [OperationContract]
        bool SuppressionFicheClient(FicheClient fiche);

        [OperationContract]
        bool ModificationFicheClient(FicheClient fiche);

    }

    [DataContract]
    public class FicheClient : INotifyPropertyChanged
    {
        string nom;

        string prenom;

        string sexe;

        int age;

        public event PropertyChangedEventHandler PropertyChanged;

        [DataMember]
        public string Nom
        {
            get
            {
                return nom;
            }

            set
            {
                if (nom != value)
                {
                    nom = value;
                    NotifyPropertyChanged();
                }
            }
        }

        [DataMember]
        public string Prenom
        {
            get
            {
                return prenom;
            }

            set
            {
                if (prenom != value)
                {
                    prenom = value;
                    NotifyPropertyChanged();
                }
            }
        }

        [DataMember]
        public string Sexe
        {
            get
            {
                return sexe;
            }

            set
            {
                if (sexe != value)
                {
                    sexe = value;
                    NotifyPropertyChanged();
                }
            }
        }

        [DataMember]
        public int Age
        {
            get
            {
                return age;
            }

            set
            {
                if (age != value)
                {
                    age = value;
                    NotifyPropertyChanged();
                }
            }
        }

        public void NotifyPropertyChanged([CallerMemberName] string str="")
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(str));
        }
    }   
}

FicheClientsService.svc.cs

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace FichesClientWCFService
{
    public class FichesClientsService : IFichesClientService
    {
        public bool AjoutFicheClient()
        {
            try
            {
                using (var entities = new FichesClientsEntities())
                {
                    entities.Clients.Add(new Client()
                    {
                        Nom = "Ajout",
                        Prenom = "Ajout",
                        Age = 0,
                        Sexe = "M"
                    });

                    entities.SaveChanges();
                }
                return true;
            }
            catch
            {
                return false;
            }
        }
        public ObservableCollection<FicheClient> GetFiches()
        {
            ObservableCollection<FicheClient> collec = null;

            using (var entities = new FichesClientsEntities())
            {
                collec = new ObservableCollection<FicheClient>(entities.Clients.Select(
                    client => new FicheClient()
                    {
                        Nom = client.Nom,
                        Prenom = client.Prenom,
                        Age = client.Age.Value,
                        Sexe = client.Sexe
                    }
                    ));
            }

            return collec;
        }

        public ObservableCollection<FicheClient> GetFichesClientsMasculins()
        {
            ObservableCollection<FicheClient> collec = null;

            using (var entities = new FichesClientsEntities())
            {
                collec = new ObservableCollection<FicheClient>(entities.Clients.Where(c => c.Sexe == "M").Select(
                    client => new FicheClient()
                    {
                        Nom = client.Nom,
                        Prenom = client.Prenom,
                        Age = client.Age.Value,
                        Sexe = client.Sexe
                    }
                    ));
            }

            return collec;
        }

        public bool ModificationFicheClient(FicheClient fiche)
        {
            try
            {
                using (var entities = new FichesClientsEntities())
                {
                    var ficheAModifier = entities.Clients.FirstOrDefault((client) =>
                         client.Nom == fiche.Nom && client.Prenom == fiche.Prenom);

                    if (ficheAModifier != null)
                    {
                        ficheAModifier.Sexe = fiche.Sexe;
                        ficheAModifier.Age = fiche.Age;

                        entities.SaveChanges();
                    }
                }
                return true;
            }
            catch
            {
                return false;
            }
        }

        public bool SuppressionFicheClient(FicheClient fiche)
        {
            try
            {
                using (var entities = new FichesClientsEntities())
                {
                    var fichesASupprimer = entities.Clients.Where((client) =>
                         client.Nom == fiche.Nom && client.Prenom == fiche.Prenom && client.Age == fiche.Age && client.Sexe == fiche.Sexe).ToArray();

                    entities.Clients.RemoveRange(fichesASupprimer);

                    entities.SaveChanges();
                }
                return true;
            }
            catch
            {
                return false;
            }
        }
    }
}
Exemple de certificat de réussite
Exemple de certificat de réussite