public static webModels.Page ToWebModel(this coreModels.Page page) { var retVal = new webModels.Page(); retVal.Name = page.PageName; if (ContentTypeUtility.IsImageContentType(page.ContentType)) { if (page.ByteContent != null) { retVal.ByteContent = page.ByteContent; } } else if (ContentTypeUtility.IsTextContentType(page.ContentType)) { if (page.ByteContent != null) { retVal.Content = Encoding.UTF8.GetString(page.ByteContent); } } else // treat as a binary file for now { if (page.ByteContent != null) { retVal.ByteContent = page.ByteContent; } } retVal.Language = page.Language; retVal.ModifiedDate = page.Updated.RemoveMilliseconds(); retVal.Id = page.Id; retVal.ContentType = page.ContentType; return(retVal); }
public Models.ContentPage GetPage(string path) { var retVal = new Models.ContentPage(); var fullPath = GetFullPath(path); if (File.Exists(fullPath)) { var itemName = Path.GetFileName(fullPath); var content = File.ReadAllBytes(fullPath); retVal.Name = FixPathName(path); retVal.ModifiedDate = Directory.GetLastWriteTimeUtc(fullPath); retVal.Language = GetLanguageFromFullPath(fullPath); retVal.ByteContent = File.ReadAllBytes(fullPath); retVal.ContentType = ContentTypeUtility.GetContentType(Path.GetFileName(fullPath), File.ReadAllBytes(fullPath)); retVal.Path = RemoveBaseDirectory(fullPath); retVal.Id = RemoveBaseDirectory(fullPath); } else { retVal = null; } return(retVal); }
public IHttpActionResult GetThemeAsset(string assetId, string storeId, string themeId) { base.CheckCurrentUserHasPermissionForObjects(ContentPredefinedPermissions.Read, new ContentScopeObject { StoreId = storeId }); var blobItem = _contentStorageProvider.GetBlobInfo("/Themes/" + storeId + "/" + themeId + "/" + assetId); if (blobItem != null) { var themeAsset = blobItem.ToThemeAssetWebModel(); themeAsset.Id = assetId; using (var stream = _contentStorageProvider.OpenRead(blobItem.Url)) { var data = stream.ReadFully(); if (ContentTypeUtility.IsImageContentType(themeAsset.ContentType)) { themeAsset.ByteContent = data; } else if (ContentTypeUtility.IsTextContentType(themeAsset.ContentType)) { themeAsset.Content = Encoding.UTF8.GetString(data); } } return(Ok(themeAsset)); } return(NotFound()); }
public IHttpActionResult GetPage(string storeId, string language, string pageName) { CheckCurrentUserHasPermissionForObjects(ContentPredefinedPermissions.Read, new ContentScopeObject { StoreId = storeId }); var blobItem = _contentStorageProvider.GetBlobInfo("/Pages/" + storeId + "/" + pageName); if (blobItem != null) { var page = blobItem.ToPageWebModel(); page.Id = "/" + pageName; using (var stream = _contentStorageProvider.OpenRead(blobItem.Url)) { var data = stream.ReadFully(); if (ContentTypeUtility.IsImageContentType(page.ContentType)) { page.ByteContent = data; } else if (ContentTypeUtility.IsTextContentType(page.ContentType)) { page.Content = Encoding.UTF8.GetString(data); } } return(Ok(page)); } return(NotFound()); }
public string GetBody(EmailConfiguration emailConfiguration, Email email) { string contentType = ContentTypeUtility.GetContentTypeString(email.ContentType); string[] receivers = email.To.Select(t => t.ToString()).ToArray(); return(new SendGridBodyGenerator().Generate(receivers, email.Subject, emailConfiguration.FromName, emailConfiguration.FromAddress, contentType, email.Content)); }
private void btnCreateContentType_Click(object sender, EventArgs e) { ContentTypeUtility.CreateContentType(SpContext.ClientContext, (ContentType)comboParentContent.SelectedValue, textContentType.Text, textDescription.Text, textGroup.Text, Fields); }
public async Task <ThemeAsset> GetThemeAsset(string storeId, string themeId, string path) { var fullPath = GetFullPath(storeId, themeId, path); var item = await _repository.GetContentItem(fullPath); item.Path = FixPath(GetThemePath(storeId, themeId), item.Path); item.ContentType = ContentTypeUtility.GetContentType(item.Name, item.ByteContent); return(item.AsThemeAsset()); }
public static SyncAsset ToSyncModel(this Page item) { var retVal = new SyncAsset(); retVal.InjectFrom(item); retVal.Updated = item.ModifiedDate; retVal.Id = ContentTypeUtility.IsImageContentType(item.ContentType) ? item.Name : String.Format("{0}/{1}", item.Language, item.Name); return(retVal); }
public static Content CreateContent(Box parent, string data) { Dictionary <string, string> attr = CreateAttributes(data); ContentType type = ContentType.none; if (attr.ContainsKey("type")) { type = ContentTypeUtility.ConvertStringToContentType(attr["type"]); } return(type.GetContent(parent, attr)); }
public async Task <IEnumerable <ThemeAsset> > GetThemeAssets(string storeId, string themeName, GetThemeAssetsCriteria criteria) { var themePath = GetThemePath(storeId, themeName); var items = await _repository.GetContentItems(themePath, criteria); foreach (var item in items) { item.Path = FixPath(themePath, item.Path); item.ContentType = ContentTypeUtility.GetContentType(item.Name, item.ByteContent); } return(items.Select(c => c.AsThemeAsset())); }
public IEnumerable <Models.Page> GetPages(string storeId, GetPagesCriteria criteria) { var path = string.Format("{0}/", storeId); var pages = _repository.GetPages(path, criteria); foreach (var page in pages) { page.Path = FixPath(GetPageMainPath(storeId, page.Language), page.Path); page.ContentType = ContentTypeUtility.GetContentType(page.Name, page.ByteContent); } return(pages.Select(p => p.AsPage())); }
public ThemeAsset GetThemeAsset(string storeId, string themeId, string path) { var fullPath = GetFullPath(storeId, themeId, path); using (var repository = _repositoryFactory()) { var item = repository.GetContentItem(fullPath); item.Path = FixPath(GetThemePath(storeId, themeId), item.Path); item.ContentType = ContentTypeUtility.GetContentType(item.Name, item.ByteContent); return(item.AsThemeAsset()); } }
private ContentItem GetContentItem(string path, string storeId, string themePath) { var retVal = new ContentItem(); var fullPath = GetFullPath(path, themePath); var itemName = Path.GetFileName(fullPath); retVal.ByteContent = File.ReadAllBytes(fullPath); retVal.Name = itemName; retVal.ContentType = ContentTypeUtility.GetContentType(fullPath, retVal.ByteContent); return(retVal); }
public static EmailPreviewResponse Create(Email email) { string contentType = ContentTypeUtility.GetContentTypeString(email.ContentType); string[] receivers = email.To.Select(t => t.ToString()).ToArray(); return(new EmailPreviewResponse() { Preview = email.Content, ContentType = contentType, To = receivers, Subject = email.Subject }); }
public Models.Page GetPage(string storeId, string pageName, string language) { var fullPath = GetFullName(storeId, pageName, language); var item = _repository.GetPage(fullPath); if (item == null) { return(null); } item.Path = FixPath(GetPageMainPath(storeId, language), item.Path); item.ContentType = ContentTypeUtility.GetContentType(item.Name, item.ByteContent); return(item.AsPage()); }
public FilePathResult Download(string file) { var decodedFile = HttpUtility.UrlDecode(file); string pathString = WebConfigurationManager.AppSettings["directorypath"]; string fullPath = pathString + decodedFile; FileInfo fileInfo = new FileInfo(fullPath); string contentType = ContentTypeUtility.GetMimeTypeFromFilename(fileInfo.Name); var result = new FilePathResult(fileInfo.FullName, contentType) { FileDownloadName = fileInfo.Name }; return(result); }
public static webModels.ThemeAsset ToWebModel(this domainModels.ThemeAsset item, bool loadContent = true) { var retVal = new webModels.ThemeAsset(); if (loadContent) { if (ContentTypeUtility.IsImageContentType(item.ContentType)) { if (item.ByteContent != null) { //retVal.Content = ContentTypeUtility.ConvertImageToBase64String(item.ByteContent, item.ContentType); retVal.ByteContent = item.ByteContent; } else { retVal.Content = retVal.AssetUrl = item.AssetUrl; } } else if (ContentTypeUtility.IsTextContentType(item.ContentType)) { if (item.ByteContent != null) { retVal.Content = Encoding.UTF8.GetString(item.ByteContent); } } else // treat as a binary file for now { if (item.ByteContent != null) { retVal.ByteContent = item.ByteContent; } } } retVal.Id = item.Id; retVal.ContentType = item.ContentType; retVal.Updated = item.Updated; retVal.Name = string.Join("/", item.Id.Split('/').AsEnumerable().Skip(1)); return(retVal); }
public IEnumerable <ThemeAsset> GetThemeAssets(string storeId, string themeName, GetThemeAssetsCriteria criteria) { var themePath = GetThemePath(storeId, themeName); using (var repository = _repositoryFactory()) { var items = repository.GetContentItems(themePath, criteria); var retVal = new List <ThemeAsset>(); foreach (var item in items) { var path = item.Path; item.Path = FixPath(themePath, item.Path); item.ContentType = ContentTypeUtility.GetContentType(item.Name, item.ByteContent); var addedItem = item.AsThemeAsset(); addedItem.Path = path; retVal.Add(addedItem); } return(retVal); } }
public Models.Page GetPage(string storeId, string pageName, string language) { var fullPath = GetFullName(storeId, pageName, language); using (var repository = _repositoryFactory()) { var item = repository.GetPage(fullPath); if (item == null) { return(null); } item.Path = FixPath(GetPageMainPath(storeId, language), item.Path); if (string.IsNullOrEmpty(item.ContentType)) { item.ContentType = ContentTypeUtility.GetContentType(item.Name, item.ByteContent); } return(item.AsPage()); } }
public IEnumerable <Models.ContentPage> GetPages(string path, GetPagesCriteria criteria) { var list = new List <Models.ContentPage>(); var retVal = new List <Models.ContentPage>(); var fullPath = GetFullPath(path); if (!Directory.Exists(fullPath)) { Directory.CreateDirectory(fullPath); } var languages = Directory.GetDirectories(fullPath); foreach (var language in languages) { var files = Directory.GetFiles(language, "*.*", SearchOption.AllDirectories); foreach (var file in files) { var addedPage = new Models.ContentPage { Name = FixName(file, language), ModifiedDate = Directory.GetLastWriteTimeUtc(file), Language = GetLanguageFromLanguagePath(language), ByteContent = File.ReadAllBytes(file), ContentType = ContentTypeUtility.GetContentType(Path.GetFileName(file), File.ReadAllBytes(file)), Path = RemoveBaseDirectory(file), Id = RemoveBaseDirectory(file) }; list.Add(addedPage); } } return(list.ToArray()); }
public static webModels.Page ToWebModel(this coreModels.Page page) { var retVal = new webModels.Page(); retVal.Name = page.PageName; if (ContentTypeUtility.IsImageContentType(page.ContentType)) { if (page.ByteContent != null) { //retVal.Content = ContentTypeUtility.ConvertImageToBase64String(item.ByteContent, item.ContentType); retVal.ByteContent = page.ByteContent; } //else //{ // retVal.Content = retVal.AssetUrl = item.AssetUrl; //} } else if (ContentTypeUtility.IsTextContentType(page.ContentType)) { if (page.ByteContent != null) { retVal.Content = Encoding.UTF8.GetString(page.ByteContent); } } else // treat as a binary file for now { if (page.ByteContent != null) { retVal.ByteContent = page.ByteContent; } } retVal.Language = page.Language; retVal.ModifiedDate = page.Updated; retVal.Id = page.Id; retVal.ContentType = page.ContentType; return(retVal); }
public async Task <IHttpActionResult> SaveImageItem(string storeId, string themeId, string folderName) { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var provider = new MultipartFileStreamProvider(_pathForMultipart); await Request.Content.ReadAsMultipartAsync(provider); var loadItemInfo = new LoadItemInfo(); foreach (var file in provider.FileData) { var fileInfo = new FileInfo(file.LocalFileName); using (FileStream stream = fileInfo.OpenRead()) { var fileName = file.Headers.ContentDisposition.FileName.Replace("\"", string.Empty); var filePath = string.Format("{0}{1}", _pathForFiles, fileName); using (var f = File.Create(filePath)) { await stream.CopyToAsync(f); } loadItemInfo.Name = fileName; loadItemInfo.ContentType = file.Headers.ContentType.MediaType; if (ContentTypeUtility.IsImageContentType(loadItemInfo.ContentType)) { loadItemInfo.Content = ContentTypeUtility. ConvertImageToBase64String(File.ReadAllBytes(filePath), file.Headers.ContentType.MediaType); } } } return(this.Ok(loadItemInfo)); }
public void UploadTheme(string storeId, string themeName, System.IO.Compression.ZipArchive archive) { foreach (ZipArchiveEntry entry in archive.Entries) { if (!IsFolder(entry)) { using (var stream = entry.Open()) { var asset = new ThemeAsset { AssetName = PrepareAssetNameAndId(entry.FullName), Id = PrepareAssetNameAndId(entry.FullName) }; var arr = ReadFully(stream); asset.ByteContent = arr; asset.ContentType = ContentTypeUtility.GetContentType(entry.FullName, arr); SaveThemeAsset(storeId, themeName.Trim('/'), asset); } } } }