protected FileField CreateFileField(String key, bool required) { FileField field = new FileField(key, required); this.AddField(field); return(field); }
/// <summary> /// Sets the field. /// </summary> /// <param name="field">The field.</param> /// <param name="value">The value.</param> /// <param name="config">The config.</param> /// <param name="context">The context.</param> /// <exception cref="Glass.Mapper.MapperException">No item with ID {0}. Can not update File Item field.Formatted(newId)</exception> public override void SetField(Field field, object value, SitecoreFieldConfiguration config, SitecoreDataMappingContext context) { File file = value as File; var item = field.Item; FileField fileField = new FileField(field); if (file == null) { fileField.Clear(); return; } if (fileField.MediaID.Guid != file.Id) { if (file.Id == Guid.Empty) { ItemLink link = new ItemLink(item.Database.Name, item.ID, fileField.InnerField.ID, fileField.MediaItem.Database.Name, fileField.MediaID, fileField.MediaItem.Paths.FullPath); fileField.RemoveLink(link); } else { ID newId = new ID(file.Id); Item target = item.Database.GetItem(newId); if (target != null) { fileField.MediaID = newId; ItemLink link = new ItemLink(item.Database.Name, item.ID, fileField.InnerField.ID, target.Database.Name, target.ID, target.Paths.FullPath); fileField.UpdateLink(link); } else throw new MapperException("No item with ID {0}. Can not update File Item field".Formatted(newId)); } } }
public bool TryGetProperty(FileField field, out string value) { value = null; if (!Content) { return(false); } var split = Line.IndexOf(':'); if (split == -1) { return(false); } var name = Line.Substring(0, split); if (name.Unify() != field.Name.Unify()) { return(false); } value = Line.Substring(split + 1).Trim(); return(true); }
public override void SetValue(global::Sitecore.Data.Items.Item item, object value, ISitecoreService service) { File file = value as File; FileField field = new FileField(item.Fields[FieldName]); if (file == null) { field.Clear(); return; } if (field.MediaID.Guid != file.Id) { if (file.Id == Guid.Empty) { ItemLink link = new ItemLink(item.Database.Name, item.ID, field.InnerField.ID, field.MediaItem.Database.Name, field.MediaID, field.MediaItem.Paths.FullPath); field.RemoveLink(link); } else { ID newId = new ID(file.Id); Item target = item.Database.GetItem(newId); if (target != null) { field.MediaID = newId; ItemLink link = new ItemLink(item.Database.Name, item.ID, field.InnerField.ID, target.Database.Name, target.ID, target.Paths.FullPath); field.UpdateLink(link); } else throw new MapperException("No item with ID {0}. Can not update File Item field".Formatted(newId)); } } }
public void MaxLengthTest() { var target = new FileField { MaxLength = 5 }; Assert.AreEqual(5, target.MaxLength); }
public void SetValue_UpdatesWithNewFile() { //Assign Guid id = new Guid("{B89EA3C6-C947-44AF-9AEF-7EF89CEB0A4B}"); Item item = _db.GetItem(new ID(_itemId)); File file = new File(); file.Id = id; SitecoreProperty property = new SitecoreProperty() { Attribute = new SitecoreFieldAttribute(), Property = new FakePropertyInfo(typeof(File), "File") }; _handler.ConfigureDataHandler(property); using (new SecurityDisabler()) { item.Editing.BeginEdit(); //Act _handler.SetValue(item, file, null); //Assert FileField field = new FileField(item.Fields["File"]); Assert.AreEqual(id, field.MediaID.Guid); Assert.AreEqual("/~/media/Files/SimpleTextFile2.ashx", field.Src); item.Editing.CancelEdit(); } }
public override void SetValue(global::Sitecore.Data.Items.Item item, object value, ISitecoreService service) { File file = value as File; FileField field = new FileField(item.Fields[FieldName]); if (file == null) { field.Clear(); return; } if (field.MediaID.Guid != file.Id) { if (file.Id == Guid.Empty) { ItemLink link = new ItemLink(item.Database.Name, item.ID, field.InnerField.ID, field.MediaItem.Database.Name, field.MediaID, field.MediaItem.Paths.FullPath); field.RemoveLink(link); } else { ID newId = new ID(file.Id); Item target = item.Database.GetItem(newId); if (target != null) { field.MediaID = newId; ItemLink link = new ItemLink(item.Database.Name, item.ID, field.InnerField.ID, target.Database.Name, target.ID, target.Paths.FullPath); field.UpdateLink(link); } else { throw new MapperException("No item with ID {0}. Can not update File Item field".Formatted(newId)); } } } }
public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service) { var itemField = base.GetField(item); if (itemField == null) { return(null); } FileField field = new FileField(itemField); File file = new File(); if (field.MediaItem != null) { MediaItem mediaItem = new MediaItem(field.MediaItem); file.Src = HttpUtility.UrlPathEncode(MediaManager.GetMediaUrl(field.MediaItem)); file.Size = mediaItem.Size; file.Title = mediaItem.Title; file.Extension = mediaItem.Extension; } file.Id = field.MediaID.Guid; return(file); }
public void SetValue_NullFile_BlanksField() { //Assign Guid id = Guid.Empty; Item item = _db.GetItem(new ID(_itemId)); File file = null; SitecoreProperty property = new SitecoreProperty() { Attribute = new SitecoreFieldAttribute(), Property = new FakePropertyInfo(typeof(File), "File") }; _handler.ConfigureDataHandler(property); using (new SecurityDisabler()) { item.Editing.BeginEdit(); //Act _handler.SetValue(item, file, null); //Assert FileField field = new FileField(item.Fields["File"]); Assert.AreEqual(null, field.MediaItem); Assert.AreEqual(string.Empty, field.Src); item.Editing.CancelEdit(); } }
public static void Execute(Atom parent) { var fp = new Div ("bs-docs-example"); var ff = new FileField (fp); var ufb = CreateUploadButton (fp); var logf = new Div (fp); var imp = new Div ("bs-docs-example"); var imf = new ImgField (imp); var imb = CreateUploadButton (imp); var logim = new Div (imp); parent.JQuery .Append ("File Upload".Header(3)) .Append (fp) .Append ("Image Upload".Header(3)) .Append (imp); var rq =jQuery.GetData<string> ("code/demofileupload.html"); rq.Done (s=> { var code=new Div(); code.InnerHTML= s; parent.JQuery.Append ("C# code".Header(3)).Append(code); }); ff.Changed+= (e) => ShowFileInfo(ufb, logf,ff.Input); imf.Changed+= (e) => ShowFileInfo(imb, logim, imf.Input); ufb.Clicked+= (e) => SendFile(ufb, ff.Input); imb.Clicked+= (e) => SendFile(imb, imf.Input); }
public override void RenderField(RenderVariantFieldArgs args) { Sitecore.XA.Foundation.RenderingVariants.Fields.VariantField variantField = args.VariantField as Sitecore.XA.Foundation.RenderingVariants.Fields.VariantField; if (variantField == null) { return; } FileField fileField = args.Item.Fields[variantField.ItemName]; // If not a file field, continue with normal processing if (fileField == null) { base.RenderField(args); return; } MediaItem mediaItem = fileField.MediaItem; // Get media item from file field, check for svg if (mediaItem == null || mediaItem.Extension != "svg") { base.RenderField(args); return; } args.ResultControl = new LiteralControl() { Text = GenerateSvgHtml(mediaItem) }; args.Result = RenderControl(args.ResultControl); }
public void CleanTest() { using (var file = File.Open(testFile, FileMode.Open, FileAccess.Read)) { var fileOK = new Mock<HttpPostedFileBase>(); fileOK.Setup(foo => foo.FileName).Returns(Path.GetFileName(file.Name)); fileOK.Setup(foo => foo.ContentType).Returns("text/plain"); fileOK.Setup(foo => foo.ContentLength).Returns((int)file.Length); fileOK.Setup(foo => foo.InputStream).Returns(file); FileField target = new FileField(); Assert.AreSame(fileOK.Object, target.Clean(fileOK.Object)); // Test MaxSize property target.MaxSize = 20; AssertExtras.Raises<ValidationException>(delegate() { target.Clean(fileOK.Object); }).WithMessage("Ensure this file is at most 20 bytes (submitted file is 37 bytes)."); target.MaxSize = 40; Assert.AreSame(fileOK.Object, target.Clean(fileOK.Object)); // Test MaxLength property target.MaxLength = 5; AssertExtras.Raises<ValidationException>(delegate() { target.Clean(fileOK.Object); }).WithMessage("Ensure this file name has at most 5 characters (it has 9)."); target.MaxLength = 10; Assert.AreSame(fileOK.Object, target.Clean(fileOK.Object)); } }
/// <summary> /// Tries to get the URL for the MediaItem referenced in the given file field on the given item. /// </summary> /// <param name="fieldName">The name of the field that references the MediaItem. Note, this field name must reference a FileField.</param> /// <param name="item">The item that contains the given field.</param> /// <param name="url">The URL for the MediaItem.</param> /// <returns>True if a URL could be returned for the MediaItem; otherwise, false.</returns> public static Boolean GetMediaFileFriendlyURL(string fieldName, Item item, out String url) { url = ""; if (string.IsNullOrEmpty(fieldName) || item == null) { return(false); } var rawField = item.Fields[fieldName]; var fieldIsValidAndHasContent = rawField != null && !string.IsNullOrEmpty(rawField.Value) && FieldTypeManager.GetField(rawField) is FileField; if (!fieldIsValidAndHasContent) { return(false); } FileField fileField = rawField; if (fileField.MediaItem == null) { return(false); } return(GetMediaURL(fileField.MediaItem, out url)); }
private object UploadFileSync(string fileName, Stream fileStream) { AppHandler currentAppHandler = this.application.WorkWith(); FileField fileField = new FileField("file", fileName, "image/jpg", fileStream); CreateResultItem item = currentAppHandler.Files().Upload(fileField).ExecuteSync(); return item.Id; }
private object UploadFileSync(string fileName, Stream fileStream) { AppHandler currentAppHandler = this.application.WorkWith(); FileField fileField = new FileField("file", fileName, "image/jpg", fileStream); CreateResultItem item = currentAppHandler.Files().Upload(fileField).ExecuteSync(); return(item.Id); }
public void SelectRecord(string condition) { string sqlstr = parser.BuildSQL(condition, null); RecordCount = 0; string connstr = ConnectionString; if (connstr == null) { throw new Exception("系统错误!"); } IDataAccess dataAccess = DataAccessFactory.Produce(DAType, connstr); IDataReader myReader = dataAccess.ExecuteDataReader(sqlstr); try { while (myReader.Read()) //找到记录,写各值 { foreach (string key in SQLFields) { if (this[key].Type.IsArray) { //注意:当前假定数据库不存储二进制文件,如果需要支持二进制文件,应修改这段代码。 //这个类设计的想法是二进制文件里存储了文件类型信息,在这里读取这些信息并构造成 //能获取文件内容的URL请求,并构造成一个HTML链接返回到客户端,作为该字段的值显示。 int i = myReader.GetOrdinal(key); if (!myReader.IsDBNull(i)) { long size = myReader.GetBytes(i, 0, null, 0, 0); byte[] content = new byte[size]; myReader.GetBytes(i, 0, content, 0, (int)size); string strFile = FileField.Content(content, UploadFileVirtualPath); this[key].Values.Add(strFile); } else { this[key].Values.Add(null); } continue; } this[key].Values.Add(QueryField.ValueToString(myReader[key], null)); } } } finally { if (myReader != null) { myReader.Close(); } } if (dataAccess.Error != null) { throw new Exception("查询错误!" + dataAccess.Error.Message); } }
/// <summary> /// Gets the field. /// </summary> /// <param name="field">The field.</param> /// <param name="config">The config.</param> /// <param name="context">The context.</param> /// <returns>System.Object.</returns> public override object GetField(Field field, SitecoreFieldConfiguration config, SitecoreDataMappingContext context) { FileField fileField = new FileField(field); File file = new File(); if (fileField.MediaItem != null) file.Src = MediaManager.GetMediaUrl(fileField.MediaItem); file.Id = fileField.MediaID.Guid; return file; }
/// <summary> /// Attaches the HyperLink web control to a FileField as a download link. The control is set to not visible if the media item does not have a value and we aren't page editing. /// </summary> public static void AttachToFileField(this HyperLink link, FileField field) { if (!field.HasValue && !Sitecore.Context.PageMode.IsPageEditor) { link.Visible = false; return; } link.NavigateUrl = field.Url; }
public SendE2EFileMessageCommand() : base("Send End-to-End Encrypted File Message", "Encrypt the file (and thumbnail) and send a file message to the given ID. 'from' is the API identity and 'secret' is the API secret. Prints the message ID on success.") { this.threemaId = this.CreateThreemaId("to"); this.fromField = this.CreateThreemaId("from"); this.secretField = this.CreateTextField("secret"); this.privateKeyField = this.CreatePrivateKeyField("privateKey"); this.fileField = this.CreateFileField("file"); this.thumbnailField = this.CreateFileField("thumbnail", false); }
/// <summary> /// Set value for File field /// </summary> /// <param name="field">Sitecore Field</param> /// <param name="value">Path or ID of existing Sitecore Item</param> public static void SetFileValue(Field field, object value) { FileField thisField = (FileField)field; Item item = field.Database.GetItemFromValue(value); if (item != null) { thisField.MediaID = item.ID; thisField.Src = SC.Resources.Media.MediaManager.GetMediaUrl(item); } }
public static MediaItem GetMediaItem(this Item oItem, string Section, string Field) { Item response = null; FileField oField = (FileField)oItem.GetField(Section, Field); if (oField != null) { response = oField.MediaItem; } return(response); }
public void Test_FileField() { FileField fileField = new FileField(); fileField.Content = new MemoryStream(); fileField.ContentType = "contentType"; fileField.Filename = "fileName"; Assert.NotNull(fileField); Assert.Equal("contentType", fileField.ContentType); Assert.Equal("fileName", fileField.Filename); Assert.NotNull(fileField.Content); }
/// <summary> /// Renders a link to the file field as a hyperlink tag. Rendering directives in the Action parameter will construct the body of the link. You may add attributes to the link by adding them to the writer before invoking this method. /// </summary> public static void RenderFileFieldLink(this HtmlTextWriter writer, FileField fileField, Action linkBody) { if (!fileField.HasValue) { return; } writer.AddAttribute("href", fileField.Url); writer.RenderBeginTag("a"); linkBody(); writer.RenderEndTag(); }
internal static Item GetContentItem(Item item) { Item result = item; FileField fileField = null; Field field = null; Item tmpItem = null; if (item != null) { if ((item.InstanceOfTemplate("Document Base") || item.InstanceOfTemplate("Brochure")) && (field = item.GetField("Document", "File")) != null && (fileField = (FileField)field).MediaItem != null) { result = fileField.MediaItem; } else if (item.InstanceOfTemplate("Video Base") && (tmpItem = item.GetListItem("Video", "Media")) != null) { result = tmpItem; } else if (item.InstanceOfTemplate("Solution") && (field = item.GetField("Documents", "Fact Sheet")) != null && (tmpItem = field.GetItem()) != null) { result = GetContentItem(tmpItem); } else if (item.InstanceOfTemplate("Asset Allocation Approach")) { Item doc; //first start with month performance if ((doc = item.GetListItem("Documents", "Calendar Month Performance")) == null) { //if no month performance, move on to year performance doc = item.GetListItem("Documents", "Calendar Year Performance"); } if (doc != null && (tmpItem = GetContentItem(doc)) != null) { result = tmpItem; } } else if (item.InstanceOfTemplate("Link") && (field = item.GetField("Link", "Item")) != null && (tmpItem = field.GetItem()) != null) { result = GetContentItem(tmpItem); } else if ((field = item.GetField("Document", "File")) != null && (fileField = (FileField)field).MediaItem != null) { result = fileField.MediaItem; } } return(result); }
public static string PdfDownloadLinkHelper(Item item, string fieldname) { string mediaUrl = ""; FileField field = item.Fields[fieldname]; if ((field != null) && (field.MediaItem != null)) { mediaUrl = MediaManager.GetMediaUrl(field.MediaItem); mediaUrl = StringUtil.EnsurePrefix('/', mediaUrl); } return(mediaUrl); }
/// <summary> /// Gets the field. /// </summary> /// <param name="field">The field.</param> /// <param name="config">The config.</param> /// <param name="context">The context.</param> /// <returns>System.Object.</returns> public override object GetField(Field field, SitecoreFieldConfiguration config, SitecoreDataMappingContext context) { FileField fileField = new FileField(field); File file = new File(); if (fileField.MediaItem != null) { file.Src = MediaManager.GetMediaUrl(fileField.MediaItem); } file.Id = fileField.MediaID.Guid; return(file); }
public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service) { var itemField = item.Fields[FieldName]; if (itemField == null) return null; FileField field = new FileField(itemField); File file = new File(); file.Src = field.Src; file.Id = field.MediaID.Guid; return file; }
static public string GetFileUrl(this Item item, ID fieldId) { string url = ""; FileField theFile = (FileField)GetField(item, fieldId); if (theFile != null && theFile.MediaItem != null) { url = Sitecore.Resources.Media.MediaManager.GetMediaUrl(theFile.MediaItem); url = Sitecore.StringUtil.EnsurePrefix('/', url); } return(url); }
protected override void InitItemProperties(Item item) { base.InitItemProperties(item); // on load of the form string pageUrl = System.Web.HttpContext.Current.Request.Headers.GetValues("Referer").FirstOrDefault(); var url = new Uri(pageUrl); // Obtain a SiteContext for the host and virtual path var siteContext = SiteContextFactory.GetSiteContext(url.Host, url.PathAndQuery); // Get the path to the Home item var homePath = siteContext.StartPath; if (!homePath.EndsWith("/")) { homePath += "/"; } // Get the path to the item, removing virtual path if any var itemPath = url.AbsolutePath.ToLower(); if (itemPath.StartsWith(siteContext.VirtualFolder)) { itemPath = itemPath.Remove(0, siteContext.VirtualFolder.Length); } // Obtain the item var fullPath = homePath + itemPath.Replace("-", " "); var contextItem = siteContext.Database.GetItem(fullPath); if (contextItem != null) { FileField downloadField = contextItem.Fields[new ID(SitecoreItemsConstants.FILE_URL_FIELD_ID)]; if (downloadField.MediaItem != null) { //var downloadItem = new MediaItem(downloadField.MediaItem); FileUrl = StringUtil.EnsurePrefix('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl(downloadField.MediaItem)); } else { FileUrl = String.Empty; } } else { FileUrl = String.Empty; } }
public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service) { var itemField = base.GetField(item); if (itemField == null) return null; FileField field = new FileField(itemField); File file = new File(); if (field.MediaItem != null) file.Src = MediaManager.GetMediaUrl(field.MediaItem); file.Id = field.MediaID.Guid; return file; }
public async Task Test_ReadAsync() { FileFormStream fileFormStream = new FileFormStream(new Dictionary <string, object>(), ""); Assert.Equal(6, await fileFormStream.ReadAsync(new byte[1024], 0, 1024)); FileField fileFieldNoContent = new FileField() { Filename = "noContent", Content = null, ContentType = "contentType" }; MemoryStream content = new MemoryStream(); byte[] contentBytes = Encoding.UTF8.GetBytes("This is file test. This sentence must be long"); content.Write(contentBytes, 0, contentBytes.Length); content.Seek(0, SeekOrigin.Begin); FileField fileField = new FileField() { Filename = "haveContent", Content = content, ContentType = "contentType" }; Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("key", "value"); dict.Add("testKey", "testValue"); dict.Add("haveFile", fileField); dict.Add("noFile", fileFieldNoContent); MemoryStream StreamResult = new MemoryStream(); byte[] bytes = new byte[1024]; fileFormStream = new FileFormStream(dict, "testBoundary"); int readNoStreamLength = 0; while ((readNoStreamLength = await fileFormStream.ReadAsync(bytes, 0, 1024)) != 0) { StreamResult.Write(bytes, 0, readNoStreamLength); } StreamResult.Seek(0, SeekOrigin.Begin); byte[] bytesResult = new byte[StreamResult.Length]; StreamResult.Read(bytesResult, 0, (int)StreamResult.Length); string result = Encoding.UTF8.GetString(bytesResult); Assert.Equal("--testBoundary\r\nContent-Disposition: form-data; name=\"key\"\r\n\r\nvalue\r\n--testBoundary\r\nContent-Disposition: form-data; name=\"testKey\"\r\n\r\ntestValue\r\n--testBoundary\r\nContent-Disposition: form-data; name=\"haveFile\"; filename=\"haveContent\"\r\nContent-Type: contentType\r\n\r\nThis is file test. This sentence must be long\r\n--testBoundary\r\nContent-Disposition: form-data; name=\"noFile\"; filename=\"noContent\"\r\nContent-Type: contentType\r\n\r\n\r\n--testBoundary--\r\n", result); }
public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service) { var itemField = item.Fields[FieldName]; if (itemField == null) { return(null); } FileField field = new FileField(itemField); File file = new File(); file.Src = field.Src; file.Id = field.MediaID.Guid; return(file); }
public void Test_ToFileForm() { Stream fileFormStream = Client.ToFileForm(new System.Collections.Generic.Dictionary <string, object>(), "boundary"); Assert.NotNull(fileFormStream); string formStr = GetFormStr(fileFormStream); Assert.Equal("--boundary--\r\n", formStr); Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("stringkey", "string"); fileFormStream = Client.ToFileForm(dict, "boundary"); formStr = GetFormStr(fileFormStream); Assert.Equal("--boundary\r\n" + "Content-Disposition: form-data; name=\"stringkey\"\r\n\r\n" + "string\r\n" + "--boundary--\r\n", formStr); string path = System.AppDomain.CurrentDomain.BaseDirectory; FileStream file = File.OpenRead("./test.txt"); FileField fileField = new FileField { Filename = "fakefilename", ContentType = "application/json", Content = file }; dict = new Dictionary <string, object>(); dict.Add("stringkey", "string"); dict.Add("filefield", fileField); fileFormStream = Client.ToFileForm(dict, "boundary"); formStr = GetFormStr(fileFormStream); Assert.Equal("--boundary\r\n" + "Content-Disposition: form-data; name=\"stringkey\"\r\n\r\n" + "string\r\n" + "--boundary\r\n" + "Content-Disposition: form-data; name=\"filefield\"; filename=\"fakefilename\"\r\n" + "Content-Type: application/json\r\n" + "\r\n" + "{\"key\":\"value\"}" + "\r\n" + "--boundary--\r\n", formStr); }
public IEnterspeedProperty Convert(Item item, Field field, EnterspeedSiteInfo siteInfo, List <IEnterspeedFieldValueConverter> fieldValueConverters) { FileField fileField = field; if (fileField?.MediaItem == null) { return(null); } string mediaUrl = _urlService.GetMediaUrl(fileField.MediaItem); if (string.IsNullOrEmpty(mediaUrl)) { return(null); } return(new StringEnterspeedProperty(_fieldService.GetFieldName(field), mediaUrl)); }
public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service) { var itemField = base.GetField(item); if (itemField == null) { return(null); } FileField field = new FileField(itemField); File file = new File(); if (field.MediaItem != null) { file.Src = MediaManager.GetMediaUrl(field.MediaItem); } file.Id = field.MediaID.Guid; return(file); }
public void CleanTest1() { var fileEmpty = new Mock<HttpPostedFileBase>(); fileEmpty.Setup(foo => foo.FileName).Returns(string.Empty); fileEmpty.Setup(foo => foo.ContentType).Returns(string.Empty); fileEmpty.Setup(foo => foo.ContentLength).Returns(0); fileEmpty.Setup(foo => foo.InputStream).Returns((Stream)null); FileField target = new FileField(); // Test required empty file AssertExtras.Raises<ValidationException>(delegate() { target.Clean(fileEmpty.Object); }).WithMessage("This field is required."); // Test non required empty file target.Required = false; AssertExtras.Raises<ValidationException>(delegate() { target.Clean(fileEmpty.Object); }).WithMessage("The submitted file is empty."); }
public override object GetValue(global::Sitecore.Data.Items.Item item, ISitecoreService service) { var itemField = base.GetField(item); if (itemField == null) return null; FileField field = new FileField(itemField); File file = new File(); if (field.MediaItem != null) { MediaItem mediaItem = new MediaItem(field.MediaItem); file.Src = HttpUtility.UrlPathEncode(MediaManager.GetMediaUrl(field.MediaItem)); file.Size = mediaItem.Size; file.Title = mediaItem.Title; file.Extension = mediaItem.Extension; } file.Id = field.MediaID.Guid; return file; }
/// <summary> /// Sets the field. /// </summary> /// <param name="field">The field.</param> /// <param name="value">The value.</param> /// <param name="config">The config.</param> /// <param name="context">The context.</param> /// <exception cref="Glass.Mapper.MapperException">No item with ID {0}. Can not update File Item field.Formatted(newId)</exception> public override void SetField(Field field, object value, SitecoreFieldConfiguration config, SitecoreDataMappingContext context) { File file = value as File; var item = field.Item; FileField fileField = new FileField(field); if (file == null) { fileField.Clear(); return; } if (fileField.MediaID.Guid != file.Id) { if (file.Id == Guid.Empty) { ItemLink link = new ItemLink(item.Database.Name, item.ID, fileField.InnerField.ID, fileField.MediaItem.Database.Name, fileField.MediaID, fileField.MediaItem.Paths.FullPath); fileField.RemoveLink(link); } else { ID newId = new ID(file.Id); Item target = item.Database.GetItem(newId); if (target != null) { fileField.MediaID = newId; ItemLink link = new ItemLink(item.Database.Name, item.ID, fileField.InnerField.ID, target.Database.Name, target.ID, target.Paths.FullPath); fileField.UpdateLink(link); } else { throw new MapperException("No item with ID {0}. Can not update File Item field".Formatted(newId)); } } } }
/// <summary> /// Checks to see if the passed in file field is linking to a valid media item. /// </summary> /// <param name = "fileField">The file or image field.</param> /// <param name = "db">The Sitecore db.</param> /// <param name = "request">The request.</param> /// <returns></returns> public static bool FieldContainsValidMediaLink(FileField fileField, Database db, HttpRequest request) { return MediaLibraryUtil.MediaItemIsValid(db, fileField.MediaID.ToString(), true, request); }
protected IStorageFileField CreateEmptyFileFieldObject(FileField field) { var storageService = service.StorageService; return (IStorageFileField)storageService.GetObjectFactory().CreateEmptyFieldObject(field.GetType()); }
public void SetItem_Test2() { //Assign //clear all fields using (new SecurityDisabler()) { _test2.BeginEdit(); foreach (Field field in _test2.Fields) { field.Value = ""; } _test2["GroupedDropList"] = "Test2"; _test2["DropList"] = "Test2"; _test2.EndEdit(); } MiscFixtureNS.BasicTemplate test = _sitecore.GetItem<MiscFixtureNS.BasicTemplate>("/sitecore/content/Glass/Test2"); //Simple Types test.Checkbox = true; test.Date = new DateTime(2011, 02, 28); test.DateTime = new DateTime(2011, 03, 04, 15, 23, 12); test.File = new File() { Id = new Guid("{B89EA3C6-C947-44AF-9AEF-7EF89CEB0A4B}") }; test.Image = new Image() { Alt="Test Alt", Border = "Test Border", Class="Test Class", Height=487, HSpace=52, MediaId = new Guid("{0CF0A6D0-8A2B-479B-AD8F-14938135174A}"), VSpace= 32, Width = 26 }; test.Integer = 659; test.Float = 458.7f; test.Double = 789.5d; test.Decimal = 986.4m; test.MultiLineText = "Test MultiLineText"; test.Number = 986; test.Password = "******"; test.RichText = "test Rich Text"; test.SingleLineText = "test single line text"; //List Types test.CheckList = new MiscFixtureNS.SubClass[]{ new MiscFixtureNS.SubClass(){Id = _test1.ID.Guid}, new MiscFixtureNS.SubClass(){Id = _test2.ID.Guid}, }; test.DropList = MiscFixtureNS.TestEnum.Test3; test.GroupedDropLink = new MiscFixtureNS.SubClass() { Id = _test3.ID.Guid }; test.GroupedDropList = MiscFixtureNS.TestEnum.Test3; test.MultiList = new MiscFixtureNS.SubClass[]{ new MiscFixtureNS.SubClass(){Id = _test1.ID.Guid}, new MiscFixtureNS.SubClass(){Id = _test2.ID.Guid}, }; test.Treelist = new MiscFixtureNS.SubClass[]{ new MiscFixtureNS.SubClass(){Id = _test1.ID.Guid}, new MiscFixtureNS.SubClass(){Id = _test2.ID.Guid}, }; test.TreeListEx = new MiscFixtureNS.SubClass[]{ new MiscFixtureNS.SubClass(){Id = _test1.ID.Guid}, new MiscFixtureNS.SubClass(){Id = _test2.ID.Guid}, }; //Link Types test.DropLink = new MiscFixtureNS.SubClass() { Id = _test3.ID.Guid }; test.DropTree = new MiscFixtureNS.SubClass() { Id = _test3.ID.Guid }; test.GeneralLink = new Link(){ Type = LinkType.External, Anchor="test anchor", Class="test class", Target="test target", Text="test text", Title="test title", Url="test url" }; //Developer Types test.Icon = "test icon"; test.TriState = TriState.Yes; //Act using (new SecurityDisabler()) { _sitecore.Save<MiscFixtureNS.BasicTemplate>(test); } //Assert //Simple Types Item result = _db.GetItem(_test2.ID); Assert.AreEqual("1", result["Checkbox"]); Assert.AreEqual("20110228T000000", result["Date"]); Assert.AreEqual("20110304T152312", result["DateTime"]); var file = new FileField(result.Fields["File"]); Assert.AreEqual(new Guid("{B89EA3C6-C947-44AF-9AEF-7EF89CEB0A4B}"), file.MediaID.Guid); Assert.AreEqual("/~/media/Files/SimpleTextFile2.ashx", file.Src); var image = new ImageField(result.Fields["Image"]); Assert.AreEqual("Test Alt", image.Alt); Assert.AreEqual("Test Border", image.Border); Assert.AreEqual("Test Class", image.Class); Assert.AreEqual("487", image.Height); Assert.AreEqual("52", image.HSpace); Assert.AreEqual(new Guid("{0CF0A6D0-8A2B-479B-AD8F-14938135174A}"), image.MediaID.Guid); Assert.AreEqual("/~/media/Files/Kitten2.ashx", image.Src); Assert.AreEqual("32", image.VSpace); Assert.AreEqual("26", image.Width); Assert.AreEqual("659", result["Integer"]); Assert.AreEqual("458.7", result["Float"]); Assert.AreEqual("789.5", result["Double"]); Assert.AreEqual("986.4", result["Decimal"]); Assert.AreEqual("Test MultiLineText", result["MultiLineText"]); Assert.AreEqual("986", result["Number"]); Assert.AreEqual("test password", result["Password"]); Assert.AreEqual("test Rich Text", result["RichText"]); Assert.AreEqual("test single line text", result["SingleLineText"]); //List Types Assert.AreEqual("{BD193B3A-D3CA-49B4-BF7A-2A61ED77F19D}|{8A317CBA-81D4-4F9E-9953-64C4084AECCA}", result["CheckList"].ToUpper()); Assert.AreEqual("Test3", result["DropList"]); Assert.AreEqual(_test3.ID.Guid.ToString("B").ToUpper(), result["GroupedDropLink"].ToUpper()); Assert.AreEqual("Test3", result["GroupedDropList"]); Assert.AreEqual("{BD193B3A-D3CA-49B4-BF7A-2A61ED77F19D}|{8A317CBA-81D4-4F9E-9953-64C4084AECCA}", result["MultiList"].ToUpper()); Assert.AreEqual("{BD193B3A-D3CA-49B4-BF7A-2A61ED77F19D}|{8A317CBA-81D4-4F9E-9953-64C4084AECCA}", result["Treelist"].ToUpper()); Assert.AreEqual("{BD193B3A-D3CA-49B4-BF7A-2A61ED77F19D}|{8A317CBA-81D4-4F9E-9953-64C4084AECCA}", result["TreeListEx"].ToUpper()); //Linked Types Assert.AreEqual(_test3.ID.Guid.ToString("B").ToUpper(), result["DropLink"].ToUpper()); Assert.AreEqual(_test3.ID.Guid.ToString("B").ToUpper(), result["DropTree"].ToUpper()); LinkField link = new LinkField(result.Fields["GeneralLink"]); Assert.AreEqual("test class", link.Class); Assert.AreEqual("test target", link.Target); Assert.AreEqual("test text", link.Text); Assert.AreEqual("test title", link.Title); Assert.AreEqual("test url", link.Url); //Developer Type Assert.AreEqual("test icon", result["Icon"]); Assert.AreEqual("1", result["TriState"]); }
/// <summary> /// Initializes a new instance of the <see cref="FileProperty"/> class. /// </summary> /// <param name="field">The field to wrap.</param> public FileProperty(Field field) : base(field) { this.fileField = field; }
public void SetItem_Test2() { //Assign //clear all fields var clearItem = _db.GetItem("/sitecore/content/Configuration/Fluent/GeneralFluent/SetItemTest2"); using (new SecurityDisabler()) { clearItem.BeginEdit(); foreach (Field field in clearItem.Fields) { field.Value = ""; } clearItem["GroupedDropList"] = "Test2"; clearItem["DropList"] = "Test2"; clearItem.EndEdit(); } GeneralFluentFixtureNS.BasicTemplate test; using (new SecurityDisabler()) { test = _sitecore.GetItem<GeneralFluentFixtureNS.BasicTemplate>("/sitecore/content/Configuration/Fluent/GeneralFluent/SetItemTest2"); } //Simple Types test.Checkbox = true; test.Date = new DateTime(2011, 02, 28); test.DateTime = new DateTime(2011, 03, 04, 15, 23, 12); test.File = new File() { Id = new Guid("{B89EA3C6-C947-44AF-9AEF-7EF89CEB0A4B}") }; test.Image = new Image() { Alt="Test Alt", Border = "Test Border", Class="Test Class", Height=487, HSpace=52, MediaId = new Guid("{0CF0A6D0-8A2B-479B-AD8F-14938135174A}"), VSpace= 32, Width = 26 }; test.Integer = 659; test.Float = 458.7f; test.Double = 789.5d; test.Decimal = 986.4m; test.MultiLineText = "Test MultiLineText"; test.Number = 986; test.Password = "******"; test.RichText = "test Rich Text"; test.SingleLineText = "test single line text"; //List Types test.CheckList = new GeneralFluentFixtureNS.SubClass[]{ new GeneralFluentFixtureNS.SubClass(){Id = _check1.ID.Guid}, new GeneralFluentFixtureNS.SubClass(){Id = _check2.ID.Guid}, }; test.DropList = GeneralFluentFixtureNS.TestEnum.Test3; test.GroupedDropLink = new GeneralFluentFixtureNS.SubClass() { Id = _test3.ID.Guid }; test.GroupedDropList = GeneralFluentFixtureNS.TestEnum.Test3; test.MultiList = new GeneralFluentFixtureNS.SubClass[]{ new GeneralFluentFixtureNS.SubClass(){Id = _multiList1.ID.Guid}, new GeneralFluentFixtureNS.SubClass(){Id = _multiList2.ID.Guid}, }; test.Treelist = new GeneralFluentFixtureNS.SubClass[]{ new GeneralFluentFixtureNS.SubClass(){Id = _treeList1.ID.Guid}, new GeneralFluentFixtureNS.SubClass(){Id = _treeList2.ID.Guid}, }; test.TreeListEx = new GeneralFluentFixtureNS.SubClass[]{ new GeneralFluentFixtureNS.SubClass(){Id = _treeList1.ID.Guid}, }; //Link Types test.DropLink = new GeneralFluentFixtureNS.SubClass() { Id = _test3.ID.Guid }; test.DropTree = new GeneralFluentFixtureNS.SubClass() { Id = _test3.ID.Guid }; test.GeneralLink = new Link(){ Type = LinkType.External, Anchor="test anchor", Class="test class", Target="test target", Text="test text", Title="test title", Url="test url" }; //Developer Types test.Icon = "test icon"; test.TriState = TriState.Yes; //Act using (new SecurityDisabler()) { _sitecore.Save<GeneralFluentFixtureNS.BasicTemplate>(test); } //Assert //Simple Types Item result = _db.GetItem(clearItem.ID); Assert.AreEqual("1", result["Checkbox"]); Assert.AreEqual("20110228T000000", result["Date"]); Assert.AreEqual("20110304T152312", result["DateTime"]); var file = new FileField(result.Fields["File"]); Assert.AreEqual(new Guid("{B89EA3C6-C947-44AF-9AEF-7EF89CEB0A4B}"), file.MediaID.Guid); Assert.AreEqual("/~/media/Files/SimpleTextFile2.ashx", file.Src); var image = new ImageField(result.Fields["Image"]); Assert.AreEqual("Test Alt", image.Alt); Assert.AreEqual("Test Border", image.Border); Assert.AreEqual("Test Class", image.Class); Assert.AreEqual("487", image.Height); Assert.AreEqual("52", image.HSpace); Assert.AreEqual(new Guid("{0CF0A6D0-8A2B-479B-AD8F-14938135174A}"), image.MediaID.Guid); Assert.AreEqual("/~/media/Files/Kitten2.ashx", image.Src); Assert.AreEqual("32", image.VSpace); Assert.AreEqual("26", image.Width); Assert.AreEqual("659", result["Integer"]); Assert.AreEqual("458.7", result["Float"]); Assert.AreEqual("789.5", result["Double"]); Assert.AreEqual("986.4", result["Decimal"]); Assert.AreEqual("Test MultiLineText", result["MultiLineText"]); Assert.AreEqual("986", result["Number"]); Assert.AreEqual("test password", result["Password"]); Assert.AreEqual("test Rich Text", result["RichText"]); Assert.AreEqual("test single line text", result["SingleLineText"]); //List Types Assert.AreEqual("{68B87391-CFF7-4FF2-848E-90C8FD8336A2}|{154CABCB-9B04-449A-9F6F-8FD2AD0783D9}", result["CheckList"].ToUpper()); Assert.AreEqual("Test3", result["DropList"]); Assert.AreEqual(_test3.ID.Guid.ToString("B").ToUpper(), result["GroupedDropLink"].ToUpper()); Assert.AreEqual("Test3", result["GroupedDropList"]); Assert.AreEqual("{1BE4FAC5-90C2-4A5E-952C-071ECD7DA957}|{6127B3E3-B2EB-4B96-AE6D-51DF0212C0EA}", result["MultiList"].ToUpper()); Assert.AreEqual("{35E0CE21-2651-46CD-B87D-0B34216D3137}|{F52A1B3B-356E-45A4-B06C-DFAE28B6D78A}", result["Treelist"].ToUpper()); Assert.AreEqual("{35E0CE21-2651-46CD-B87D-0B34216D3137}", result["TreeListEx"].ToUpper()); //Linked Types Assert.AreEqual(_test3.ID.Guid.ToString("B").ToUpper(), result["DropLink"].ToUpper()); Assert.AreEqual(_test3.ID.Guid.ToString("B").ToUpper(), result["DropTree"].ToUpper()); LinkField link = new LinkField(result.Fields["GeneralLink"]); Assert.AreEqual("test class", link.Class); Assert.AreEqual("test target", link.Target); Assert.AreEqual("test text", link.Text); Assert.AreEqual("test title", link.Title); Assert.AreEqual("test url", link.Url); //Developer Type Assert.AreEqual("test icon", result["Icon"]); Assert.AreEqual("1", result["TriState"]); }