Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 6
0
 private void btnCreateContentType_Click(object sender, EventArgs e)
 {
     ContentTypeUtility.CreateContentType(SpContext.ClientContext,
                                          (ContentType)comboParentContent.SelectedValue,
                                          textContentType.Text,
                                          textDescription.Text,
                                          textGroup.Text,
                                          Fields);
 }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 9
0
    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));
    }
Ejemplo n.º 10
0
        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()));
        }
Ejemplo n.º 11
0
        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()));
        }
Ejemplo n.º 12
0
        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());
            }
        }
Ejemplo n.º 13
0
        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
            });
        }
Ejemplo n.º 15
0
        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());
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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);
            }
        }
Ejemplo n.º 19
0
        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());
        }
Ejemplo n.º 21
0
        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);
        }
Ejemplo n.º 22
0
        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));
        }
Ejemplo n.º 23
0
        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);
                    }
                }
            }
        }