private bool LoadContentFile(ReusableContentInfo reusableContentInfo) { var isSuccess = false; // Validate the Filename if (!reusableContentInfo.FileName.EndsWith(".html", true, CultureInfo.InstalledUICulture)) { this.logger.Error("ReusableContentHelper.ParseReusableContent: Invalid filename for the HTML File, it does not ends with .html. (value : {0}", reusableContentInfo.FileName); } // HTML Content of the file var htmlContent = string.Empty; string pathLayout = reusableContentInfo.HTMLFilePath; // File validation if (string.IsNullOrEmpty(pathLayout) || !File.Exists(pathLayout)) { this.logger.Error("Unable to locate file at path '{0}' for reusable content.", pathLayout); } else { try { // Load the HTML file content using (var fileStream = new FileStream(pathLayout, FileMode.Open, FileAccess.Read)) { using (var streamReader = new StreamReader(fileStream)) { htmlContent = streamReader.ReadToEnd(); isSuccess = true; } } } catch (Exception exception) { if (exception is FileNotFoundException || exception is SecurityException || exception is DirectoryNotFoundException) { this.logger.Error("An exception occured while tryin to read the file content at path '{0}' for reusable content.", pathLayout); this.logger.Exception(exception); } else { throw; } } } reusableContentInfo.Content = htmlContent; return(isSuccess); }
public void ReusableContentInfo_ShouldSupportStringSerializationAndDeserialization() { // Arrange var serializer = this.GetSerializer(); var objectToSerialize = new ReusableContentInfo("Reusable Content Name", "Dynamite", true, false, "filename.html", "GSoft.Dynamite/html"); objectToSerialize.Content = "<h1>Hello World!</h1>"; // Act string serializedRepresentation = serializer.Serialize(objectToSerialize); var deserializedObject = serializer.Deserialize<ReusableContentInfo>(serializedRepresentation); // Assert Assert.AreEqual(objectToSerialize.Title, deserializedObject.Title); Assert.IsTrue(deserializedObject.IsAutomaticUpdate); Assert.IsFalse(deserializedObject.IsShowInRibbon); Assert.AreEqual(objectToSerialize.HTMLFilePath, deserializedObject.HTMLFilePath); Assert.AreEqual(objectToSerialize.Content, deserializedObject.Content); }
/// <summary> /// Gets the reusable content by title. /// </summary> /// <param name="site">The Site Collection.</param> /// <param name="reusableContentTitle">The reusable content title.</param> /// <returns>The reusable content</returns> public ReusableContentInfo GetByTitle(SPSite site, string reusableContentTitle) { var list = this.listLocator.GetByUrl(site.RootWeb, this.ReusableContentListRelativeUrl); var cultureSuffix = "_" + CultureInfo.CurrentUICulture.TwoLetterISOLanguageName.ToUpperInvariant(); var listItem = this.GetListItemByTitle(list, reusableContentTitle); if (listItem == null) { listItem = this.GetListItemByTitle(list, reusableContentTitle + cultureSuffix); } if (listItem != null) { var entity = new ReusableContentInfo(); this.binder.ToEntity <ReusableContentInfo>(entity, listItem); return(entity); } return(null); }
/// <summary> /// Gets the reusable content by title. /// </summary> /// <param name="site">The Site Collection.</param> /// <param name="reusableContentTitle">The reusable content title.</param> /// <returns>The reusable content</returns> public ReusableContentInfo GetByTitle(SPSite site, string reusableContentTitle) { var list = this.listLocator.GetByUrl(site.RootWeb, this.ReusableContentListRelativeUrl); var cultureSuffix = "_" + CultureInfo.CurrentUICulture.TwoLetterISOLanguageName.ToUpperInvariant(); var listItem = this.GetListItemByTitle(list, reusableContentTitle); if (listItem == null) { listItem = this.GetListItemByTitle(list, reusableContentTitle + cultureSuffix); } if (listItem != null) { var entity = new ReusableContentInfo(); this.binder.ToEntity<ReusableContentInfo>(entity, listItem); return entity; } return null; }
private bool LoadContentFile(ReusableContentInfo reusableContentInfo) { var isSuccess = false; // Validate the Filename if (!reusableContentInfo.FileName.EndsWith(".html", true, CultureInfo.InstalledUICulture)) { this.logger.Error("ReusableContentHelper.ParseReusableContent: Invalid filename for the HTML File, it does not ends with .html. (value : {0}", reusableContentInfo.FileName); } // HTML Content of the file var htmlContent = string.Empty; string pathLayout = reusableContentInfo.HTMLFilePath; // File validation if (string.IsNullOrEmpty(pathLayout) || !File.Exists(pathLayout)) { this.logger.Error("Unable to locate file at path '{0}' for reusable content.", pathLayout); } else { try { // Load the HTML file content using (var fileStream = new FileStream(pathLayout, FileMode.Open, FileAccess.Read)) { using (var streamReader = new StreamReader(fileStream)) { htmlContent = streamReader.ReadToEnd(); isSuccess = true; } } } catch (Exception exception) { if (exception is FileNotFoundException || exception is SecurityException || exception is DirectoryNotFoundException) { this.logger.Error("An exception occured while tryin to read the file content at path '{0}' for reusable content.", pathLayout); this.logger.Exception(exception); } else { throw; } } } reusableContentInfo.Content = htmlContent; return isSuccess; }