private void InitFile() { this.FilenameTextBlock.Width = 180; var Mime = new MimeSharp.Mime(); try { if (!File.Exists(file.RealFilePath)) { throw new Exception("Non-existant file"); } Filetype = Mime.Lookup(file.RealFilePath); foreach (KeyValuePair <string, string> pair in MimeTo) { if (Filetype.StartsWith(pair.Key)) { this.Image.Source = ((Image)this.FindResource(pair.Value)).Source; if (pair.Key == "image") { Panel.MouseMove += ImageMouseMove; } return; } } } catch (Exception) { this.Image.Source = ((Image)this.FindResource("UnknownFileImage")).Source; } }
public static string GetExtensionFor(string mimeType) { if (String.IsNullOrWhiteSpace(mimeType)) { return(string.Empty); } if (mimeType.Equals("text/xml", StringComparison.OrdinalIgnoreCase)) { return(".xml"); } var extension = new MimeSharp.Mime().Extension(mimeType).FirstOrDefault(); return(String.IsNullOrWhiteSpace(extension) ? string.Empty : extension); }
protected override async Task ProcessRecordAsync() { var repositoriesClient = GitHubClient.Repository; var repository = await repositoriesClient.GetForOrg(Organization, Repository); var release = await repositoriesClient.Release.GetAll(repository.Id).ToObservable().SelectMany(list => list).Where(_ => _.Name == ReleaseName) .IgnoreException <Release, NotFoundException>(this, ReleaseName).DefaultIfEmpty(); if (release == null) { WriteVerbose("Creating new release"); var newRelease = new NewRelease(ReleaseName) { Draft = Draft, Body = ReleaseNotes, Name = ReleaseName }; release = await repositoriesClient.Release.Create(repository.Id, newRelease); WriteVerbose("Uploading assets"); var mime = new MimeSharp.Mime(); if (Files != null) { await Files.ToObservable() .Do(file => WriteVerbose($"Uploading {file}")) .SelectMany(file => Observable.Using(() => File.OpenRead(file), stream => { var fileName = Path.GetFileName(file); var releaseAssetUpload = new ReleaseAssetUpload() { FileName = fileName, ContentType = mime.Lookup(fileName), RawData = stream }; return(repositoriesClient.Release.UploadAsset(release, releaseAssetUpload).ToObservable()); })); } WriteObject(release); } else { throw new NotSupportedException($"Release {ReleaseName} exists"); } }