IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Génération de log sur un update RIA


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut Génération de log sur un update RIA
    Les besoins sont les suivants:

    J'ai une application Silverlight toute simple qui utilise des RIA services pour les échanges.

    Pour les services RIA, j'ai simplement générer les DomainServices et j'ai obtenu un truc dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    namespace Projet.Web
    {
        using System;
        using System.Collections.Generic;
        using System.ComponentModel;
        using System.ComponentModel.DataAnnotations;
        using System.Data;
        using System.Linq;
        using System.ServiceModel.DomainServices.EntityFramework;
        using System.ServiceModel.DomainServices.Hosting;
        using System.ServiceModel.DomainServices.Server;
        using Projet.Web;
     
     
        // Implémente la logique d'application à l'aide du contexte ProjetEntities.
        // TODO: ajoutez votre logique d'application à ces méthodes ou dans d'autres méthodes.
        // TODO: connectez l'authentification (Windows/ASP.NET Forms) et supprimez les marques de commentaire suivantes pour désactiver l'accès anonyme
        // Ajoutez également des rôles pour limiter l'accès, selon le cas.
        // [RequiresAuthentication]
        /// <summary>
        /// ManagerService
        /// </summary>
        public partial class ManagerService : LinqToEntitiesDomainService<ProjetEntities>
        {
     
            // TODO:
            // appliquez une contrainte aux résultats de votre méthode query. Si vous avez besoin d'une entrée supplémentaire, vous pouvez
            // ajouter des paramètres à cette méthode ou créer d'autres méthodes query avec des noms différents.
            // Pour prendre en charge la pagination, vous devez ajouter un classement à la requête «*ADRESSE*».
            /// <summary>
            /// GetADRESSE()
            /// </summary>
            /// <returns>IQueryable ADRESSE </returns>
            public IQueryable<ADRESSE> GetADRESSE()
            {
                return this.ObjectContext.ADRESSE.Include("VILLE");
            }
     
            /// <summary>
            /// InsertADRESSE
            /// </summary>
            /// <param name="aDRESSE">ADRESSE</param>
            public void InsertADRESSE(ADRESSE aDRESSE)
            {
                if ((aDRESSE.EntityState != EntityState.Detached))
                {
                    this.ObjectContext.ObjectStateManager.ChangeObjectState(aDRESSE, EntityState.Added);
                }
                else
                {
                    if (this.ObjectContext.ADRESSE.FirstOrDefault(a => a.ADRESSE_NOM == aDRESSE.ADRESSE_NOM && a.ADRESSE_VILLE_ID == aDRESSE.ADRESSE_VILLE_ID) == null)
                        this.ObjectContext.ADRESSE.AddObject(aDRESSE);
                }
            }
     
            /// <summary>
            /// UpdateADRESSE
            /// </summary>
            /// <param name="currentADRESSE">ADRESSE</param>
            public void UpdateADRESSE(ADRESSE currentADRESSE)
            {
                this.ObjectContext.ADRESSE.AttachAsModified(currentADRESSE, this.ChangeSet.GetOriginal(currentADRESSE));
            }
     
            /// <summary>
            /// DeleteADRESSE
            /// </summary>
            /// <param name="aDRESSE">ADRESSE</param>
            public void DeleteADRESSE(ADRESSE aDRESSE)
            {
                if ((aDRESSE.EntityState != EntityState.Detached))
                {
                    this.ObjectContext.ObjectStateManager.ChangeObjectState(aDRESSE, EntityState.Deleted);
                }
                else
                {
                    this.ObjectContext.ADRESSE.Attach(aDRESSE);
                    this.ObjectContext.ADRESSE.DeleteObject(aDRESSE);
                }
            }
        }
    J'ai besoin de modifier ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void UpdateADRESSE(ADRESSE currentADRESSE)
            {
                this.ObjectContext.ADRESSE.AttachAsModified(currentADRESSE, this.ChangeSet.GetOriginal(currentADRESSE));
            }
    De sorte qu'à chaque Update les modifications apporter à l'entité soit sauvegarder et pouvoir tracer par qui.

    J'aimerai donc savoir si il existe une solution pour avoir la liste des modifications que je pourrais sauvegarder avec une solution telle que log4net.

    Merci d'avance pour vos réponses et vos pistes.

  2. #2
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    Bonjour,
    Pour moi, je ne vois pas d'autre solution que de créer ta propre table de "traces" des modifications apportée. C'est en tous cas comme celà que je traite ce genre de besoins.

    Bye

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    Ok, cela est déjà crée sur le serveur.

    Je n'ai pas trouvé d'autre idée, j'utilise bien Log4Net dans la méthode Update de mes entités.

    Par contre, ce que je n'aime toujours pas, c'est de prendre la dernière version sur le serveur de mes entités et de comparer champs par champs le modif.

    Existe-t-il un système pour comparer rapidement les différences entre 2 entités, et voir ainsi éclaircir mon code??

Discussions similaires

  1. [1.x] Log sur update ?
    Par seb_perl dans le forum Symfony
    Réponses: 1
    Dernier message: 30/11/2009, 09h10
  2. fichiers hs_err_pid####.log sur le bureau
    Par arfy dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 26/12/2005, 12h21
  3. [Oracle 9i] Triggers sur les updates de tables
    Par zestrellita dans le forum Oracle
    Réponses: 12
    Dernier message: 07/12/2005, 11h32
  4. svp un peu d'aide sur mon update, resumé simple en dessous
    Par hansaplast dans le forum Langage SQL
    Réponses: 11
    Dernier message: 14/11/2005, 10h14
  5. [debutant] Visualiser le log sur ma console
    Par nicoo dans le forum Logging
    Réponses: 7
    Dernier message: 21/09/2005, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo