//если файл есть в папке телефона и есть в бд 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(); }
//если файл есть в папке компьютера, но нет в бд 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(); }
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); }
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(); }
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(); }
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); } } } }
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(); }
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(); }
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(); }
//если файл есть в папке телефона, но нет в бд 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(); }
public SynchronizationPresenter(SynchronContext context, SynchronizationView view) { this._context = context; this._view = view; view.Presenter = this; }
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); } } } }