private void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs) { try { string tempFile = Path.Combine(Settings.Instance.TempFolder, Path.GetRandomFileName() + Path.GetExtension(eventArgs.FileName)); Utils.CreateFolder(tempFile); if (File.Exists(tempFile)) { File.Delete(tempFile); } eventArgs.CameraDevice.TransferFile(eventArgs.Handle, tempFile); FileItem item = new FileItem() { FileName = tempFile, Thumb = Utils.LoadImage(tempFile, 200, 0) }; FileItems.Add(item); FileItem = item; item.ThumbFile = Path.GetTempFileName(); Utils.Save2Jpg(Utils.LoadImage(tempFile, 800, 0), item.ThumbFile); OnMessage(new MessageEventArgs(Messages.PhotoDownloaded, FileItem)); } catch (Exception ex) { Log.Error("Error transfer file", ex); } }
public async Task <bool> UpdateFiles() { QueryResults = null; HitItems.Clear(); FileItems.Clear(); if (Group != null) { var api = IndexApiClient.Create(cts.Token); var results = await api.GetFiles(Group); if (results is FileInfo[] entries) { foreach (var entry in entries.OrderBy(x => x.Path.ToUpperInvariant())) { FileItems.Add(new FileItem(entry.Fid, entry.Path, entry.Size, !Unchecked.Contains(entry.Fid))); } return(true); } else { return(false); } } else { return(true); } }
private void FileItems_PreviewMouseDown(object sender, MouseButtonEventArgs e) { if (FileItems.SelectedItems.Count > 0) { FileItems.SelectedItem = null; FileItems.Focus(); } }
public FileItemsView() { InitializeComponent(); BackButton.Command = BackCommand; ForwardButton.Command = ForwardCommand; // Create search index var searchIndexCreator = new IndexCreator(Dispatcher); // searchIndexCreator.CreateSearchIndex(); _imageLoader = new ImageLoader(Dispatcher); Unloaded += EndLoadingImage; FileItems.Focusable = true; FileItems.Focus(); InitializeCommand(); }
private void SaveList(object sender, EventArgs e) { if (locked) { return; } locked = true; FileItems list = NestedFileDatabase.Collection.GetList(GetList); if (list != null) { NestedFileDatabase.Collection.SetListName(GetList, textBox_Name.Text); BuildLists(); } locked = false; }
private async void ProcessQueryResults() { var m = new List <(HitFile Hit, FileContents Contents)>(); foreach (var hit in QueryResults) { var f = FileItems.Where(x => x.Fid == hit.Fid).FirstOrDefault(); if (f != null && f.Check) { var contents = await DownloadFile(hit.Fid); m.Add((hit, contents)); } } m.Sort((a, b) => { return(a.Contents.Path.ToUpperInvariant().CompareTo(b.Contents.Path.ToUpperInvariant())); }); var d = new Dictionary <int, int>(); foreach (var(hit, contents) in m) { foreach (var entry in hit.Rows) { var item = new HitItem(contents.Fid, contents.Path, entry.Row + 1, contents.Lines[entry.Row], entry.Matches.Select(x => (x.StartCol, x.EndCol)).ToList()); HitItems.Add(item); if (d.TryGetValue(item.Fid, out var hitRows)) { d[item.Fid] = hitRows + 1; } else { d.Add(item.Fid, 1); } } } foreach (var f in FileItems) { if (d.TryGetValue(f.Fid, out var hitRows)) { f.HitRows = hitRows; } else { f.HitRows = 0; } } }
private void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs) { try { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); string tempFile = Path.Combine(Settings.Instance.TempFolder, Path.GetRandomFileName() + Path.GetExtension(eventArgs.FileName)); Utils.CreateFolder(tempFile); if (File.Exists(tempFile)) { File.Delete(tempFile); } eventArgs.CameraDevice.TransferFile(eventArgs.Handle, tempFile); FileItem item = new FileItem() { TempFile = tempFile, Thumb = Utils.LoadImage(tempFile, 200), Variables = Context.WorkFlow.Variables.GetItemVariables() }; FileItems.Add(item); FileItem = item; Context.FileItem = FileItem; Utils.WaitForFile(tempFile); using (MemoryStream stream = new MemoryStream(File.ReadAllBytes(tempFile))) { Context.FileItem = item; Context.ImageStream = stream; OnMessage(new MessageEventArgs(Messages.PhotoDownloaded, FileItem) { Context = Context }); OnMessage(new MessageEventArgs(Messages.FileTransferred, Context) { Context = Context }); } } catch (Exception ex) { Log.Error("Error transfer file", ex); } }
private void BtnAdd_Click(object sender, EventArgs e) { if (locked) { return; } locked = true; string search = searchInput1.Text.ToString(); FileItems[] all = NestedFileDatabase.Collection.GetLists(); for (int l = lastList; l < all.Length; l++) { FileItems List = all[l]; if (List != null) { var allItems = List.GetItems(); for (int i = 0; i < allItems.Length; i++) { var allRows = allItems[i].GetRows(); for (int r = 0; r < allRows.Length; r++) { var row = allRows[i]; if ( Compare(search.ToLower().Trim(), row.RowName.ToLower().Trim()) || Compare(search.ToLower().Trim(), row.RowValue.ToString().ToLower().Trim()) ) { locked = false; comboBox_lists.SelectedIndex = l; listBox_items.Rows[i].Selected = true; listBox_items.CurrentCell = listBox_items.Rows[i].Cells[0]; lastList = l; lastItem = i + 1; break; } } } } } locked = false; lastList = 0; lastItem = 0; }
private void ComboBox_lists_SelectedIndexChanged(object sender, EventArgs e) { if (locked) { return; } locked = true; FileItems list = NestedFileDatabase.Collection.GetList(GetList); if (list != null) { textBox_Name.Text = list.ListName; locked = true; listBox_items.SuspendLayout(); listBox_items.RowCount = 0; locked = false; listBox_items.ResumeLayout(); listBox_items.RowCount = NestedFileDatabase.ItemCount(GetList); listBox_items.PerformLayout(); ListBoxSelectItem(null, null); } locked = false; }
internal void MSaveFile(string path) { FileItems[] all = lists.GetLists(); DataWriter writer = new DataWriter(); writer.Write(all.Length); for (int l = 0; l < all.Length; l++) { FileItems list = all[l]; writer.Write(list.ListId); writer.Write(list.ListName); FileItem[] items = list.GetItems(); writer.Write(items.Length); for (int i = 0; i < items.Length; i++) { FileItem item = items[i]; FileRow[] rows = item.GetRows(); writer.Write(item.ItemId); writer.Write(item.ItemName); writer.Write(rows.Length); for (int r = 0; r < rows.Length; r++) { writer.Write(rows[r].RowIndex); writer.Write(rows[r].RowName); writer.Write((byte)rows[r].RowType); switch (rows[r].RowType) { case FileRowType.Byte: writer.Write((byte)rows[r].RowValue); break; case FileRowType.Int: writer.Write((int)rows[r].RowValue); break; case FileRowType.Short: writer.Write((short)rows[r].RowValue); break; case FileRowType.Float: writer.Write((float)rows[r].RowValue); break; case FileRowType.Double: writer.Write((double)rows[r].RowValue); break; case FileRowType.Boolean: writer.Write((bool)rows[r].RowValue); break; case FileRowType.String: writer.Write((string)rows[r].RowValue); break; } } } } File.WriteAllBytes(path, writer.ToArray()); }
public CaseFileItemInstance GetCaseFileItem(string id) { return(FileItems.FirstOrDefault(f => f.Id == id)); }
public InitCommand(InitCommandOptions options) { _options = options; _metadataQuestions = new IQuestion[] { new MultiAnswerQuestion( "What are the locations of your source code files?", (s, m, c) => { if (s != null) { var item = new FileMapping( new FileMappingItem(s) { SourceFolder = options.ApiSourceFolder }); m.Metadata.Add(new MetadataJsonItemConfig { Source = item, Destination = DefaultMetadataOutputFolder, }); m.Build.Content = new FileMapping(new FileMappingItem("api/**.yml", "api/index.md")); } }, new string[] { options.ApiSourceGlobPattern ?? "src/**.csproj" }) { Descriptions = new string[] { "Supported project files could be .sln, .csproj, .vbproj project files, or assembly files .dll, or .cs, .vb source files", Hints.Glob, Hints.Enter, } }, new MultiAnswerQuestion( "What are the locations of your markdown files overwriting triple slash comments?", (s, m, _) => { if (s != null) { var exclude = new FileItems(DefaultExcludeFiles); if (!string.IsNullOrEmpty(m.Build.Destination)) { exclude.Add($"{m.Build.Destination}/**"); } m.Build.Overwrite = new FileMapping(new FileMappingItem(s) { Exclude = exclude }); } }, new string[] { "apidoc/**.md" }) { Descriptions = new string[] { "You can specify markdown files with a YAML header to overwrite summary, remarks and description for parameters", Hints.Glob, Hints.Enter, } }, }; _overallQuestion = new IQuestion[] { new SingleAnswerQuestion( "Where to save the generated documentation?", (s, m, _) => m.Build.Destination = s, "_site") { Descriptions = new string[] { Hints.Enter, } }, }; _buildQuestions = new IQuestion[] { // TODO: Check if the input glob pattern matches any files // IF no matching: WARN [init]: There is no file matching this pattern. new MultiAnswerQuestion( "What are the locations of your conceptual files?", (s, m, _) => { if (s != null) { if (m.Build.Content == null) { m.Build.Content = new FileMapping(); } m.Build.Content.Add(new FileMappingItem(s)); } }, new string[] { "articles/**.md", "articles/**/toc.yml", "toc.yml", "*.md" }) { Descriptions = new string[] { "Supported conceptual files could be any text files. Markdown format is also supported.", Hints.Glob, Hints.Enter, } }, new MultiAnswerQuestion( "What are the locations of your resource files?", (s, m, _) => { if (s != null) { m.Build.Resource = new FileMapping(new FileMappingItem(s)); } }, new string[] { "images/**" }) { Descriptions = new string[] { "The resource files which conceptual files are referencing, e.g. images.", Hints.Glob, Hints.Enter, } }, new MultiAnswerQuestion( "Do you want to specify external API references?", (s, m, _) => { if (s != null) { m.Build.XRefMaps = new ListWithStringFallback(s); } }, null) { Descriptions = new string[] { "Supported external API references can be in either JSON or YAML format.", Hints.Enter, } }, new MultiAnswerQuestion( "What documentation templates do you want to use?", (s, m, _) => { if (s != null) { m.Build.Templates.AddRange(s); } }, new string[] { "default" }) { Descriptions = new string[] { "You can define multiple templates in order. The latter one will overwrite the former one if names collide", "Predefined templates in docfx are now: default, statictoc", Hints.Enter, } } }; _selectorQuestions = new IQuestion[] { new YesOrNoQuestion( "Does the website contain API documentation from source code?", (s, m, c) => { m.Build = new BuildJsonConfig(); if (s) { m.Metadata = new MetadataJsonConfig(); c.ContainsMetadata = true; } else { c.ContainsMetadata = false; } }), }; }
public FileMappingItem(params string[] files) { Files = new FileItems(files); }
private void CalFileState() { if (ChatViewModel == null) { ChatViewModel = AppData.MainMV.ChatListVM.SelectedItem; } else if (_targetModel?.MessageState == MessageStates.Fail) { if (_operateTask != null) { _operateTask.Cancel(); } AcioningItems.Remove(this); } if (_targetModel == null && this.DataContext is MessageModel item) { this.PreviewMouseRightButtonUp -= SmallVideo_PreviewMouseRightButtonUp; _targetModel = item; var target = FileItems.FirstOrDefault(info => info.MsgKey == item.MsgKey); if (target == null) { target = item; FileItems.Add(item); } if (string.IsNullOrEmpty(target.MsgKey)) { target.MsgKey = Guid.NewGuid().ToString(); } _completeTime = _targetModel.SendTime; _isMine = _targetModel.IsMine; _isSync = _targetModel.IsSync; this.DataContext = _targetModel = target; if (_completeTime != null) { _targetModel.SendTime = _completeTime.Value; } _targetModel.IsMine = _isMine; _targetModel.IsSync = _isSync; //this.gridProgress.Visibility = Visibility.Visible; //this.borderPlay.Visibility = Visibility.Collapsed; } else { if (_targetModel != null) { return; } this.gridProgress.Visibility = Visibility.Collapsed; this.borderPlay.Visibility = Visibility.Visible; this.imgReset.Visibility = Visibility.Collapsed; this.imgDownload.Visibility = Visibility.Collapsed; this.PreviewMouseRightButtonUp += SmallVideo_PreviewMouseRightButtonUp; return; } if (SDKClient.SDKClient.Instance.property.CurrentAccount.Isforbidden) { _targetModel.MessageState = MessageStates.Warn; } //是否发送者 bool isSender = _targetModel.Sender.ID == AppData.Current.LoginUser.ID; string filePath = System.IO.Path.Combine(SDKClient.SDKClient.Instance.property.CurrentAccount.filePath, this.VideoPath); if (System.IO.File.Exists(filePath) || System.IO.File.Exists(this.VideoPath)) { if (isSender) //当前作为发送方 { if (_targetModel.IsSending) //若是正在发送中 { this.FileState = _targetModel.ResourceModel.FileState = FileStates.SendOffline; this.gridProgress.Visibility = Visibility.Visible; this.borderPlay.Visibility = Visibility.Collapsed; this.imgReset.Visibility = Visibility.Collapsed; this.imgDownload.Visibility = Visibility.Collapsed; SendVideo(); } else if (_targetModel.ResourceModel.DBState == 0) { this.gridProgress.Visibility = Visibility.Collapsed; this.borderPlay.Visibility = Visibility.Visible; this.imgReset.Visibility = Visibility.Collapsed; this.imgDownload.Visibility = Visibility.Collapsed; //HasContexMenu = true; } else { this.FileState = _targetModel.ResourceModel.FileState = FileStates.Completed; if (_targetModel.IsSync) { _completeTime = _targetModel.SendTime; } else if (_completeTime == null) { _completeTime = DateTime.Now.AddMinutes(-5); } } } else //当前用户作为接收方,若文件已有则认为已经成功 { this.FileState = _targetModel.ResourceModel.FileState = FileStates.Completed; if (_targetModel.IsSync) { _completeTime = _targetModel.SendTime; } else if (_completeTime == null) { _completeTime = DateTime.Now.AddMinutes(-5); } } } else { if (isSender) //发送者 { this.FileState = _targetModel.ResourceModel.FileState = FileStates.WaitForReceieve; if (_targetModel.IsSync) { _completeTime = _targetModel.SendTime; } else if (_completeTime == null) { _completeTime = DateTime.Now.AddMinutes(-5); } } else { this.FileState = _targetModel.ResourceModel.FileState = FileStates.WaitForReceieve; } } }
private void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs) { try { // if no workflow loaded do nothing if (Context?.WorkFlow == null) { return; } string tempFile = Path.Combine(Settings.Instance.TempFolder, Path.GetRandomFileName() + Path.GetExtension(eventArgs.FileName)); // set in varieable the captured file original name Context?.WorkFlow?.Variables.SetValue("CapturedFileName", Path.GetFileNameWithoutExtension(eventArgs.FileName)); Utils.CreateFolder(tempFile); if (File.Exists(tempFile)) { File.Delete(tempFile); } eventArgs.CameraDevice.TransferFile(eventArgs.Handle, tempFile); eventArgs.CameraDevice.ReleaseResurce(eventArgs); if (!Context.CaptureEnabled) { // files should be transferred anyway if capture is enabled or not // to prevent camera buffer fill up Utils.DeleteFile(tempFile); Log.Debug("File transfer disabled"); return; } FileItem item = new FileItem() { TempFile = tempFile, Thumb = Utils.LoadImage(tempFile, 200), Variables = Context.WorkFlow.Variables.GetItemVariables() }; Bitmap = Utils.LoadImage(tempFile, 1090); FileItems.Add(item); FileItem = item; Context.FileItem = FileItem; Utils.WaitForFile(tempFile); Context.FileItem = item; OnMessage(new MessageEventArgs(Messages.PhotoDownloaded, FileItem) { Context = Context }); OnMessage(new MessageEventArgs(Messages.FileTransferred, Context) { Context = Context }); } catch (Exception ex) { Log.Error("Error transfer file", ex); } }
public virtual void OnMessage(MessageEventArgs e) { switch (e.Name) { case Messages.StartLiveView: _frames = 0; _startTime = DateTime.Now; _liveViewTimer.Start(); break; case Messages.StopLiveView: _liveViewTimer.Stop(); break; case Messages.ShowMessage: MessageBox.Show(e.Param.ToString()); break; case Messages.SaveVariables: case Messages.SessionFinished: SaveVariables(e.Context.WorkFlow); break; case Messages.ThumbCreate: UpdateThumbAsync(); break; case Messages.NextPhoto: if (SelectedItem != null) { var i = FileItems.IndexOf(SelectedItem); i++; if (i < FileItems.Count) { SelectedItem = FileItems[i]; } } UpdateThumbAsync(); break; case Messages.PrevPhoto: if (SelectedItem != null) { var i = FileItems.IndexOf(SelectedItem); i--; if (i > -1) { SelectedItem = FileItems[i]; } } UpdateThumbAsync(); break; case Messages.DeletePhoto: { if (SelectedItem == null || FileItems.Count == 0) { return; } var i = FileItems.IndexOf(SelectedItem); SelectedItem.Clear(); FileItems.Remove(SelectedItem); if (i >= FileItems.Count) { i--; } if (i >= 0 && FileItems.Count > 0) { SelectedItem = FileItems[i]; } UpdateThumbAsync(); } break; case Messages.ClearPhotos: { foreach (var item in FileItems) { item.Clear(); } FileItems.Clear(); SelectedItem = null; UpdateThumbAsync(); break; } } Message?.Invoke(this, e); }
private void CalFileState() { if (this.FileState == FileStates.Receiving) { return; } try { this.tbName.ToolTip = System.IO.Path.GetFileName(this.FullName);//?.Split('\\').LastOrDefault(); } catch { return; } if (ChatViewModel == null) { ChatViewModel = AppData.MainMV.ChatListVM.SelectedItem; } else if (_targetModel.MessageState == MessageStates.Fail) { if (_operateTask != null) { _operateTask.Cancel(); } AcioningItems.Remove(this); } if (_targetModel == null && this.DataContext is MessageModel item) { _targetModel = item; var target = FileItems.FirstOrDefault(info => info.MsgKey == item.MsgKey); if (target == null) { target = item; FileItems.Add(item); } if (string.IsNullOrEmpty(target.MsgKey)) { target.MsgKey = Guid.NewGuid().ToString(); } this.DataContext = _targetModel = target; } if (this.IsMainView == false) { if (_targetModel.ResourceModel.FileState != FileStates.None) { return; } } //是否发送者 bool isSender = _targetModel.Sender.ID == AppData.Current.LoginUser.ID; _targetModel.ResourceModel.FileImg = Helper.FileHelper.GetFileImage(this.FullName, false); this.gridLayout.ToolTip = System.IO.Path.GetFileName(this.FullName); if (File.Exists(this.FullName)) { if (isSender && _targetModel.IsSending) { if (this._targetModel.ResourceModel.FileState == FileStates.SendOffline || this._targetModel.ResourceModel.FileState == FileStates.SendOnline) { } else { this.FileState = _targetModel.ResourceModel.FileState = FileStates.SendOnline; this.OnlineSend(); } } else { this.FileState = _targetModel.ResourceModel.FileState = FileStates.Completed; _completeTime = DateTime.Now.AddMinutes(-5); } } else { if (isSender) //发送者 { this.FileState = _targetModel.ResourceModel.FileState = FileStates.Completed; _completeTime = DateTime.Now.AddMinutes(-5); } else { this.FileState = _targetModel.ResourceModel.FileState = FileStates.WaitForReceieve; } } }