Esempio n. 1
0
        //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);
        }
Esempio n. 2
0
        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);
        }