Esempio n. 1
0
        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));
                }
            }
        }
Esempio n. 3
0
        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));
                }
            }

        }
Esempio n. 5
0
 public void MaxLengthTest()
 {
     var target = new FileField {
         MaxLength = 5
     };
     Assert.AreEqual(5, target.MaxLength);
 }
Esempio n. 6
0
        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();
            }
        }
Esempio n. 7
0
        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));
                    }
                }
            }
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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();
            }
        }
Esempio n. 10
0
		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);
        }
Esempio n. 12
0
        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));
            }
        }
Esempio n. 13
0
            /// <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);
        }
Esempio n. 16
0
        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;
        }
Esempio n. 18
0
        /// <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;
        }
Esempio n. 19
0
 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);
 }
Esempio n. 20
0
        /// <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);
            }
        }
Esempio n. 21
0
        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);
        }
Esempio n. 22
0
        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();
        }
Esempio n. 24
0
        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);
        }
Esempio n. 25
0
        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);
        }
Esempio n. 26
0
        /// <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;
        }
Esempio n. 28
0
        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;
        }
Esempio n. 31
0
        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);
        }
Esempio n. 32
0
        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);
        }
Esempio n. 33
0
        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);
        }
Esempio n. 34
0
        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));
        }
Esempio n. 35
0
        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);
        }
Esempio n. 36
0
        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;
        }
Esempio n. 38
0
        /// <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));
                    }
                }
            }
        }
Esempio n. 39
0
 /// <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);
 }
        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();
            }

        }
Esempio n. 41
0
		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"]);

        }
        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();
            }

        }
		/// <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"]);

        }