コード例 #1
0
        //если файл есть в папке телефона и есть в бд
        public void UpdateIfInDbPhone(string fileComp, string pathComp, string pathComInPhon,
                                        PhoneModel findFileFromPhone,
                                            ComputerModel findFileFromComp)
        {
            var context = new SynchronContext();
            var nameComp = fileComp;
            var createComp = File.GetCreationTime(pathComp);
            var modificComp = File.GetLastWriteTime(pathComp);
            var namePhone = fileComp;
            var createPhone = File.GetCreationTime(pathComInPhon);
            var modificPhone = File.GetLastWriteTime(pathComInPhon);
            if (modificComp > modificPhone)
            {
                File.Delete(pathComInPhon);
                File.Copy(pathComp, pathComInPhon);
                findFileFromPhone.ModificationDate = modificComp;
            }
            else if (modificPhone > modificComp)
            {
                File.Delete(pathComp);
                File.Copy(pathComInPhon, pathComp);

                findFileFromComp.ModificationDate = modificPhone;

            }
            context.SaveChanges();
        }
コード例 #2
0
 //если файл есть в папке компьютера, но нет в бд
 public void UpdateIfNotInDbComp(string filePhon, string pathPhone, string pathPhInCom)
 {
     var context = new SynchronContext();
     var namePhone = filePhon;
     var createPhone = File.GetCreationTime(pathPhone);
     var modificPhone = File.GetLastWriteTime(pathPhone);
     var nameComp = filePhon;
     var createComp = File.GetCreationTime(pathPhInCom);
     var modificComp = File.GetLastWriteTime(pathPhInCom);
     if (modificPhone > modificComp)
     {
         var comp = new ComputerModel
         {
             Name = nameComp,
             CreateDate = createComp,
             ModificationDate = modificPhone
         };
         context.ComputerModels.Add(comp);
         File.Delete(pathPhInCom);
         File.Copy(pathPhone, pathPhInCom);
     }
     else if (modificComp > modificPhone)
     {
         var comp = new ComputerModel
         {
             Name = nameComp,
             CreateDate = createComp,
             ModificationDate = modificComp
         };
         context.ComputerModels.Add(comp);
     }
     context.SaveChanges();
 }
コード例 #3
0
 static void Main()
 {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     SynchronContext context = new SynchronContext();
     SynchronizationView view = new SynchronizationView();
     SynchronizationPresenter presenter = new SynchronizationPresenter(context, view);
     Application.Run(view);
 }
コード例 #4
0
 public void InsertInDbComp(string pathComp, string fileNameAndFolderComp)
 {
     var db = new SynchronContext();
     var nameComp = fileNameAndFolderComp;
     var createComp = File.GetCreationTime(pathComp);
     var modificComp = File.GetLastWriteTime(pathComp);
     var comp = new ComputerModel
     {
         Name = nameComp,
         CreateDate = createComp,
         ModificationDate = modificComp
     };
     db.ComputerModels.Add(comp);
     db.SaveChanges();
 }
コード例 #5
0
 public void InsertInDbPhone(string pathPhone, string fileNameAndFolderPhone)
 {
     var db = new SynchronContext();
     var namePhone = fileNameAndFolderPhone;
     var createPhone = File.GetCreationTime(pathPhone);
     var modificPhone = File.GetLastWriteTime(pathPhone);
     var phone = new PhoneModel
     {
         Name = namePhone,
         CreateDate = createPhone,
         ModificationDate = modificPhone
     };
     db.PhoneModels.Add(phone);
     db.SaveChanges();
 }
コード例 #6
0
 public void Synchronization(List<String> chekedNames, string textboxPhone, string textboxComp)
 {
     var context = new SynchronContext();
     var delete = new DeleteFile();
     var update = new UpdateFile();
     var insert = new InsertFile();
     string[] filesPhone = Directory.GetFiles(textboxPhone, "*.*", SearchOption.AllDirectories);
     //для выбранных файлов с компьютера
     foreach (var fileComp in chekedNames)
     {
         string pathPhInCom = textboxComp + "\\" + fileComp;
         string pathComInPhon = textboxPhone + "\\" + fileComp;
         string pathComp = textboxComp + "\\" + fileComp;
         string fileNameAndFolder = pathComp.Replace(textboxComp, "");
         var findFileFromPhone = context.PhoneModels.FirstOrDefault(file => file.Name == fileComp);
         var findFileFromComp = context.ComputerModels.FirstOrDefault(file => file.Name == fileComp);
         //если файла нет в папке телефона
         if (Array.IndexOf(filesPhone, pathComInPhon) == -1)
         {
             //если файла нет в бд телефона
             if (findFileFromPhone == null)
             {
                 insert.InsertFileIfNotInDbPhone(fileComp, pathComp, pathComInPhon);
             }
             //если файл есть в бд телефона
             else
             {
                 delete.Delete(pathComp, pathComInPhon, findFileFromComp, findFileFromPhone);
             }
         }
         //если файл есть в папке телефона
         else
         {
             //если файла нет в бд телефона
             if (findFileFromPhone == null)
             {
                 update.UpdateIfNotInDbPhone(fileComp, pathComp, pathComInPhon);
             }
             //если файл есть в бд телефона
             else
             {
                 update.UpdateIfInDbPhone(fileComp, pathComp, pathComInPhon,
                                         findFileFromPhone, findFileFromComp);
             }
         }
     }
 }
コード例 #7
0
 public void InsertFileIfNotInDbPhone(string fileNameAndFolderComp, string pathComp, string pathComInPhon)
 {
     var context = new SynchronContext();
     var namePhone = fileNameAndFolderComp;
     var createPhone = File.GetCreationTime(pathComp);
     var modificPhone = File.GetLastWriteTime(pathComp);
     var phone = new PhoneModel
     {
         Name = namePhone,
         CreateDate = createPhone,
         ModificationDate = modificPhone
     };
     context.PhoneModels.Add(phone);
     try { File.Copy(pathComp, pathComInPhon); }
     catch { }
     context.SaveChanges();
 }
コード例 #8
0
 public void InsertFileIfNotInDbComp(string fileNameAndFolderPhone, string pathPhone, string pathPhInCom)
 {
     var db = new SynchronContext();
     var nameComp = fileNameAndFolderPhone;
     var createComp = File.GetCreationTime(pathPhone);
     var modificComp = File.GetLastWriteTime(pathPhone);
     var comp = new ComputerModel
     {
         Name = nameComp,
         CreateDate = createComp,
         ModificationDate = modificComp
     };
     db.ComputerModels.Add(comp);
     try { File.Copy(pathPhone, pathPhInCom); }
     catch { }
     db.SaveChanges();
 }
コード例 #9
0
        public void Delete(string pathComp, string pathCompInPhone, ComputerModel findFileFromComp,PhoneModel findFileFromPhone)
        {
            var context = new SynchronContext();
            var modific = File.GetLastWriteTime(pathComp);
            if (modific > findFileFromComp.ModificationDate)
            {
                findFileFromComp.ModificationDate = modific;
                File.Copy(pathComp, pathCompInPhone);
                findFileFromPhone.ModificationDate = modific;
            }
            else if (modific < findFileFromComp.ModificationDate)
            {
                var com = new ComputerModel { IdComp = findFileFromComp.IdComp, };
                context.Entry(com).State = System.Data.Entity.EntityState.Deleted;

                var phon = new PhoneModel { IdPhone = findFileFromPhone.IdPhone };
                context.Entry(phon).State = System.Data.Entity.EntityState.Deleted;

                File.Delete(pathComp);
            }
            context.SaveChanges();
        }
コード例 #10
0
 //если файл есть в папке телефона, но нет в бд
 public void UpdateIfNotInDbPhone(string fileComp, string pathComp, string pathComInPhon)
 {
     var context = new SynchronContext();
     var nameComp = fileComp;
     var createComp = File.GetCreationTime(pathComp);
     var modificComp = File.GetLastWriteTime(pathComp);
     var namePhone = fileComp;
     var createPhone = File.GetCreationTime(pathComInPhon);
     var modificPhone = File.GetLastWriteTime(pathComInPhon);
     if (modificComp > modificPhone)
     {
         var phone = new PhoneModel
         {
             Name = namePhone,
             CreateDate = createPhone,
             ModificationDate = modificComp
         };
         context.PhoneModels.Add(phone);
         File.Delete(pathComInPhon);
         File.Copy(pathComp, pathComInPhon);
     }
     else if (modificPhone > modificComp)
     {
         var phone = new PhoneModel
         {
             Name = namePhone,
             CreateDate = createPhone,
             ModificationDate = modificPhone
         };
         context.PhoneModels.Add(phone);
     }
     context.SaveChanges();
 }
コード例 #11
0
 public SynchronizationPresenter(SynchronContext context, SynchronizationView view)
 {
     this._context = context;
     this._view = view;
     view.Presenter = this;
 }
コード例 #12
0
        public void Synhronization(string textboxPhone, string textboxComp)
        {
            var context = new SynchronContext();
            var delete = new DeleteFile();
            var update = new UpdateFile();
            var insert = new InsertFile();
            var folder = new SynchronizationFolder();
            folder.SynchronFolder(textboxPhone, textboxComp);
            string[] filesPhone = Directory.GetFiles(textboxPhone, "*.*", SearchOption.AllDirectories);
            string[] filesComp = Directory.GetFiles(textboxComp, "*.*", SearchOption.AllDirectories);
            //для файлов с телефона
            foreach (var filePhon in filesPhone)
            {
                string fileNameAndFolderPhone = filePhon.Replace(textboxPhone, "");
                string pathPhInCom = textboxComp + fileNameAndFolderPhone;
                string pathComInPhon = textboxPhone + fileNameAndFolderPhone;
                string pathPhone = filePhon;
                var findFileFromPhone = context.PhoneModels.FirstOrDefault(file => file.Name == fileNameAndFolderPhone);
                var findPhoneFileFromComp = context.ComputerModels.FirstOrDefault(file => file.Name == fileNameAndFolderPhone);

                //если файла нет в бд телефона
                if (findFileFromPhone == null)
                {
                    insert.InsertInDbPhone(pathPhone, fileNameAndFolderPhone);
                }
                //если файла нет в папке компьютера
                if (Array.IndexOf(filesComp, pathPhInCom) == -1)
                {
                    //если файла нет в бд компьютера
                    if (findPhoneFileFromComp == null)
                    {
                        insert.InsertFileIfNotInDbComp(fileNameAndFolderPhone, pathPhone, pathPhInCom);
                    }
                    //файл есть в бд компьютера
                    else
                    {
                        delete.Delete(pathPhone, pathPhInCom, findPhoneFileFromComp, findFileFromPhone);
                    }
                }
                //файл есть в папке компьютера
                else
                {
                    //если файла нет в бд компьютера
                    if (findPhoneFileFromComp == null)
                    {
                        update.UpdateIfNotInDbComp(fileNameAndFolderPhone, pathPhone, pathPhInCom);
                    }
                    //файл есть в бд компьютера
                    else
                    {
                        update.UpdateIfInDbComp(fileNameAndFolderPhone, pathPhone, pathPhInCom,
                                            findPhoneFileFromComp, findFileFromPhone);
                    }
                }
            }
            //для файлов с компьютера
            foreach (var fileComp in filesComp)
            {
                string fileNameAndFolderComp = fileComp.Replace(textboxComp, "");
                string pathPhInCom = textboxComp + fileNameAndFolderComp;
                string pathComInPhon = textboxPhone + fileNameAndFolderComp;
                string pathComp = fileComp;
                var findFileFromPhone = context.PhoneModels.FirstOrDefault(file => file.Name == fileNameAndFolderComp);
                var findFileFromComp = context.ComputerModels.FirstOrDefault(file => file.Name == fileNameAndFolderComp);
                //если файла нет в бд компьютера
                if (findFileFromComp == null)
                {
                    insert.InsertInDbComp(pathComp, fileNameAndFolderComp);
                }
                //если файла нет в папке телефона
                if (Array.IndexOf(filesPhone, pathComInPhon) == -1)
                {
                    //если файла нет в бд телефона
                    if (findFileFromPhone == null)
                    {
                        insert.InsertFileIfNotInDbPhone(fileNameAndFolderComp, pathComp, pathComInPhon);
                    }
                    //если файл есть в бд телефона
                    else
                    {
                        delete.Delete(pathComp, pathComInPhon, findFileFromComp, findFileFromPhone);
                    }
                }
                //если файл есть в папке телефона
                else
                {
                    //если файла нет в бд телефона
                    if (findFileFromPhone == null)
                    {
                        update.UpdateIfNotInDbPhone(fileNameAndFolderComp, pathComp, pathComInPhon);
                    }
                    //если файл есть в бд телефона
                    else
                    {
                        update.UpdateIfInDbPhone(fileNameAndFolderComp, pathComp, pathComInPhon,
                                                findFileFromPhone, findFileFromComp);
                    }
                }
            }
        }