void Updatefrm_CallBack(object sender, CustumEventArgs e)
        {
            List <CsCoper_Type_Compte> CompteSpecifiqueRecuToUpdate = new List <CsCoper_Type_Compte>();

            CompteSpecifiqueRecuToUpdate.Add((CsCoper_Type_Compte)e.Bag);
            Save(CompteSpecifiqueRecuToUpdate, new List <CsCoper_Type_Compte>(), new List <CsCoper_Type_Compte>());

            if (CompteSpecifiqueRecuToUpdate.Select(l => l.PK_ID).Contains(((CsCoper_Type_Compte)e.Bag).PK_ID))
            {
                //CsCoper_Type_Compte LotsScelleRecuToUpdate_ = CompteSpecifiqueRecuToUpdate.FirstOrDefault(l => l.PK_ID == ((CsCoper_Type_Compte)e.Bag).PK_ID);
                //int indexOfLotsScelleRecuToUpdate_ = CompteSpecifiqueRecuToUpdate.IndexOf(LotsScelleRecuToUpdate_);
                //CompteSpecifiqueRecuToUpdate[indexOfLotsScelleRecuToUpdate_] = (CsCoper_Type_Compte)e.Bag;

                CsCoper_Type_Compte LotsScelleRecuToUpdate = ListeCompteSpecifique.FirstOrDefault(l => l.PK_ID == ((CsCoper_Type_Compte)e.Bag).PK_ID);
                int indexOfLotsScelleRecuToUpdate          = ListeCompteSpecifique.IndexOf(LotsScelleRecuToUpdate);
                ListeCompteSpecifique[indexOfLotsScelleRecuToUpdate] = (CsCoper_Type_Compte)e.Bag;

                //SessionObject.ListeCompteSpecifique = ListeCompteSpecifique.ToList();
                LoadDatagrid();
            }
            else
            {
                CompteSpecifiqueRecuToUpdate.Add((CsCoper_Type_Compte)e.Bag);
                Save(CompteSpecifiqueRecuToUpdate, new List <CsCoper_Type_Compte>(), new List <CsCoper_Type_Compte>());


                CsCoper_Type_Compte LotsScelleRecuToUpdate = ListeCompteSpecifique.FirstOrDefault(l => l.PK_ID == ((CsCoper_Type_Compte)e.Bag).PK_ID);
                int indexOfLotsScelleRecuToUpdate          = ListeCompteSpecifique.IndexOf(LotsScelleRecuToUpdate);
                ListeCompteSpecifique[indexOfLotsScelleRecuToUpdate] = (CsCoper_Type_Compte)e.Bag;

                //SessionObject.ListeCompteSpecifique = ListeCompteSpecifique.ToList();
            }
        }
        private void DeleteButton_Click(object sender, RoutedEventArgs e)
        {
            var messageBox = new MessageBoxControl.MessageBoxChildWindow("Attention", "Ête-vous sure de vouloire supprimer la ligne?", MessageBoxControl.MessageBoxButtons.OkCancel, MessageBoxControl.MessageBoxIcon.Information);

            messageBox.OnMessageBoxClosed += (_, result) =>
            {
                if (messageBox.Result == MessageBoxResult.OK)
                {
                    CsCoper_Type_Compte redevenceSelectionne = (CsCoper_Type_Compte)dgListeCompteSpecifique.SelectedItem;


                    if (redevenceSelectionne != null)
                    {
                        List <CsCoper_Type_Compte> CompteSpecifiqueRecuToDelete = new List <CsCoper_Type_Compte>();
                        CompteSpecifiqueRecuToDelete.Add(redevenceSelectionne);
                        Save(new List <CsCoper_Type_Compte>(), new List <CsCoper_Type_Compte>(), CompteSpecifiqueRecuToDelete);


                        ListeCompteSpecifique.Remove(redevenceSelectionne);

                        //SessionObject.ListeCompteSpecifique = ListeCompteSpecifique.ToList();
                        LoadDatagrid();
                    }
                    else
                    {
                        Message.ShowInformation("Veuillez selection une ligne", "Avertissement");
                    }
                }
                else
                {
                    return;
                }
            };
            messageBox.Show();
        }
        public void Save(List <CsCoper_Type_Compte> CompteSpecifiqueRecuToUpdate, List <CsCoper_Type_Compte> CompteSpecifiqueRecuToInserte, List <CsCoper_Type_Compte> CompteSpecifiqueRecuToDelete)
        {
            try
            {
                InterfaceComptableServiceClient service = new InterfaceComptableServiceClient(Utility.ProtocoleIndex(), Utility.EndPoint("InterfaceComptable"));
                int handler = LoadingManager.BeginLoading("Mise à jour des données ...");
                service.SaveCoper_Type_CompteAsync(CompteSpecifiqueRecuToUpdate, CompteSpecifiqueRecuToInserte, CompteSpecifiqueRecuToDelete);
                service.SaveCoper_Type_CompteCompleted += (er, res) =>
                {
                    try
                    {
                        if (res.Error != null || res.Cancelled)
                        {
                            Message.Show("Erreur dans le traitement des méthode de dectection : " + res.Error.InnerException.ToString(), "Erreur");
                        }
                        else
                        if (res.Result != null)
                        {
                            if (res.Result > 0)
                            {
                                CsCoper_Type_Compte CompteSpecifique = ListeCompteSpecifique.FirstOrDefault(l => l.PK_ID == 0);
                                if (CompteSpecifique != null)
                                {
                                    int index = ListeCompteSpecifique.IndexOf(CompteSpecifique);
                                    CompteSpecifique.PK_ID       = res.Result;
                                    ListeCompteSpecifique[index] = CompteSpecifique;
                                }

                                LoadDatagrid();
                            }
                            else
                            {
                                Message.Show("Sauvegarde non effectué avec succes,il se peut vos modification n'est pas été pris en conte",
                                             "Info");
                            }
                        }
                        else
                        {
                            Message.Show("Une erreur s'est produite, veuillez consultez le journal des erreurs",
                                         "Erreur");
                        }
                        LoadingManager.EndLoading(handler);
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                };
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        void mnitem_Click(object sender, RoutedEventArgs e)
        {
            MenuItem mnitem = (MenuItem)sender;

            switch (mnitem.Header.ToString())
            {
            case "Créer":
                FrmCompteSpecifique Newfrm = new FrmCompteSpecifique();
                Newfrm.CallBack += Newfrm_CallBack;
                Newfrm.Show();
                break;

            case "Consultation":
                //new FrmCompteSpecifique((CsCoper_Type_Compte)dgListeCompteSpecifique.SelectedItem).Show();
                break;

            case "Modification":
                //FrmCompteSpecifique Updatefrm = new FrmCompteSpecifique((CsCoper_Type_Compte)dgListeCompteSpecifique.SelectedItem, true);
                //Updatefrm.CallBack += Updatefrm_CallBack;
                //Updatefrm.Show();
                break;

            case "Supprimer":
                var messageBox = new MessageBoxControl.MessageBoxChildWindow("Attention", "Ête-vous sure de vouloire supprimer la ligne?", MessageBoxControl.MessageBoxButtons.OkCancel, MessageBoxControl.MessageBoxIcon.Information);
                messageBox.OnMessageBoxClosed += (_, result) =>
                {
                    if (messageBox.Result == MessageBoxResult.OK)
                    {
                        CsCoper_Type_Compte LotsScelleRecuToDelete = (CsCoper_Type_Compte)dgListeCompteSpecifique.SelectedItem;
                        CompteSpecifiqueRecuToDelete.Add(LotsScelleRecuToDelete);
                        ListeCompteSpecifique.Remove(LotsScelleRecuToDelete);
                        LoadDatagrid();
                    }
                    else
                    {
                        return;
                    }
                };
                messageBox.Show();
                break;

            default:
                break;
            }
        }