public async Task <string> UploadFile(FileBinding file) { string fileName = Guid.NewGuid().ToString().Replace("-", string.Empty); using (var context = GetMainContext()) { var fileType = context.FileTypes.SingleOrDefault(x => x.MimeType == file.MimeType); string fullPath = $"{GetFolder((StorageFileType)fileType.Id)}/{fileName}.{fileType.Extension}"; var data = fileType.IsImage ? await ProcessImageFile(file) : file.Data; await _azureStorageHelper.UploadFile(fullPath, data); var fileEntity = new Model.Database.Main.Storage.File() { Created = DateTime.Now, FileTypeId = fileType.Id, ProviderId = (int)StorageProvider.AzureStorage, SizeInBytes = data.Length, Uri = fullPath, UserId = UserId, ValueId = fileName }; context.Files.Add(fileEntity); await context.SaveChangesAsync(); } return(fileName); }
// File List Delete private void toolStripDelete_Click(object sender, EventArgs e) { if (fileList.SelectedItems.Count == 1) { FileBinding bind = (FileBinding)fileList.SelectedItems[0].Tag; bind.mFeature.RemoveComponent(bind.mComponent); } ReloadFileList(); }
private void setAsMainFeatureToolStripMenuItem_Click(object sender, EventArgs e) { if (fileList.SelectedItems.Count == 1) { FileBinding bind = (FileBinding)fileList.SelectedItems[0].Tag; currentProject.mainTargetApp = bind.mComponent.GetFirstFileId(); } ReloadFileList(); }
private void fileList_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { if ((null != fileList.SelectedItems) && (0 < fileList.SelectedItems.Count)) { FileBinding bind = (FileBinding)fileList.SelectedItems[0].Tag; currentFileProperties.SelectedObject = bind.mComponent.componentFiles[0]; } else { currentFileProperties.SelectedObject = null; } }
private void currentFileDstDirectory_TextChanged(object sender, EventArgs e) { // Update the selected item if (fileList.SelectedItems.Count == 1) { FileBinding bind = (FileBinding)fileList.SelectedItems[0].Tag; bind.mListViewItm.Text = bind.mComponent.componentFiles[0].dstName; bind.mListViewItm.SubItems[1].Text = bind.mComponent.targetDirectory; int idx = fileList.SelectedItems[0].Index; // BUG: The list is not updated immediately bind.mListViewItm.ListView.Refresh(); } }
private async Task <byte[]> ProcessImageFile(FileBinding file) { if (file.ImageResize.HasValue) { var image = Image.Load(file.Data); image.Mutate(x => x.Resize((int)(image.Width * file.ImageResize.Value), 0)); using (var ms = new MemoryStream()) { await image.SaveAsJpegAsync(ms); return(ms.ToArray()); } } else { return(file.Data); } }
private void ReloadFileList() { fileList.Items.Clear(); SetupFeature feature = null; try { feature = (SetupFeature)featuresTree.SelectedNode.Tag; } catch (NullReferenceException) { return; } foreach (SetupComponent cmp in feature.components) { foreach (SetupFile file in cmp.componentFiles) { ListViewItem item = new ListViewItem(file.dstName); item.SubItems.Add(cmp.targetDirectory); item.SubItems.Add(file.srcName); item.SubItems.Add(file.srcDirectory); FileBinding bind = new FileBinding(); bind.mComponent = cmp; bind.mFeature = feature; bind.mListViewItm = item; item.Tag = bind; if (cmp.GetFirstFileId() == currentProject.mainTargetApp) { item.ImageIndex = 1; // Main target } fileList.Items.Add(item); } } }