//files that have older versions in the cloud -- upload the new ones and delete the old outdated cloud files public static int ReplaceOutDatedRemoteFiles(List <FileInfoX> localFiles, List <FileInfoX> remoteFiles, bool confirmUpload) { var remoteQuery = (from l in localFiles join r in remoteFiles on l.CloudFileName equals r.CloudFileName where (l.LastModifiedUtc - r.LastModifiedUtc).TotalSeconds >= 2 select new { OldCloudNamePlusDate = r.CloudFileNameWithEmbeddedData, NewFileName = r.LocalFileName }).ToList(); bool assumeConfirmed = !confirmUpload; Dictionary <string, string> confirmed = new Dictionary <string, string>(); if (remoteQuery.Count > 0) { NLogger.Current.Info("Found Uploads:"); foreach (var uploadFile in remoteQuery) { NLogger.Current.Info(uploadFile.NewFileName); } } foreach (var uploadFile in remoteQuery) { Console.Write(ConfirmRequest.Upload.ToString() + " " + uploadFile.NewFileName + " "); if (assumeConfirmed) { Console.WriteLine(); confirmed.Add(uploadFile.OldCloudNamePlusDate, uploadFile.NewFileName); continue; } ConfirmAnswer a = GetAnswer(uploadFile.NewFileName); if (a == ConfirmAnswer.Confirm) { confirmed.Add(uploadFile.OldCloudNamePlusDate, uploadFile.NewFileName); } else if (a == ConfirmAnswer.Skip) { continue; } else if (a == ConfirmAnswer.SkipAll) { break; } else if (a == ConfirmAnswer.ConfirmAll) { assumeConfirmed = true; confirmed.Add(uploadFile.OldCloudNamePlusDate, uploadFile.NewFileName); } } foreach (var d in confirmed) { OwnCloudClient.DeleteFile(d.Key); //OldCloudNamePlusDate OwnCloudClient.UploadFile(Settings.WatchDir + d.Value); //NewFileName } return(confirmed.Count); }
private static List <FileInfoX> FillConfirmationList(List <FileInfoX> inList, ConfirmRequest req) { bool assumeConfirmed = false; List <FileInfoX> confirmedList = new List <FileInfoX>(); foreach (FileInfoX x in inList) { Console.Write(req.ToString() + " " + x.LocalFileName + " "); if (assumeConfirmed) { Console.WriteLine(); confirmedList.Add(x); continue; } ConfirmAnswer a = GetAnswer(x.LocalFileName); if (a == ConfirmAnswer.Confirm) { confirmedList.Add(x); } else if (a == ConfirmAnswer.Skip) { continue; } else if (a == ConfirmAnswer.SkipAll) { break; } else if (a == ConfirmAnswer.ConfirmAll) { assumeConfirmed = true; confirmedList.Add(x); } } return(confirmedList); }