public static void ConflictRequest(RequestType firstRequest, RequestType secondRequest)
        {
            // For RequestType.Lease, only containg one request (Create with Lease context)
            // for the second client, so DeleteAfter is not applicable.
            Condition.IfThen(firstRequest == RequestType.UncommitedDelete, secondRequest != RequestType.Lease);

            // DeleteAfter is the same as Delete for second request
            Condition.IsTrue(secondRequest != RequestType.UncommitedDelete);
            switch (firstRequest)
            {
                case RequestType.ExclusiveLock:
                    State = FileState.Locked;
                    break;
                case RequestType.Lease:
                    State = FileState.LeaseGranted;
                    break;
                case RequestType.UncommitedDelete:
                    State = FileState.ToBeDeleted;
                    break;
                case RequestType.Delete:
                    State = FileState.Deleted;
                    break;
                // No state changed
                case RequestType.Write:
                case RequestType.Read:
                default:
                    break;
            }

            SecondRequest = secondRequest;
        }
示例#2
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="ScanFileEventArgs" /> class.
 /// </summary>
 /// <param name="filepath">The file path affected by the event.</param>
 /// <param name="track">The track (if one exists) parsed from the file affected by the event.</param>
 /// <param name="filestate">The file state affected by the event.</param>
 public ScanFileEventArgs(long currentFileNumber, long totalFilesCount, string filepath, RawTrack track, FileState filestate)
 {
     _currentFileNumber = currentFileNumber;
     _totalFilesCount = totalFilesCount;
     _filepath = filepath;
     _track = track;
     _filestate = filestate;
 }
示例#3
0
 public void SetFileAsRemoving()
 {
     if (State != FileState.Available)
     {
         throw new NotImplementedException("Currently only Files in an available state can be removed");
     }
     State = FileState.Removing;
 }
示例#4
0
        public void ConvertMapsToChangeTypeForKnonwStates(FileState fileState, ChangeType expected)
        {
            // Act
            ChangeType actual = HgRepository.Convert(fileState);

            // Assert
            Assert.Equal(expected, actual);
        }
示例#5
0
 public VCFile(VCFile template)
 {
     mFileState1 = template.fileState1;
     mFileState2 = template.fileState2;
     mName1 = template.name1;
     mName2 = template.name2;
     mPath1 = template.path1;
     mPath2 = template.path2;
 }
 private static void WriteContent(string file, string content)
 {
     var fileStream = new FileStream(file, FileMode.Truncate);
     var state = new FileState
     {
         FileStream = fileStream
     };
     var data = Encoding.ASCII.GetBytes(content);
     fileStream.BeginWrite(data, 0, data.Length, WriteDone, state);
 }
 private void ReplaceFileContent(string file)
 {
     var fileStream = new FileStream(file, FileMode.Open);
     var state = new FileState
     {
         FileStream = fileStream,
         FileName = file,
         Data = new byte[fileStream.Length]
     };
     fileStream.BeginRead(state.Data, 0, (int)fileStream.Length, ReadDone, state);
 }
示例#8
0
 public AvailableFile(ClientInstance client, FileDescriptor descriptor)
     : base(descriptor)
 {
     _state = FileState.Available;
     _client = client;
     _percent = 0d;
     _client.FileRequestResponseReceived += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileRequestResponseEventArgs>(_client_FileRequestResponseReceived);
     _client.FileTransferProgressed += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileTransferEventArgs>(_client_FileTransferProgressed);
     _client.FileTransferCompleted += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileTransferCompletedEventArgs>(_client_FileTransferCompleted);
     _client.FileTransferFailed += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileDescriptorEventArgs>(_client_FileTransferFailed);
 }
示例#9
0
        /// <summary>
        /// 发送方的文件进行续传;如果回复是null;说明不存在
        /// </summary>
        /// <param name="fileLable">文件标签</param>
        /// <param name="stateOne">StateBase</param>
        /// <returns>byte[]</returns>
        internal byte[] FileContinue(int fileLable, StateBase stateOne)
        {
            byte[]    haveDate = null;
            FileState state    = FileLabelToState(fileLable);

            if (state != null && state.StateFile == 2)
            {
                haveDate       = EncryptionDecryptFile.FileSevenEncryption(PasswordCode._sendUser, PasswordCode._fileContinue, fileLable);
                state.StateOne = stateOne;    //可以续传;用新的stateOne代替旧的
            }
            return(haveDate);
        }
示例#10
0
        /// <summary>
        /// 对包头文件进行解密
        /// </summary>
        /// <param name="fileDate"></param>
        /// <param name="fs"></param>
        /// <returns></returns>
        internal static FileState FileHeadDecrypt(byte[] fileDate, FileStream fs)
        {
            int  lable     = ByteToDate.ByteToInt(3, fileDate);
            long fileLenth = ByteToDate.ByteToLong(7, fileDate);

            byte[] fileNameByte = new byte[fileDate.Length - 15];
            Array.Copy(fileDate, 15, fileNameByte, 0, fileNameByte.Length);
            string    fileName  = Encoding.UTF8.GetString(fileNameByte);
            FileState haveState = new FileState(lable, fileLenth, fileName, fs);

            return(haveState);
        }
示例#11
0
        /// <summary>
        /// 接收方的文件进行续传;如果回复是null;说明不存在
        /// </summary>
        /// <param name="fileLable">文件标签</param>
        /// <param name="stateOne">StateBase</param>
        /// <returns>byte[]</returns>
        internal byte[] FileContinue(int fileLable, StateBase stateOne)
        {
            byte[]    haveDate = null;
            FileState state    = FileLabelToState(fileLable);

            if (state != null && state.StateFile == 2)
            {
                haveDate = EncryptionDecryptFile.ReceiveContingueEncryption(PasswordCode._fileContinue, state);
                ExpandBuffer(state, stateOne);
            }
            return(haveDate);
        }
示例#12
0
 /// <summary>
 /// 扩充因要接收文件而增大的缓冲区
 /// </summary>
 /// <param name="state">FileState</param>
 /// <param name="stateOne">stateOne</param>
 private void ExpandBuffer(FileState state, StateBase stateOne)
 {
     if (state.StateOne != stateOne)
     {
         if (stateOne.Buffer.Length != BufferSize)
         {
             stateOne.BufferBackup = stateOne.Buffer;
             stateOne.Buffer       = new byte[BufferSize];
         }
         state.StateOne = stateOne;
     }
 }
示例#13
0
        /// <summary>
        /// 得到文件名
        /// </summary>
        /// <param name="FileLabel">文件编号</param>
        /// <returns>文件名</returns>
        public string GetFileName(int FileLabel)
        {
            FileState state = FileLabelToState(FileLabel);

            if (state == null)
            {
                throw new Exception("这文件已不存在");
            }
            string haveStr = CommonMethod.StringRight(state.FileName, "\\");

            return(haveStr);
        }
示例#14
0
        // 点击“打开本地表”按钮
        private void btnOpenLocalExcelFile_Click(object sender, EventArgs e)
        {
            FileState fileState = Utils.GetFileState(AppValues.LocalExcelFilePath);

            if (fileState == FileState.Inexist)
            {
                MessageBox.Show("本地表已不存在,请勿在使用本工具时对母表进行操作", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            System.Diagnostics.Process.Start(AppValues.LocalExcelFilePath);
        }
示例#15
0
        public void ConvertFileAttributes()
        {
            JsonSerializerOptions options = new JsonSerializerOptions();

            options.Converters.Add(new JsonStringEnumConverter());

            FileState state = JsonSerializer.Deserialize <FileState>(@"{""Attributes"":""ReadOnly""}", options);

            Assert.Equal(FileAttributes.ReadOnly, state.Attributes);
            state = JsonSerializer.Deserialize <FileState>(@"{""Attributes"":""Directory, ReparsePoint""}", options);
            Assert.Equal(FileAttributes.Directory | FileAttributes.ReparsePoint, state.Attributes);
            FileAttributes attributes = JsonSerializer.Deserialize <FileAttributes>(@"""Normal""", options);

            Assert.Equal(FileAttributes.Normal, attributes);
            attributes = JsonSerializer.Deserialize <FileAttributes>(@"""System, SparseFile""", options);
            Assert.Equal(FileAttributes.System | FileAttributes.SparseFile, attributes);

            // We are case insensitive on read
            attributes = JsonSerializer.Deserialize <FileAttributes>(@"""OFFLINE""", options);
            Assert.Equal(FileAttributes.Offline, attributes);
            attributes = JsonSerializer.Deserialize <FileAttributes>(@"""compressed, notcontentindexed""", options);
            Assert.Equal(FileAttributes.Compressed | FileAttributes.NotContentIndexed, attributes);

            // Numbers are cool by default
            attributes = JsonSerializer.Deserialize <FileAttributes>(@"131072", options);
            Assert.Equal(FileAttributes.NoScrubData, attributes);
            attributes = JsonSerializer.Deserialize <FileAttributes>(@"3", options);
            Assert.Equal(FileAttributes.Hidden | FileAttributes.ReadOnly, attributes);

            string json = JsonSerializer.Serialize(FileAttributes.Hidden, options);

            Assert.Equal(@"""Hidden""", json);
            json = JsonSerializer.Serialize(FileAttributes.Temporary | FileAttributes.Offline, options);
            Assert.Equal(@"""Temporary, Offline""", json);

            // Try a unique casing
            options = new JsonSerializerOptions();
            options.Converters.Add(new JsonStringEnumConverter(new ToLower()));

            json = JsonSerializer.Serialize(FileAttributes.NoScrubData, options);
            Assert.Equal(@"""noscrubdata""", json);
            json = JsonSerializer.Serialize(FileAttributes.System | FileAttributes.Offline, options);
            Assert.Equal(@"""system, offline""", json);

            // Undefined values should come out as a number (not a string)
            json = JsonSerializer.Serialize((FileAttributes)(-1), options);
            Assert.Equal(@"-1", json);

            // Not permitting integers should throw
            options = new JsonSerializerOptions();
            options.Converters.Add(new JsonStringEnumConverter(allowIntegerValues: false));
            Assert.Throws <JsonException>(() => JsonSerializer.Serialize((FileAttributes)(-1), options));
        }
        public static IZuneTagContainer GetContainer(string path)
        {
            if (!File.Exists(path))
            {
                throw new FileNotFoundException(String.Format("File does not exist: {0}", path), path);
            }

            string extension = Path.GetExtension(path);

            if (extension.ToLower() == ".mp3")
            {
                try
                {
                    var tagManager = new Id3TagManager();

                    //TODO: app crashes here when a file is loaded from a remote directory, i.e. on network
                    FileState status = tagManager.GetTagsStatus(path);

                    //if we just have id3v1.1 tags
                    if (status.Id3V1TagFound && !status.Id3V2TagFound)
                    {
                        throw new Id3TagException("cannot read id3v1.1");
                    }

                    return(new ZuneMP3TagContainer(tagManager.ReadV2Tag(path), path));
                }
                catch (Id3TagException ex)
                {
                    if (ex.InnerException != null)
                    {
                        throw new AudioFileReadException(ex.InnerException.Message, ex.InnerException);
                    }

                    throw new AudioFileReadException(ex.Message);
                }
            }

            if (extension.ToLower() == ".wma")
            {
                try
                {
                    return(new ZuneWMATagContainer(ASFTagManager.ReadTag(path), path));
                }
                catch (Exception ex)
                {
                    throw new AudioFileReadException(ex.Message, ex);
                }
            }

            throw new AudioFileReadException("The " + Path.GetExtension(path) +
                                             " file extension is not supported with zune social tagger.");
        }
示例#17
0
 /// <summary>
 /// 内部用的进度;里面会自动计算
 /// </summary>
 /// <param name="state">FileState</param>
 internal void FileProgress(FileState state)
 {
     if (state.FileLenth == state.FileOkLenth)
     {
         FileProgress(state.FileLabel, 100);
     }
     else
     {
         long haveLong = state.FileOkLenth * 100 / state.FileLenth;
         int  haveInt  = (int)haveLong;
         FileProgress(state.FileLabel, haveInt);
     }
 }
示例#18
0
        public async Task MissingSource()
        {
            using var fileState = new FileState();

            var outputDirectory = fileState.CreateTempDirectory();
            var outputFile      = Path.Combine(outputDirectory, "out.jpg");

            var returnCode = await Bootstrapper.Main(
                "reproject",
                "-vo", outputFile);

            VerifyFailedExecution(returnCode);
        }
示例#19
0
        private GitFileInfo[] GetFiles(FileState fileState, bool staged)
        {
            List <GitFileInfo> results = new List <GitFileInfo>();

            foreach (GitFileInfo info in m_files)
            {
                if (info.FileState == fileState && info.Staged == staged)
                {
                    results.Add(info);
                }
            }
            return(results.ToArray());
        }
示例#20
0
        /// <summary>
        ///     得到文件的进度;返回大于0小于100的进度数;如果文件已不存在返回100;不抛异常
        /// </summary>
        /// <param name="FileLabel">文件标签</param>
        /// <returns></returns>
        public int FileProgress(int FileLabel)
        {
            FileState state = FileLabelToState(FileLabel);

            if (state == null)
            {
                return(100);
            }
            long haveLong = state.FileOkLenth * 100 / state.FileLenth;
            var  haveInt  = (int)haveLong;

            return(haveInt);
        }
示例#21
0
        private static CommandLineOptions ValidOptions(FileState fileState)
        {
            var options = new CommandLineOptions
            {
                OutputPath   = fileState.CreateFile("output.jpg"),
                UnderlayPath = fileState.CreateFile("underlay.jpg"),
                SourcePath   = fileState.CreateFile("source.jpg"),
                OverlayPath  = fileState.CreateFile("overlay.jpg"),
                Threads      = 5
            };

            return(options);
        }
        public void ValidOutputStitchAndBatch()
        {
            var options = ValidOptions();

            using var state         = new FileState();
            options.Timestamp       = DateTime.Now;
            options.IntervalMinutes = 30;

            options.SourcePath = Path.Combine(state.CreateTempDirectory(), "*.jpg");
            options.OutputPath = state.CreateTempDirectory();

            VerifyNoFailure(options);
        }
        public Task <FileState> SaveAsync(FileState state,
                                          Stream dataStream,
                                          string sessionToken,
                                          IProgress <ParseUploadProgressEventArgs> progress,
                                          CancellationToken cancellationToken = default(CancellationToken))
        {
            if (state.Url != null)
            {
                // !isDirty
                return(Task.FromResult(state));
            }

            if (cancellationToken.IsCancellationRequested)
            {
                var tcs = new TaskCompletionSource <FileState>();
                tcs.TrySetCanceled();
                return(tcs.Task);
            }

            var oldPosition = dataStream.Position;
            var command     = new ParseCommand("files/" + state.Name,
                                               method: "POST",
                                               sessionToken: sessionToken,
                                               contentType: state.MimeType,
                                               stream: dataStream);

            return(_commandRunner.RunCommandAsync(command,
                                                  uploadProgress: progress,
                                                  cancellationToken: cancellationToken).OnSuccess(uploadTask =>
            {
                var result = uploadTask.Result;
                var jsonData = result.Item2;
                cancellationToken.ThrowIfCancellationRequested();

                return new FileState
                {
                    Name = jsonData["name"] as string,
                    Url = new Uri(jsonData["url"] as string, UriKind.Absolute),
                    MimeType = state.MimeType
                };
            }).ContinueWith(t =>
            {
                // Rewind the stream on failure or cancellation (if possible)
                if ((t.IsFaulted || t.IsCanceled) && dataStream.CanSeek)
                {
                    dataStream.Seek(oldPosition, SeekOrigin.Begin);
                }

                return t;
            }, cancellationToken).Unwrap());
        }
        public void ValidOutputStitchNoBatch()
        {
            var options = ValidOptions();

            using var state = new FileState();
            var outputFile = state.CreateFile("foo.jpg");

            options.Timestamp = DateTime.Now;

            options.SourcePath = Path.Combine(state.CreateTempDirectory(), "*.jpg");
            options.OutputPath = outputFile;

            VerifyNoFailure(options);
        }
        public void OutputIsFileIfLongitudeSpecified()
        {
            var options = ValidOptions();

            options.Longitude = 147;
            options.Timestamp = DateTime.Now;

            using var state = new FileState();

            options.SourcePath = Path.Combine(state.CreateTempDirectory(), "*.jpg");
            options.OutputPath = Path.Combine(state.CreateTempDirectory(), "out.jpg");

            VerifyNoFailure(options);
        }
示例#26
0
        /// <summary>
        /// 发送方对一个文件包头进行加密得到一个byte[]
        /// </summary>
        /// <param name="fileSend"></param>
        /// <returns></returns>
        internal static byte[] FileHeadEncryption(FileState fileSend)
        {
            string fileName = CommonMethod.StringRight(fileSend.FileName, "\\");

            byte[] fileNameByte = Encoding.UTF8.GetBytes(fileName);
            byte[] haveDate     = new byte[15 + fileNameByte.Length];
            haveDate[0] = CipherCode._fileCode;
            haveDate[1] = CipherCode._sendUser;
            haveDate[2] = CipherCode._fileHeadCode;
            ByteToDate.IntToByte(fileSend.FileLabel, 3, haveDate);
            ByteToDate.IntToByte(fileSend.FileLenth, 7, haveDate);
            fileNameByte.CopyTo(haveDate, 15);
            return(haveDate);
        }
示例#27
0
        public Task TestFileControllerSaveWithEmptyResult()
        {
            Tuple <HttpStatusCode, IDictionary <string, object> > response = new Tuple <HttpStatusCode, IDictionary <string, object> >(HttpStatusCode.Accepted, new Dictionary <string, object>());
            Mock <IParseCommandRunner> mockRunner = CreateMockRunner(response);
            FileState state = new FileState
            {
                Name     = "bekti.png",
                MimeType = "image/png"
            };

            ParseFileController controller = new ParseFileController(mockRunner.Object);

            return(controller.SaveAsync(state, dataStream: new MemoryStream(), sessionToken: null, progress: null).ContinueWith(t => Assert.IsTrue(t.IsFaulted)));
        }
示例#28
0
        public FileLoader(frmLegendsViewer form, Button xmlButton, TextBox xmlText, Button historyButton, TextBox historyText, Button sitesButton, TextBox sitesText, Button mapButton, TextBox mapText, Label statusLabel, RichTextBox logText)
        {
            Form          = form;
            XMLButton     = xmlButton;
            XMLText       = xmlText;
            HistoryButton = historyButton;
            HistoryText   = historyText;
            SitesButton   = sitesButton;
            SitesText     = sitesText;
            MapButton     = mapButton;
            MapText       = mapText;
            StatusLabel   = statusLabel;
            LogText       = logText;

            XMLState = HistoryState = SitesState = MapState = FileState.Default;

            XMLButton.Click     += XMLClick;
            HistoryButton.Click += HistoryClick;
            SitesButton.Click   += SitesClick;
            MapButton.Click     += MapClick;

            ExtractedFiles = new List <string>();

            if (Environment.Is64BitProcess)
            {
                SevenZipBase.SetLibraryPath("7z64.dll");
            }

            try
            {
                var assembly     = Assembly.GetExecutingAssembly();
                var resourceName = "LegendsViewer.Controls.HTML.Styles.legends.css";
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        Controls.HTMLPrinter.LegendsCSS = reader.ReadToEnd();
                    }
                var chartjsName = "LegendsViewer.Controls.HTML.Scripts.Chart.min.js";
                using (Stream stream = assembly.GetManifestResourceStream(chartjsName))
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        Controls.HTMLPrinter.ChartJS = reader.ReadToEnd();
                    }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
示例#29
0
        // 点击“打开Excel母表”按钮
        private void btnOpenExcelFile_Click(object sender, EventArgs e)
        {
            string excelFilePath = txtExcelPath.Text.Trim();

            if (string.IsNullOrEmpty(excelFilePath))
            {
                MessageBox.Show("请先输入或选择国际化Excel母表所在路径", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            FileState fileState = Utils.GetFileState(excelFilePath);

            if (fileState == FileState.Inexist)
            {
                MessageBox.Show("输入的国际化Excel母表所在路径不存在,建议点击\"选择\"按钮进行文件选择", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (!AppValues.EXCEL_FILE_EXTENSION.Equals(Path.GetExtension(excelFilePath), StringComparison.CurrentCultureIgnoreCase))
            {
                MessageBox.Show(string.Format("本工具仅支持读取扩展名为{0}的Excel文件", AppValues.EXCEL_FILE_EXTENSION), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (fileState == FileState.IsOpen)
            {
                MessageBox.Show("该Excel文件正被其他软件打开,请关闭后重试", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            // 读取设置的注释行开头字符
            _SetCommentLineStartChar();

            // 解析Excel母表
            string        errorString   = null;
            LangExcelInfo langExcelInfo = AnalyzeHelper.AnalyzeLangExcelFile(excelFilePath, AppValues.CommentLineStartChar, out errorString);

            if (errorString == null)
            {
                AppValues.ExcelFullPath = Path.GetFullPath(excelFilePath);
                // 当重新选择了Excel母表文件后重置窗口控件
                _ChangeStateWhenSetExcelPath(false);
                AppValues.LangExcelInfo = langExcelInfo;
                // 设置了合法的Excel母表后,可以使用各个子模块功能
                _ChangeStateWhenSetExcelPath(true);
            }
            else
            {
                MessageBox.Show(string.Format("选定的Excel母表存在以下错误,请修正后重试\n\n{0}", errorString), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }
        /// <inheritdoc />
        public async Task <Possible <CasHash, Failure> > AddToCasAsync(
            string filename,
            FileState fileState,
            CasHash?hash,
            UrgencyHint urgencyHint,
            Guid activityId)
        {
            if (m_outOfSpace)
            {
                return(new CacheFailure(s_outOfSpaceError[0]));
            }

            PutResult result;

            if (hash.HasValue)
            {
                result = await CacheSession.PutFileAsync(
                    new Context(Logger),
                    hash.Value.ToContentHash(),
                    new BuildXL.Cache.ContentStore.Interfaces.FileSystem.AbsolutePath(filename),
                    fileState.ToMemoization(),
                    CancellationToken.None,
                    urgencyHint.ToMemoization());
            }
            else
            {
                result = await CacheSession.PutFileAsync(
                    new Context(Logger),
                    ContentHashingUtilities.HashInfo.HashType,
                    new BuildXL.Cache.ContentStore.Interfaces.FileSystem.AbsolutePath(filename),
                    fileState.ToMemoization(),
                    CancellationToken.None,
                    urgencyHint.ToMemoization());
            }

            if (result.Succeeded)
            {
                return(result.ContentHash.FromMemoization());
            }

            string outOfSpaceError;

            if (!m_outOfSpace && IsOutOfSpacePut(result, out outOfSpaceError))
            {
                m_outOfSpace = true;
            }

            return(new CacheFailure(result.ErrorMessage));
        }
示例#31
0
    private static void AsyncRead()
    {
        FileStream fs = new FileStream(@"C:\windows\system32\drivers\etc\HOSTS", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

        FileState state = new FileState();

        state.Buffer = new byte[fs.Length];
        state.File   = fs;

        fs.BeginRead(state.Buffer, 0, state.Buffer.Length, readCompleted, state);
        // Read가 완료된 후의 코드를 readCompleted로 넘겨서 처리

        Console.ReadLine();
        fs.Close();
    }
示例#32
0
        public Task TestFileControllerSaveWithInvalidResult()
        {
            var response   = new Tuple <HttpStatusCode, IDictionary <string, object> >(HttpStatusCode.Accepted, null);
            var mockRunner = CreateMockRunner(response);
            var state      = new FileState {
                Name     = "bekti.png",
                MimeType = "image/png"
            };

            var controller = new ParseFileController(mockRunner.Object);

            return(controller.SaveAsync(state, dataStream: new MemoryStream(), sessionToken: null, progress: null).ContinueWith(t => {
                Assert.True(t.IsFaulted);
            }));
        }
        public void OutputNotFileIfMultipleSource()
        {
            var options = ValidOptions();

            using var state = new FileState();
            var outputFile = state.CreateFile("foo.jpg");

            options.SourcePath = Path.Combine(state.CreateTempDirectory(), "*.jpg");
            options.OutputPath = outputFile;

            VerifyFailure(
                options,
                nameof(GeostationaryOptions.OutputPath),
                "If multiple source files are specified, the output must be a directory.");
        }
示例#34
0
        public void SaveFileDialog(ref string filePath, TreeView treeView_, Form mainForm_, FileState fileState_, bool isSaveAs)
        {
            if (isSaveAs)
            {
                filePath = null;
            }

            if (filePath == null)
            {
                SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                saveFileDialog1.Filter           = "rexl files |*.rexl";
                saveFileDialog1.FilterIndex      = 1;
                saveFileDialog1.RestoreDirectory = true;
                saveFileDialog1.ShowDialog();

                if (saveFileDialog1.FileName != "")
                {
                    filePath = saveFileDialog1.FileName;
                    try
                    {
                        NodeHelper helper      = new NodeHelper();
                        var        xmlDocument = helper.TreeViewToXmlDocument(treeView_);
                        xmlDocument.Save(filePath);
                        mainForm_.Text           = "Tree of Thought     " + Path.GetFileNameWithoutExtension(filePath);
                        fileState_.IsFileChanged = false;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
            else  // over write the currently openned file
            {
                try
                {
                    NodeHelper helper      = new NodeHelper();
                    var        xmlDocument = helper.TreeViewToXmlDocument(treeView_);
                    xmlDocument.Save(filePath);
                    fileState_.IsFileChanged = false;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            this.fileState = fileState_;
        }
示例#35
0
 /// <summary>
 /// Close the text file. If the file was opened for writing, then first write the lines of
 /// text to the physical file.
 /// </summary>
 public virtual void Close()
 {
     if (State == FileState.OPEN)
     {
         if (Mode == FileMode.WRITE && Count > 0)
         {
             Save();
         }
         _fileData.Clear();
         Position      = -1;
         DirectoryPath = null;
         FileName      = null;
         Mode          = FileMode.INITIAL;
         State         = FileState.CLOSED;
     }
 }
示例#36
0
        public void GetSourceFiles()
        {
            using var state = new FileState();

            var imageFolder = state.CreateTempDirectory();
            var sourceFile  = Path.Combine(imageFolder, "source.jpg");
            var outputPath  = Path.Combine(imageFolder, "output", "output.jpg");

            File.WriteAllText(sourceFile, "Hey!");

            RenderOptions.SourcePath = sourceFile;
            RenderOptions.OutputPath = outputPath;

            // Run method under test
            FileService.GetSourceFiles().Should().BeEquivalentTo(sourceFile);
        }
示例#37
0
        /// <summary>
        /// Writes the Start Activity event
        /// </summary>
        public void Start(string filename, FileState fileState, UrgencyHint urgencyHint)
        {
            Start();

            if (TraceMethodArgumentsEnabled())
            {
                Write(
                    ParameterOptions,
                    new
                {
                    FileName    = filename,
                    FileState   = fileState,
                    UrgencyHint = urgencyHint,
                });
            }
        }
        public void OutputNotDirectoryIfLongitudeSpecified()
        {
            var options = ValidOptions();

            options.Longitude = 147;

            using var state = new FileState();

            options.SourcePath = Path.Combine(state.CreateTempDirectory(), "*.jpg");
            options.OutputPath = state.CreateTempDirectory();

            VerifyFailure(
                options,
                nameof(GeostationaryOptions.OutputPath),
                "If multiple source files are specified with a target latitude reprojection, the output cannot be a directory.");
        }
示例#39
0
 public static IState Load()
 {
     if (File.Exists(Path.Combine(Environment.CurrentDirectory, FILE_NAME)))
     {
         preventSave = true;
         var serializer = new XmlSerializer(typeof(BaseState), new Type[] { typeof(FileState) });
         using (var stream = new FileStream(Path.Combine(Environment.CurrentDirectory, FILE_NAME), FileMode.Open))
         {
             var state = serializer.Deserialize(stream) as BaseState;
             preventSave = false;
             return state;
         }
     }
     else
     {
         var state = new FileState();
         state.Reset(true);
         ServiceLocator.Logger.Log(string.Format("The {0} file cannot be found and was created.", FILE_NAME));
         return state;
     }
 }
        public void Add(string directory, string file, FileState value)
        {
            if(_nextValuesIndex >= Values.Length) // Resize
            {
                Resize();
            }

            Values[_nextValuesIndex] = value;
            var bucket = ComputeBucket(file);

            while (true)
            {
                if (Buckets[bucket].IsEmpty)
                {
                    Buckets[bucket] = new Bucket(directory, file, _nextValuesIndex);
                    _count++;
                    _nextValuesIndex++;
                    return;
                }
                bucket = NextCandidateBucket(bucket);
            }
        }
示例#41
0
		public IOItem OnReadWrite(AccessRoutine routine, string args, long ret)
		{
			int fd = GetFirstNumeric(args);

			FileState fs;
			if (!curFiles.TryGetValue(fd, out fs))
			{
				fs = new FileState("/Unknown-FD/" + fd.ToString(), FDType.Unknown);
				curFiles[fd] = fs;
			}

			AccessType type = (routine == AccessRoutine.Read ||
				routine == AccessRoutine.Readv ||
				routine == AccessRoutine.Pread) ?
				AccessType.Read : AccessType.Write;

			long pos;

			if (routine == AccessRoutine.Pread || routine == AccessRoutine.Pwrite)
			{
				string[] argss = args.Split(argumentSplitter, StringSplitOptions.None);
				pos = argss[argss.Length - 1].ParseHexLong();
			}
			else
			{
				pos = fs.Position;
				fs.Position += ret;
			}

			return new IOItem(pid, fs.Filename, (short)fd,
				type, routine, pos, ret, fs.FDType);			
		}
 /// <summary>
 ///     Добавить файл к индексу.
 /// </summary>
 /// <param name="index">Индекс, для которого добавляем.</param>
 /// <param name="fileState">Данные о файле.</param>
 private void AddFile(Index index, FileState fileState)
 {
     FileInternalData data = this.fileDataCache.GetActualData(fileState.FileInformation);
     bool isFileAcceptable = this.IsFileAcceptableForIndex(index, data);
     this.filesForByIndexes[index].AddFile(
         fileState.FileInformation.FileName,
         isFileAcceptable);
 }
        private unsafe void UpdateState(string directory, ref FileChangeList changes, ref WIN32_FIND_DATAW file, char* filename)
        {
            int index = _state.IndexOf(directory, filename);
            if (index == -1) // file added
            {
                string path = new string(filename);

                if (file.IsDirectory) {
                    if (_includeSubdirectories) {
                        _directories.Add(Path.Combine(directory.TrimEnd('*'), path, "*"));
                    }
                }

                changes.AddAdded(directory, path);

                var newFileState = new FileState(directory, path);
                newFileState.LastWrite = file.LastWrite;
                newFileState.FileSize = file.FileSize;
                newFileState._version = _version;
                _state.Add(directory, path, newFileState);
                return;
            }

            _state.Values[index]._version = _version;

            if (file.IsDirectory) {
                return;
            }

            var previousState = _state.Values[index];
            if (file.LastWrite != previousState.LastWrite || file.FileSize != previousState.FileSize) {
                changes.AddChanged(directory, previousState.Path);
                _state.Values[index].LastWrite = file.LastWrite;
                _state.Values[index].FileSize = file.FileSize;
            }
        }
示例#44
0
 public void ConvertThrowsIfFileStateIsAndInvalidDiffState(FileState fileState)
 {
     // Act and Assert
     var ex = Assert.Throws<InvalidOperationException>(() => HgRepository.Convert(fileState));
     Assert.Equal(String.Format("Unsupported status '{0}'.", fileState.ToString()), ex.Message);
 }
示例#45
0
		public IOItem OnMmap(int offsetMultiple, string args)
		{
			if (args.Contains("_ANON"))
				return null;

			string[] argss = args.Split(argumentSplitter, StringSplitOptions.None);
			int fd = int.Parse(argss[4]);
			long length = long.Parse(argss[1]);
			long offset = argss[5].ParseHexLong();

			FileState fs;
			if (!curFiles.TryGetValue(fd, out fs))
			{
				fs = new FileState("/Unknown-FD/" + fd.ToString(), FDType.Unknown);
				curFiles[fd] = fs;
			}

			return new IOItem(pid, fs.Filename, (short)fd,
				AccessType.Read, AccessRoutine.Mmap, offset, length, fs.FDType);
		}
示例#46
0
        private void FileParsed(FileInfo filepath, RawTrack track, FileState state)
        {
            switch (state)
            {
                case FileState.Added:
                    _added++;
                    break;
                case FileState.Updated:
                    _updated++;
                    break;
                case FileState.AddError:
                case FileState.UpdateError:
                case FileState.Error:
                    _error++;
                    break;
                case FileState.Removed:
                    _removed++;
                    break;
                case FileState.Skipped:
                    _skipped++;
                    break;
                default:
                    throw new InvalidOperationException("Unknown filestate.");
            }

            if (Parsed != null)
                Parsed(this, new ScanFileEventArgs(_currentFile, _totalFiles, filepath.FullName, track, state));
        }
示例#47
0
		public IOItem OnAccept(string args, long ret)
		{
			int accepting = GetFirstNumeric(args);
			curFiles[(int)ret] = new FileState("/AcceptFrom/" + accepting, FDType.Socket);
			return null;
		}
示例#48
0
    void OnGUI()
    {
        GUI.enabled = BrowserUtility.guiEnabled;

        if (!initGUIStyle)
        {
            InitializeStyle();

            LoadSettings();
        }

        scrollPosition1 = GUILayout.BeginScrollView(scrollPosition1, false, false, GUI.skin.horizontalScrollbar, blankScrollbar, GUILayout.Height(110));

        #region Main button row
        GUILayout.BeginHorizontal();

        DisplayButtons();

        GUILayout.EndHorizontal();
        #endregion

        GUILayout.Space(12);
        GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(3));

        #region Repository location, initialization
        GUILayout.BeginHorizontal();
        if (!string.IsNullOrEmpty(BrowserUtility.repositoryLocation))
        {
            GUILayout.Label(versionControlTypeLogo);

            GUILayout.Space(10);

            GUILayout.Label(BrowserUtility.repositoryShortName);

            GUILayout.FlexibleSpace();

            /* TODO: Put this in the settings window
             *
            if (viewMode != BrowserViewMode.ArtistMode)
            {
                if (GUILayout.Button("Reinitialize"))
                    BrowserUtility.OnButton_Init(this);
            }
            */

            var vm = (BrowserViewMode)EditorGUILayout.EnumPopup(viewMode);

            if (vm != viewMode)
            {
                viewMode = vm;
                EditorPrefs.SetInt("UnityVersionControl.BrowserViewMode", (int)viewMode);
            }
        }
        else
        {
            GUI.color = Color.red;
            GUILayout.Label("No project repository found!");
            GUI.color = Color.white;

            GUILayout.FlexibleSpace();

            // Todo, make initialization UI prettier
            if (GUILayout.Button("Initialize"))
                BrowserUtility.OnButton_Init(this);

            var vm = (BrowserViewMode)EditorGUILayout.EnumPopup(viewMode);

            if (vm != viewMode)
            {
                viewMode = vm;
                EditorPrefs.SetInt("UnityVersionControl.BrowserViewMode", (int)viewMode);
            }
        }

        GUILayout.EndHorizontal();
        #endregion

        GUILayout.EndScrollView();

        mainScrollPosition = GUILayout.BeginScrollView(mainScrollPosition);

        GUILayout.BeginHorizontal();
        if (viewMode != BrowserViewMode.ArtistMode && showDiff)
        {
            GUILayout.BeginVertical(GUILayout.Width(horizontalResizeWidget1 - 3));
        }
        else
        {
            GUILayout.BeginVertical();
        }

        #region First scroll area - Staged files (git)
        if (VersionControl.versionControlType == VersionControlType.Git && viewMode != BrowserViewMode.ArtistMode && showStagedFiles)
        {
            GUILayout.BeginVertical(GUILayout.Height(verticalResizeWidget1 - 3));

            GUILayout.BeginHorizontal();
            GUILayout.Label("Staged files", EditorStyles.toolbarButton);
            stagedFilesFilter = (FileState)EditorGUILayout.EnumMaskField(stagedFilesFilter, EditorStyles.toolbarPopup, GUILayout.Width(100));

            GUILayout.EndHorizontal();

            scrollPosition2 = GUILayout.BeginScrollView(scrollPosition2, false, false);
            GUILayout.BeginVertical();

            GUILayout.BeginHorizontal();
            GUI.backgroundColor *= .5f;
            GUILayout.Label("State", EditorStyles.toolbarButton, GUILayout.Width(80));
            GUILayout.Label("File", EditorStyles.toolbarButton, GUILayout.Width(300));
            GUILayout.Label("Path", EditorStyles.toolbarButton, GUILayout.ExpandWidth(true));
            GUI.backgroundColor = Color.white;
            GUILayout.EndHorizontal();

            filteredStagedFiles.Clear();
            filteredStagedFiles.AddRange(BrowserUtility.stagedFiles.Values);

            FilterFileList(filteredStagedFiles, true);

            for(int i = 0; i < filteredStagedFiles.Count; i++)
            {
                DisplayFile(filteredStagedFiles[i], i, true, filteredStagedFiles);
            }

            GUILayout.EndVertical();
            GUILayout.EndScrollView();

            GUILayout.EndVertical();
        }
        #endregion

        #region Resize widget
        if (VersionControl.versionControlType == VersionControlType.Git && viewMode != BrowserViewMode.ArtistMode && showStagedFiles)
        {
            Rect r = new Rect(position.x, position.y - 220, position.width, position.height);
            bool drag = GUIHelpers.ResizeWidget(drag1, ref verticalResizeWidget1, 60, position.height - 180, 6, true, r, this);

            if (drag != drag1)
            {
                drag1 = drag;
                EditorPrefs.SetFloat("UnityVersionControl.VWidget1", verticalResizeWidget1);
            }
        }
        #endregion

        #region Second scroll area - Working tree
        if (VersionControl.versionControlType == VersionControlType.Git && viewMode != BrowserViewMode.ArtistMode && showStagedFiles)
        {
            GUILayout.BeginVertical(GUILayout.Height(position.height - 126 - verticalResizeWidget1 - 3));
        }

        GUILayout.BeginHorizontal();
        GUILayout.Label("Working tree", EditorStyles.toolbarButton);
        workingTreeFilter = (FileState)EditorGUILayout.EnumMaskField(workingTreeFilter, EditorStyles.toolbarPopup, GUILayout.Width(100));
        GUILayout.EndHorizontal();

        scrollPosition3 = GUILayout.BeginScrollView(scrollPosition3, false, false);
        GUILayout.BeginVertical();

        GUILayout.BeginHorizontal();
        GUI.backgroundColor *= .5f;
        GUILayout.Label("State", EditorStyles.toolbarButton, GUILayout.Width(80));
        if (viewMode != BrowserViewMode.ArtistMode)
        {
            GUILayout.Label("File", EditorStyles.toolbarButton, GUILayout.Width(300));
        }
        GUILayout.Label("Path", EditorStyles.toolbarButton, GUILayout.ExpandWidth(true));
        GUI.backgroundColor = Color.white;
        GUILayout.EndHorizontal();

        filteredWorkingTree.Clear();
        filteredWorkingTree.AddRange(BrowserUtility.workingTree.Values);

        FilterFileList(filteredWorkingTree, false);

        for(int i = 0; i < filteredWorkingTree.Count; i++)
        {
            DisplayFile(filteredWorkingTree[i], i, false, filteredWorkingTree);
        }

        GUILayout.EndVertical();
        GUILayout.EndScrollView();
        if (VersionControl.versionControlType == VersionControlType.Git && viewMode != BrowserViewMode.ArtistMode && showStagedFiles)
        {
            GUILayout.EndVertical();
        }
        #endregion

        GUILayout.EndVertical();

        #region Resize widget
        if (viewMode != BrowserViewMode.ArtistMode && showDiff)
        {
            bool drag = GUIHelpers.ResizeWidget(drag2, ref horizontalResizeWidget1, 80, position.width - 80, 4, false, position, this);

            if (drag != drag2)
            {
                drag2 = drag;
                EditorPrefs.SetFloat("UnityVersionControl.HWidget1", horizontalResizeWidget1);
            }
        }
        #endregion

        #region 3rd scroll area - Diff
        if (viewMode != BrowserViewMode.ArtistMode && showDiff)
        {
            GUILayout.BeginVertical(GUILayout.Width(position.width - horizontalResizeWidget1));

            GUILayout.BeginHorizontal();
            GUILayout.Label("Diff", EditorStyles.toolbarButton, GUILayout.ExpandWidth(true));
            GUILayout.EndHorizontal();

            scrollPosition4 = GUILayout.BeginScrollView(scrollPosition4, false, false);
            EditorGUILayout.SelectableLabel(BrowserUtility.diffString, GUILayout.ExpandHeight(true));
            GUILayout.EndScrollView();

            GUILayout.EndVertical();
        }
        #endregion

        GUILayout.EndHorizontal();

        GUILayout.EndScrollView();

        #region Status bar
        DisplayStatusBar();
        #endregion

        GUI.enabled = BrowserUtility.guiEnabled;

        if (BrowserUtility.guiEnabled)
        {
            BrowserUtility.ProcessKeyboardEvents(ref lastSelectedIndex, filteredStagedFiles, filteredWorkingTree);
        }
    }
示例#49
0
 private void FileParsed(FileInfo filepath, FileState state)
 {
     RawTrack track = null;
     _existingFiles.TryGetValue(filepath, out track);
     FileParsed(filepath, track, state);
 }
示例#50
0
        internal static ChangeType Convert(FileState state)
        {
            switch (state)
            {
                case FileState.Added:
                    return ChangeType.Added;
                case FileState.Modified:
                    return ChangeType.Modified;
                case FileState.Removed:
                    return ChangeType.Deleted;
                case FileState.Unknown:
                    return ChangeType.Untracked;
                case FileState.Clean:
                case FileState.Ignored:
                case FileState.Missing:
                default:
                    break;
            }

            throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture,
                                                              Resources.Error_UnsupportedStatus,
                                                              state));
        }
示例#51
0
    void LoadSettings()
    {
        // View Mode
        viewMode = (BrowserViewMode)EditorPrefs.GetInt("UnityVersionControl.BrowserViewMode", (int)BrowserViewMode.Default);

        // Staged Files Filter
        stagedFilesFilter = (FileState)EditorPrefs.GetInt("UnityVersionControl.StagedFilesFilter",
            (int)(FileState.Added | FileState.Copied | FileState.Deleted | FileState.Modified | FileState.Renamed | FileState.Unmerged | FileState.Unmodified | FileState.Untracked | FileState.Ignored));

        // Working Tree Filter
        workingTreeFilter = (FileState)EditorPrefs.GetInt("UnityVersionControl.WorkingTreeFilter",
            (int)(FileState.Added | FileState.Copied | FileState.Deleted | FileState.Modified | FileState.Renamed | FileState.Unmerged | FileState.Untracked));

        // Diff Widget
        horizontalResizeWidget1 = Mathf.Clamp(EditorPrefs.GetFloat("UnityVersionControl.HWidget1", position.width - 500), 80, position.width - 80);

        // Tree/Index Widget
        verticalResizeWidget1 = Mathf.Clamp(EditorPrefs.GetFloat("UnityVersionControl.VWidget1", (position.height - 220) / 2), 60, position.height - 180);

        // Show staged files
        showStagedFiles = EditorPrefs.GetBool("UnityVersionControl.ShowStagedFiles", true);

        // Show diff
        showDiff = EditorPrefs.GetBool("UnityVersionControl.ShowDiff", true);
    }
示例#52
0
        private ChangeType Convert(FileState state)
        {
            switch (state) {
                case FileState.Added:
                    return ChangeType.Added;
                case FileState.Clean:
                    break;
                case FileState.Ignored:
                    break;
                case FileState.Missing:
                    break;
                case FileState.Modified:
                    return ChangeType.Modified;
                case FileState.Removed:
                    return ChangeType.Deleted;
                case FileState.Unknown:
                    return ChangeType.Untracked;
                default:
                    break;
            }

            throw new InvalidOperationException("Unsupported status " + state);
        }
示例#53
0
文件: Program.cs 项目: jdanyow/Hog
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += HandleException;

            var clearTable = bool.Parse(ConfigurationManager.AppSettings["ClearTable"]);
            if (clearTable)
            {
                using (var connection = new SqlConnection(connectionString))
                using (var command = new SqlCommand(string.Format("truncate table [{0}]", tableName), connection))
                {
                    connection.Open();
                    command.ExecuteNonQuery();
                    connection.Close();
                }
            }

            var folders = new List<string>();

            var serverNames = ConfigurationManager.AppSettings["ServerNames"].Split('|');
            foreach (var serverName in serverNames)
            {
                Console.WriteLine("Opening {0}...", serverName);
                using (var serverManager = ServerManager.OpenRemote(serverName))
                {
                    Console.WriteLine("{0} opened.\r\n", serverName);
                    foreach (var site in serverManager.Sites)
                    {
                        Console.WriteLine("\tSite name: {0};  Id: {1};", site.Name, site.Id);
                        Console.WriteLine("\tLog Enabled: {0}; Format: {1}; Columns: {2}", site.LogFile.Enabled, site.LogFile.LogFormat, site.LogFile.LogExtFileFlags);

                        var folder = String.Format("{0}\\W3SVC{1}", site.LogFile.Directory, site.Id);
                        if (serverName.Equals(Environment.MachineName, StringComparison.OrdinalIgnoreCase))
                            folder = "C:" + folder.Substring(13) + "\\";
                        else
                            folder = "\\\\" + serverName + "\\C$" + folder.Substring(13) + "\\";

                        Console.WriteLine("\tLog Folder: {0}\r\n", folder);

                        folders.Add(folder);

                        siteNameMapping.Add(string.Format("{0}-W3SVC{1}", serverName, site.Id), site.Name);
                    }
                }
            }

            var isStandard = bool.Parse(ConfigurationManager.AppSettings["IsStandard"]);
            var startDate = DateTime.Parse(ConfigurationManager.AppSettings["StartDate"]);
            var endDate = DateTime.Parse(ConfigurationManager.AppSettings["EndDate"]);
            var dayStep = int.Parse(ConfigurationManager.AppSettings["DayStep"]);
            if (endDate.Date > DateTime.UtcNow.Date)
                endDate = DateTime.UtcNow.Date;
            foreach (var folder in folders)
            {
                var date = startDate;
                while (date <= endDate)
                {
                    var filename = string.Format("{0}{1}_ex{2:yyMMdd}.log", folder, isStandard ? "u" : "h", date);
                    var fileState = new FileState(filename, date);  // @"C:\inetpub\logs\LogFiles\W3SVC1\u_ex130228.log"
                    files.Add(fileState);
                    date = date.AddDays(dayStep);
                }
            }

            files = files.OrderBy(f => f.FileUtcDate).ThenBy(f => f.Filename).ToList();

            var concurrentFiles = int.Parse(ConfigurationManager.AppSettings["ConcurrentFiles"]);
            for (var i = 0; i < Math.Min(files.Count, concurrentFiles); i++)
                ThreadPool.QueueUserWorkItem(ConsumeFile, null);

            Console.WriteLine("Press any enter to quit monitoring.\r\n");
            Console.ReadLine();
        }
示例#54
0
        public void AttemptLoadFrom(string file)
        {
            if (!file.EndsWith(".xml") && file != "")
                Extract(file);
            else if (file.EndsWith(".xml"))
            {
                XMLText.Text = file;
                XMLState = FileState.Ready;
            }

            LocateOtherFiles(file);
            Load();
        }
示例#55
0
        private void Load()
        {
            if (XMLState != FileState.Ready || HistoryState != FileState.Ready || SitesState != FileState.Ready || MapState != FileState.Ready)
                return;

            if (!(File.Exists(XMLText.Text) && File.Exists(HistoryText.Text) && File.Exists(SitesText.Text) && File.Exists(MapText.Text)))
                return;

            string[] files = new string[] { XMLText.Text, HistoryText.Text, SitesText.Text, MapText.Text };

            Working = true;
            XMLButton.Enabled = HistoryButton.Enabled = SitesButton.Enabled = MapButton.Enabled = false;
            LogText.Clear();
            StatusLabel.Text = "Loading...";
            StatusLabel.ForeColor = Color.Blue;

            BackgroundWorker load = new BackgroundWorker();
            load.DoWork += load_DoWork;
            load.RunWorkerCompleted += load_RunWorkerCompleted;

            load.RunWorkerAsync(files);
            while (load.IsBusy) Application.DoEvents();

            Working = false;
            XMLButton.Enabled = HistoryButton.Enabled = SitesButton.Enabled = MapButton.Enabled = true;
            XMLState = HistoryState = SitesState = MapState = FileState.Default;
        }
示例#56
0
 private void extract_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     if (e.Error != null)
     {
         StatusLabel.Text = "ERROR!";
         StatusLabel.ForeColor = Color.Red;
         LogText.Text = e.Error.Message;
         foreach (string delete in ExtractedFiles)
             File.Delete(delete);
         ExtractedFiles.Clear();
         Working = false;
     }
     else
     {
         XMLText.Text = ExtractedFiles[0];
         XMLState = FileState.Ready;
         HistoryText.Text = ExtractedFiles[1];
         HistoryState = FileState.Ready;
         SitesText.Text = ExtractedFiles[2];
         SitesState = FileState.Ready;
         MapText.Text = ExtractedFiles[3];
         MapState = FileState.Ready;
     }
 }
示例#57
0
		public IOItem OnOpen(string args, long ret)
		{
			int fd = (int)ret;
			string filename = regexOpen.Match(args).Groups[1].Value;
			curFiles[fd] = new FileState(NormalizeFilename(filename));
			return null;
		}
示例#58
0
		public IOItem OnSocket(string args, long ret)
		{
			curFiles[(int)ret] = new FileState("/Socket/" + ret, FDType.Socket);
			return null;
		}
    public string GetState(bool write) {
#if SVPN_NUNIT
      return String.Empty;
#else
      FileState fstate = new FileState();
      SocialState state = new SocialState();

      if(_node.LocalUser != null) {
        state.LocalUser = _node.LocalUser;
        fstate.Uid = state.LocalUser.Uid;
        fstate.PCID = state.LocalUser.PCID;
      }

      state.Friends = new SocialUser[_node.Friends.Values.Count];
      state.Networks = new NetworkState[_networks.Values.Count];
      state.Pending = new string[_pending.Count];
      fstate.Friends = new FriendState[_node.Friends.Values.Count];

      _pending.CopyTo(state.Pending, 0);

      int i = 0;
      foreach (KeyValuePair<string, ISocialNetwork> kvp 
        in _networks) {
        state.Networks[i] = new NetworkState();
        state.Networks[i].Name = kvp.Key;
        state.Networks[i].Message = kvp.Value.Message;
        i++;
      }

      i = 0;
      foreach(SocialUser user in _node.Friends.Values) {
        string status;

        if(_node.IsAllowed(user.Address)) {
          if(IsOffline(user.Address)) {
            status = StatusTypes.Offline.ToString();
          }
          else {
            status = StatusTypes.Online.ToString();
          }
        }
        else {
          status = StatusTypes.Blocked.ToString();
        }
        state.Friends[i] = new SocialUser(user.Certificate, user.IP, 
          status);

        FriendState friend = new FriendState();
        friend.Certificate = user.Certificate;
        friend.IP = user.IP;
        friend.Status = status;
        fstate.Friends[i] = friend;
        i++;
      }

      if(write) {
        Utils.WriteConfig(STATEPATH, fstate);
      }

      return SocialUtils.ObjectToXml<SocialState>(state);
#endif
    }
示例#60
0
		public IOItem OnPipe(string args)
		{
			Match m = regexPipe.Match(args);
			int reading = int.Parse(m.Groups[1].Value);
			int writing = int.Parse(m.Groups[2].Value);

			curFiles[reading] = new FileState("/Pipe/" + reading, FDType.Pipe);
			curFiles[writing] = new FileState("/Pipe/" + writing, FDType.Pipe);

			return null;
		}