示例#1
0
        /// <summary>
        /// Modifie les visites de la base centrale
        /// </summary>
        private void SynchronisationModification()
        {
            var repoVisiteCentrale = new VisiteRepositoryCentrale();
            var repoVisiteLocale   = new VisiteRepository();

            var visitesCentrales = repoVisiteCentrale.GetAll();

            var visitesLocales = repoVisiteLocale.GetWithAnUpdateDate();

            foreach (var visite in visitesLocales)
            {
                var temp = visitesCentrales.FirstOrDefault(w => w.Guid == visite.Guid);
                if (temp != null)
                {
                    //DateTime fromLocale = DateTime.Parse();
                    //DateTime fromCentrale = DateTime.Parse();
                    if (temp.DateUpdate.HasValue)
                    {
                        int result = DateTime.Compare(visite.DateUpdate.Value, temp.DateUpdate.Value);

                        // Si la date locale est supérieur à la date centrale
                        if (result > 0)
                        {
                            repoVisiteCentrale.Update(visite);
                        }
                    }
                    else
                    {
                        repoVisiteCentrale.Update(visite);
                    }
                }
            }
        }
示例#2
0
        /// <summary>
        /// Recopie toutes les visites de la base centrale dans la base locale
        /// </summary>
        private void RapatriementBaseCentrale()
        {
            var repoVisiteCentrale = new VisiteRepositoryCentrale();
            var repoVisiteLocale   = new VisiteRepository();

            repoVisiteLocale.DeleteAll();

            repoVisiteLocale.AddRange(repoVisiteCentrale.GetAll());
        }
示例#3
0
        /// <summary>
        /// Supprime les visites de la base centrale
        /// </summary>
        private void SynchronisationSuppression()
        {
            var repoVisiteCentrale = new VisiteRepositoryCentrale();
            var repoVisiteLocale   = new VisiteRepository();

            // Pour la suppresion, un champ de la ligne de visite est setter a true, il n'y as pas de vrai suppresion pour éviter
            // les conflits avec les possibles autres modifications, un système de purge est mis en place pour éviter ça
            var visitesLocales = repoVisiteLocale.GetDeleted();

            repoVisiteCentrale.FakeDelete(visitesLocales);
        }
示例#4
0
        /// <summary>
        /// Ajoute les nouvelles visites à la base centrale
        /// </summary>
        private void SynchronisationAjout()
        {
            var visiteToAdd        = new List <Visite>();
            var repoVisiteCentrale = new VisiteRepositoryCentrale();
            var repoVisiteLocale   = new VisiteRepository();

            var visitesCentrales = repoVisiteCentrale.GetAll();
            var visitesLocales   = repoVisiteLocale.GetAll();

            foreach (var visiteLocale in visitesLocales)
            {
                var matchs = visitesCentrales.Where(w => w.Guid == visiteLocale.Guid).ToList();
                if (matchs.IsNullOrEmpty())
                {
                    visiteToAdd.Add(visiteLocale);
                }
            }

            repoVisiteCentrale.AddRange(visiteToAdd);
        }
示例#5
0
        /// <summary>
        /// Supprime toutes les données qui ont IsDeleted a true si jamais leur nombre est supérieur à 500
        /// </summary>
        public static void Purge()
        {
            var repoVisiteCentrale = new VisiteRepositoryCentrale();
            var repoVisiteLocale   = new VisiteRepository();

            try
            {
                var deletedVisitesCentrale = repoVisiteCentrale.GetDeleted();
                if (deletedVisitesCentrale.Count > 500)
                {
                    repoVisiteCentrale.RemoveRange(deletedVisitesCentrale);
                }

                var deletedVisitesLocale = repoVisiteLocale.GetDeleted();
                if (deletedVisitesLocale.Count > 500)
                {
                    repoVisiteLocale.RemoveRange(deletedVisitesLocale);
                }
            }
            catch (Exception ex)
            {
            }
        }