private void FormUserAgentPicker_Closed(object sender, EventArgs e)
        {
            try
            {
                var form = (Galatee.Silverlight.Workflow.UserAgentPickerAffectation)sender;
                if (form != null)
                {
                    if (form.AgentSelectionne != null && form.lAffectationDem != null)
                    {
                        var agent = form.AgentSelectionne;
                        if (agent != null)
                        {
                            this.TxtMatricule.Text = agent.MATRICULE;
                            this.TxtNomAgent.Text  = agent.LIBELLE;
                            this.TxtMatricule.Tag  = agent.PK_ID;

                            leAffectation = form.lAffectationDem;
                        }
                    }
                    else
                    {
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void EnregisterOuTransmettre(CsDemande laDemande, CsAffectationDemandeUser leAffectation, bool IsTransmetre)
        {
            try
            {
                laDemande.OrdreTravail = new CsOrdreTravail();
                laDemande.OrdreTravail.FK_IDADMUTILISATEUR = leAffectation.FK_IDUSERAFFECTER;
                laDemande.OrdreTravail.FK_IDDEMANDE        = laDemande.LaDemande.PK_ID;
                laDemande.OrdreTravail.LIBELLEAGENT        = this.TxtNomAgent.Text;
                laDemande.OrdreTravail.MATRICULE           = UserConnecte.matricule;
                laDemande.OrdreTravail.DATEDEBUTTRAVAUX    = System.DateTime.Today.Date;
                laDemande.OrdreTravail.DATEFINTRAVAUX      = System.DateTime.Today.Date;
                laDemande.OrdreTravail.PRESTATAIRE         = this.Txt_Prestataire.Text;

                AcceuilServiceClient clientDevis = new AcceuilServiceClient(Utility.ProtocoleFacturation(), Utility.EndPoint("Accueil"));
                clientDevis.ValiderOrdreDeTravailCompleted += (ss, b) =>
                {
                    if (b.Cancelled || b.Error != null)
                    {
                        string error = b.Error.Message;
                        Message.ShowError(error, Silverlight.Resources.Devis.Languages.txtDevis);
                        return;
                    }
                    if (string.IsNullOrEmpty(b.Result))
                    {
                        if (IsTransmetre)
                        {
                            Message.ShowInformation("Demande transmise avec succes", "Demande");
                        }
                        else
                        {
                            Message.ShowInformation("Mise a jour éffectué avec succes", "Demande");
                        }
                        this.DialogResult = false;
                    }
                    else
                    {
                        Message.ShowError(b.Result, "Demande");
                    }
                };
                clientDevis.ValiderOrdreDeTravailAsync(laDemande, leAffectation, IsTransmetre);
            }
            catch (Exception ex)
            {
                Message.ShowError(ex.Message, Galatee.Silverlight.Resources.Devis.Languages.txtDevis);
            }
        }
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (Dtg_agent.SelectedItem != null)
                {
                    this.BtnOK.IsEnabled = false;
                    //var agent = Dtg_agent.SelectedItem as CsRHabilitationGrouveValidation;
                    List <CsAffectationDemandeUser> lstAffectation = new List <CsAffectationDemandeUser>();
                    var agent = Dtg_agent.SelectedItem as Galatee.Silverlight.ServiceAccueil.CsUtilisateur;
                    //Affectation de la demande


                    if (IsOT && lAffectationDem != null)
                    {
                        CsAffectationDemandeUser lAffectation = new CsAffectationDemandeUser();
                        lAffectation.CODEDEMANDE           = CodeDemande;
                        lAffectation.FK_IDETAPE            = _idEtapeSuivante;
                        lAffectation.MATRICULEUSER         = agent.MATRICULE;
                        lAffectation.FK_IDUSERAFFECTER     = agent.PK_ID;
                        lAffectation.OPERATIONID           = _OperationID;
                        lAffectation.CENTREID              = _centreID;
                        lAffectation.WORKFLOWID            = _workflowId;
                        lAffectation.FK_IDETAPEFROM        = _idEtape;
                        lAffectation.MATRICULEUSERCREATION = UserConnecte.matricule;
                        lAffectation.PK_ID        = Guid.NewGuid();
                        lAffectation.FK_IDDEMANDE = IdDemande;

                        AgentSelectionne           = new ServiceAccueil.CsUtilisateur();
                        AgentSelectionne.MATRICULE = agent.MATRICULE;
                        AgentSelectionne.PK_ID     = agent.PK_ID;
                        AgentSelectionne.LIBELLE   = agent.LIBELLE;
                        lAffectationDem            = lAffectation;
                        this.DialogResult          = false;
                    }
                    else
                    {
                        foreach (int item in LesCodeDemande)
                        {
                            CsAffectationDemandeUser lAffectation = new CsAffectationDemandeUser();
                            lAffectation.CODEDEMANDE           = CodeDemande;
                            lAffectation.FK_IDETAPE            = _idEtapeSuivante;
                            lAffectation.MATRICULEUSER         = agent.MATRICULE;
                            lAffectation.FK_IDUSERAFFECTER     = agent.PK_ID;
                            lAffectation.OPERATIONID           = _OperationID;
                            lAffectation.CENTREID              = _centreID;
                            lAffectation.WORKFLOWID            = _workflowId;
                            lAffectation.FK_IDETAPEFROM        = _idEtape;
                            lAffectation.MATRICULEUSERCREATION = UserConnecte.matricule;
                            lAffectation.PK_ID        = Guid.NewGuid();
                            lAffectation.FK_IDDEMANDE = item;
                            lstAffectation.Add(lAffectation);
                        }

                        int back = LoadingManager.BeginLoading("Affectation en cours ...");
                        Galatee.Silverlight.ServiceAccueil.AcceuilServiceClient client = new Galatee.Silverlight.ServiceAccueil.AcceuilServiceClient(Utility.ProtocoleFacturation(), Utility.EndPoint("Accueil"));
                        client.AffecterDemandeCompleted += (af_sender, args) =>
                        {
                            LoadingManager.EndLoading(back);
                            if (args.Cancelled || args.Error != null)
                            {
                                string error = args.Error.Message;
                                Message.ShowError(error, Languages.txtDevis);
                                return;
                            }
                            if (args.Result == null)
                            {
                                Message.ShowError("Une erreur est survenue", Languages.txtDevis);
                                return;
                            }
                            if (args.Result != null)
                            {
                                if (string.IsNullOrEmpty(args.Result))
                                {
                                    LoadingManager.EndLoading(back);
                                    Message.ShowInformation("Affectation", "Affectation de demande");
                                    this.DialogResult = false;
                                }
                                else
                                {
                                    LoadingManager.EndLoading(back);
                                    Message.ShowError("Affectation", "Erreur survenue à l'affectation");
                                }
                                this.DialogResult = true;
                            }
                        };
                        client.AffecterDemandeAsync(lstAffectation);
                    }
                }
            }
            catch (Exception ex)
            {
                Message.ShowError(ex.Message, Languages.txtDevis);
            }
        }
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (Dtg_agent.SelectedItem != null)
                {
                    this.BtnOK.IsEnabled = false;
                    //var agent = Dtg_agent.SelectedItem as CsRHabilitationGrouveValidation;
                    var agent = Dtg_agent.SelectedItem as Galatee.Silverlight.ServiceAccueil.CsUtilisateur;
                    //Affectation de la demande
                    CsAffectationDemandeUser lAffectation = new CsAffectationDemandeUser();
                    lAffectation.CODEDEMANDE           = CodeDemande;
                    lAffectation.FK_IDETAPE            = _infoNextStep.Key.FK_IDETAPE;
                    lAffectation.MATRICULEUSER         = agent.LOGINNAME;
                    lAffectation.OPERATIONID           = _OperationID;
                    lAffectation.CENTREID              = _centreID;
                    lAffectation.WORKFLOWID            = _workflowId;
                    lAffectation.FK_IDETAPEFROM        = _idEtape;
                    lAffectation.MATRICULEUSERCREATION = UserConnecte.matricule;
                    lAffectation.PK_ID = Guid.NewGuid();


                    int back = LoadingManager.BeginLoading("Affectation en cours ...");

                    //On transmet d'abod la demnde avant de l'affecté
                    //Tout est bon on transmet la demande
                    WorkflowClient Wkfclient = new WorkflowClient(Utility.Protocole(), Utility.EndPoint("Workflow"));
                    Wkfclient.Endpoint.Binding.OpenTimeout  = new TimeSpan(0, 1, 0);
                    Wkfclient.Endpoint.Binding.CloseTimeout = new TimeSpan(5, 0, 0);
                    Wkfclient.Endpoint.Binding.SendTimeout  = new TimeSpan(5, 0, 0);

                    Wkfclient.ExecuterActionSurPlusieursDemandesCompleted += (ssender, wargs) =>
                    {
                        LoadingManager.EndLoading(back);
                        if (wargs.Cancelled || wargs.Error != null)
                        {
                            string error = wargs.Error.Message;
                            Message.Show(error, "Affectation Demande");
                            return;
                        }
                        if (wargs.Result == null)
                        {
                            Message.ShowError(Languages.msgErreurChargementDonnees, "Affectation demande");
                            return;
                        }
                        if (wargs.Result.StartsWith("ERR"))
                        {
                            Message.ShowError(wargs.Result, "Affectation demande");
                        }
                        else
                        {
                            ParametrageClient client = new ParametrageClient(Utility.Protocole(), Utility.EndPoint("Parametrage"));
                            client.AffecterDemandeCompleted += (af_sender, args) =>
                            {
                                if (args.Cancelled || args.Error != null)
                                {
                                    string error = args.Error.Message;
                                    Message.ShowError(error, Languages.txtDevis);
                                    return;
                                }
                                if (args.Result == null)
                                {
                                    Message.ShowError("Une erreur est survenue", Languages.txtDevis);
                                    return;
                                }
                                if (args.Result != null)
                                {
                                    if (!args.Result)
                                    {
                                        LoadingManager.EndLoading(back);
                                        Message.ShowInformation("Une erreur est survenue", "Affectation de demande");
                                    }
                                    else
                                    {
                                        Message.ShowInformation(wargs.Result, "Affectation demande");
                                        List <ServiceAccueil.CsUtilisateur> leUser = new List <ServiceAccueil.CsUtilisateur>();
                                        leUser.Add(agent);
                                        //Shared.ClasseMEthodeGenerique.NotifierMailDemande(leUser, "0001", _NumDemande, "BRANCHEMENT NEUF ET ABONNEMENT");
                                        this.DialogResult = true;
                                    }
                                }
                            };
                            client.AffecterDemandeAsync(new List <CsAffectationDemandeUser>()
                            {
                                lAffectation
                            });
                        }
                    };
                    Wkfclient.ExecuterActionSurPlusieursDemandesAsync(LesCodeDemandeWkf, SessionObject.Enumere.TRANSMETTRE, UserConnecte.matricule, string.Empty);
                }
                else
                {
                    throw new Exception(Languages.msgEmptyUser);
                }
            }
            catch (Exception ex)
            {
                Message.ShowError(ex.Message, Languages.txtDevis);
            }
        }