예제 #1
0
        /// <summary>
        /// Recupere  la resource dans la langue de definie dans la session
        /// </summary>
        /// <param name="pNom">Resssource rechercher</param>
        /// <param name="pInfoSession">Info sur la sessions</param>
        /// <returns>Ressource traduide dans la langue de la session</returns>
        /// <remarks>LOUIS Yoann 19/02/2016</remarks>
        public static string GetRessource(string pNom, InfoSessionDTO pInfoSession)
        {
            // yl - SI pas de culture eon retourn du français
            var lCulture = pInfoSession.Culture;

            // yl - Recuperation de la ressource
            return(_ResourceManager.GetString(pNom, System.Globalization.CultureInfo.GetCultureInfo(lCulture)));
        }
        /// <summary>
        /// Convertie une exception en ExceptionDTO et effectue la
        /// </summary>
        /// <param name="pEx">Exception</param>
        /// <param name="pInfoSession">information sur la session en cours</param>
        /// <returns>ExceptionDTO</returns>
        /// <remarks>LOUIS Yoann 19/02/2016</remarks>
        public static ExceptionDTO GetExceptionDTO(Exception pEx, InfoSessionDTO pInfoSession)
        {
            // yl - convertie l'exception en DTO
            var lDTO = DTOLibrary.Helper.ExceptionToExceptionDTOHelper.ConvertToExceptionDTO(pEx);

            // yl - convertie le message dans la bonne lange et le revoie.
            return(GetExceptionRecupMessage(lDTO, pInfoSession));
        }
예제 #3
0
        /// <summary>
        /// Ecrire le log
        /// </summary>
        /// <param name="pLogLevel">Niveau du log</param>
        /// <param name="pInfoSession">InfoSession</param>
        /// <param name="pModule">Nom du module</param>
        /// <param name="pMessage">Message</param>
        /// <remarks>LOUIS Yoann 24/09/2015</remarks>
        private static void WriteLogInternal(LogLevel pLogLevel, InfoSessionDTO pInfoSession, string pModule, string pMessage)
        {
            var ltest = GetCallingMethodeName();

            // yl - Creation d'un Log
            LogEventInfo lLogEvent = new LogEventInfo(pLogLevel, "", pMessage);

            // yl - Affectation des property
            lLogEvent.Properties["Methode"] = GetCallingMethodeFullName();
            lLogEvent.Properties["Module"]  = pModule;
            lLogEvent.Properties["Agent"]   = pInfoSession == null ? "null" : pInfoSession.User == null ? "null" : pInfoSession.User.Login;
            // yl - Ecriture du log
            mLogger.Log(lLogEvent);
        }
        /// <summary>
        /// Traduit les message de l'exception et de ses innerexception de manierre recurcive
        /// </summary>
        /// <param name="pEx">ExceptionDTO</param>
        /// <param name="pInfoSession">Information sur la session</param>
        /// <returns>ExceptionDTO traduit</returns>
        /// <remarks>LOUIS Yoann 19/02/2016</remarks>
        private static ExceptionDTO GetExceptionRecupMessage(ExceptionDTO pEx, InfoSessionDTO pInfoSession)
        {
            // yl - Gestion de l'onner exception
            if (pEx.InnerException != null)
            {
                pEx.InnerException = GetExceptionRecupMessage(pEx.InnerException, pInfoSession);
            }
            // yl - Traduction du message (uniquement si besoin)
            if (pEx.Message.Contains("[Ressource]"))
            {
                pEx.Message = GetMessage(pEx.Message, pInfoSession);
            }

            return(pEx);
        }
예제 #5
0
        /// <summary>
        /// Supprimer des elment
        /// </summary>
        /// <param name="pCritere">Critere des element a suppruimer</param>
        /// <remarks>LOUIS YOANN 24/06/2015</remarks>
        public virtual void RemoveItems(InfoSessionDTO pInfoSession, IBaseDTO pCritere)
        {
            try
            {
                // yl - Log
                WriteDebugLogger(pInfoSession);

                DALType lService = new DALType();
                // yl - remove
                lService.RemoveItems(pCritere as CritereDTOType);
            }
            catch (Exception lEx)
            {
                WriteErrorLogger(pInfoSession, lEx);
                throw (ExceptionType)Activator.CreateInstance(typeof(ExceptionType), lEx);
            }
        }
예제 #6
0
        /// <summary>
        /// Méthode permettant d'appeler la méthode correspondante
        /// au critère en paramètre
        /// </summary>
        /// <param name="pMethod">Méthode à appeler</param>
        /// <remarks>Guillaume Bécard - 2015-06-24 - Création</remarks>
        public virtual void ExecuteVoid(InfoSessionDTO pInfoSession, DTOLibrary.Methodes.MethodDTO pMethod)
        {
            try
            {
                // yl - Log
                WriteDebugLogger(pInfoSession);

                //gb - Récupération du type en cours
                Type lType = this.GetType();
                //gb - Récupération de la méthode à appeler
                MethodInfo lInfoMethod = lType.GetMethod(pMethod.NomMethode, BindingFlags.NonPublic | BindingFlags.Instance);
                //gb - Appel de la méthode
                lInfoMethod.Invoke(this, new object[] { pMethod.Parametrage });
            }
            catch (Exception lEx)
            {
                WriteErrorLogger(pInfoSession, lEx);
                throw (ExceptionType)Activator.CreateInstance(typeof(ExceptionType), lEx);
            }
        }
예제 #7
0
        /// <summary>
        /// Fonction permettant de retourner l'objet
        /// correspondant au critère de sélection
        /// </summary>
        /// <param name="pCritere">Critère de sélection</param>
        /// <returns>Objet DTO</returns>
        /// <remarks>Guillaume Bécard - 2015-06-24 - Création</remarks>
        public virtual IBaseDTO GetItem(InfoSessionDTO pInfoSession, IBaseDTO pCritere)
        {
            try
            {
                // yl - Log
                WriteDebugLogger(pInfoSession);

                // yl - Validation Critere
                this.ValidatedCritere(pCritere);

                //gb - Déclaration du service
                DALType lService = new DALType();
                //gb - Appel de la fonction de récupération de l'item
                return(lService.GetItem(pCritere as CritereDTOType));
            }
            catch (Exception lEx)
            {
                WriteErrorLogger(pInfoSession, lEx);
                throw (ExceptionType)Activator.CreateInstance(typeof(ExceptionType), lEx);
            }
        }
예제 #8
0
        /// <summary>
        /// Update une liste de DTO
        /// </summary>
        /// <param name="pEntities">liste de DTO a mettre a jour</param>
        /// <remarks>LOUIS YOANN 24/06/2015</remarks>
        public virtual void UpdateItems(InfoSessionDTO pInfoSession, IEnumerable <IBaseDTO> pEntities)
        {
            try
            {
                // yl - Log
                WriteDebugLogger(pInfoSession);

                // yl - Validation Entity
                pEntities.ToList().ForEach(this.ValidatedDTO);

                // yl - msie en place du service
                DALType lService = new DALType();
                // yl - Cast
                var lEntity = pEntities.Cast <DTOType>();
                // yl - Update
                lService.UpdateItems(lEntity);
            }
            catch (Exception lEx)
            {
                WriteErrorLogger(pInfoSession, lEx);
                throw (ExceptionType)Activator.CreateInstance(typeof(ExceptionType), lEx);
            }
        }
예제 #9
0
        /// <summary>
        /// Fonction permettant de retourner la liste des items
        /// en fonction du critère de sélection
        /// </summary>
        /// <param name="pCritere">Critère de sélection</param>
        /// <returns>Liste d'objet DTO</returns>
        /// <remarks>Guillaume Bécard - 2015-06-24 - Création</remarks>
        public virtual IEnumerable <IBaseDTO> GetItems(InfoSessionDTO pInfoSession, IBaseDTO pCritere)
        {
            try
            {
                // yl - Log
                WriteDebugLogger(pInfoSession);

                // yl - Validation Critere
                this.ValidatedCritere(pCritere);

                //gb - Déclaration du service
                DALType lService = new DALType();
                //gb - Appel de la fonction de récupération des items
                return(lService.GetItems(pCritere as CritereDTOType).List.Cast <IBaseDTO>());
            }
            catch (Exception lEx)
            {
                // yl - ecriture d'un log d'erreur
                WriteErrorLogger(pInfoSession, lEx);
                // yl - on leve une exception de type ExceptionType avec en iner exception l'exception catcher
                throw (ExceptionType)Activator.CreateInstance(typeof(ExceptionType), lEx);
            }
        }
예제 #10
0
        /// <summary>
        /// Update un DTO
        /// </summary>
        /// <param name="pEntity">DTO a lmettre a jour</param>
        /// <remarks>LOUIS YOANN 24/06/2015</remarks>
        public virtual void UpdateItem(InfoSessionDTO pInfoSession, IBaseDTO pEntity)
        {
            try
            {
                // yl - Log
                WriteDebugLogger(pInfoSession);

                // yl - Validation Entity
                this.ValidatedDTO(pEntity);

                // yl - msie en place du service
                DALType lService = new DALType();
                // yl - Cast
                var lEntity = (DTOType)pEntity;
                // yl - Update
                lService.UpdateItem(lEntity);
            }
            catch (Exception lEx)
            {
                WriteErrorLogger(pInfoSession, lEx);
                throw (ExceptionType)Activator.CreateInstance(typeof(ExceptionType), lEx);
            }
        }
        /// <summary>
        /// Recupere le message traduit si besoins
        /// </summary>
        /// <param name="pMessage">message a traduire eventuellemnt</param>
        /// <param name="pInfoSession">Information sur la session</param>
        /// <returns>message traduit</returns>
        /// <remarks>LOUIS Yoann - 18/02/2016</remarks>
        private static string GetMessage(string pMessage, InfoSessionDTO pInfoSession)
        {
            var lResult = "";
            // yl - Split du message
            var lListMessage = pMessage.Split('|');

            // yl - pour chaque message
            lListMessage.ToList().ForEach(p =>
            {
                // yl - si il y a la balise [Ressource]
                if (p.Contains("[Ressource]"))
                {
                    // yl - on traduit et on rajoute au message déjà recuperer
                    lResult = lResult + RessourceHelper.GetRessource(p.Replace("[Ressource]", ""), pInfoSession);
                }
                else
                {
                    // yl - on rajoute au message déjà recuperer
                    lResult = lResult + p;
                }
            });
            // yl - on retourne le message
            return(lResult);
        }
예제 #12
0
        /// <summary>
        /// Recupere les resources dans la langue de la session
        /// </summary>
        /// <param name="pCritere">Critere de recherche</param>
        /// <param name="pInfoSession">Information sur la session</param>
        /// <returns>Liste de RessourceDTO</returns>
        /// <remarks>LOUIS Yoann 19/02/2016</remarks>
        public static List <RessourceDTO> GetListRessources(CritereRessourceDTO pCritere, InfoSessionDTO pInfoSession)
        {
            var lResult = new List <RessourceDTO>();

            var lCulture = System.Globalization.CultureInfo.GetCultureInfo(pInfoSession.Culture);

            pCritere.ListNomRessource.ToList().ForEach(pNom =>
            {
                // yl - Recuperation de la ressource
                lResult.Add(new RessourceDTO()
                {
                    Value   = _ResourceManager.GetString(pNom, lCulture),
                    Nom     = pNom,
                    Culture = pInfoSession.Culture
                });
            });

            return(lResult);
        }
예제 #13
0
 /// <summary>
 /// Ecrie un log avec le nom de la methode et le DTO qui va avec
 /// </summary>
 /// <param name="pInfoSession">info sur la session</param>
 /// <param name="pNameMethode">Nom de la methode</param>
 /// <remarks>LOUIS Yoann 24/09/2015</remarks>
 private void WriteDebugLogger(InfoSessionDTO pInfoSession)
 {
     // yl - Ecrie le log
     CLogger.WriteDebugLog(pInfoSession, this.GetType().Name + ".<" + typeof(DTOType).Name + ">" + CLogger.GetCallingMethodeName(), "Debug");
 }
예제 #14
0
 /// <summary>
 /// Ecrie un log avec le nom de la methode et le DTO qui va avec
 /// </summary>
 /// <param name="pInfoSession">info sur la session</param>
 /// <param name="pNameMethode">Nom de la methode</param>
 /// <remarks>LOUIS Yoann 24/09/2015</remarks>
 private void WriteErrorLogger(InfoSessionDTO pInfoSession, Exception pEx)
 {
     // yl - Ecrie le log
     CLogger.WriteErrorLog(pInfoSession, this.GetType().Name + ".<" + typeof(DTOType).Name + ">" + CLogger.GetCallingMethodeName(), CLogger.GetMessageException(pEx));
 }
예제 #15
0
 /// <summary>
 /// Ecrire un log Fatal
 /// </summary>
 /// <param name="pInfoSession">Info de la Session</param>
 /// <param name="pModule">Module enb cours</param>
 /// <param name="pMessage">Message</param>
 /// <remarks>LOUIS Yoann 24/09/2015</remarks>
 public static void WriteFatalLog(InfoSessionDTO pInfoSession, string pModule, string pMessage)
 {
     // yl - Ecriture du log
     WriteLogInternal(LogLevel.Fatal, pInfoSession, pModule, pMessage);
 }
예제 #16
0
 /// <summary>
 /// Sauvegarde de l'infoSession
 /// </summary>
 /// <param name="pInfoSession">InfoSession A sauvegarder</param>
 protected void SaveInfoSession(InfoSessionDTO pInfoSession)
 {
     // yl - Sauvegarde de l'infosession
     Session["InfoSession"] = pInfoSession;
 }
예제 #17
0
 /// <summary>
 /// Ecrie un log avec le nom de la methode et le DTO qui va avec
 /// </summary>
 /// <param name="pInfoSession">info sur la session</param>
 /// <param name="pNameMethode">Nom de la methode</param>
 /// <remarks>LOUIS Yoann 24/09/2015</remarks>
 private void WriteInfoLogger(InfoSessionDTO pInfoSession, string pMessage)
 {
     // yl - Ecrie le log
     CLogger.WriteInfoLog(pInfoSession, this.GetType().Name + ".<" + typeof(DTOType).Name + ">" + CLogger.GetCallingMethodeName(), pMessage);
 }