/// <summary> /// Saves the editor control value. /// </summary> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> private void DataEditorControl_OnSave(EventArgs e) { SaveEventArgs eventArgs = new SaveEventArgs(); FireBeforeSave(eventArgs); if(eventArgs.Cancel) return; string fileUrl = string.Empty; string containerName = string.Empty; var postedFile = this.m_Control.PostedFile; if(postedFile != null) { Factory factory = new Factory(m_Control.Options.Username, this.m_Control.Options.ApiKey); if (!string.IsNullOrEmpty(ContainerName)) { //Get containerName from private ContainerName, which is set by a beforesave event. containerName = ContainerName; } else if(!string.IsNullOrEmpty(m_Control.Options.DefaultContainer)) { //Get default container name from prevalues. containerName = m_Control.Options.DefaultContainer; } else if (!string.IsNullOrEmpty(m_Control.Options.DefaultContainerAlias)) { //Get containerName by posted container name via prevalue default alias. string defaultAlias = m_Control.Options.DefaultContainerAlias.AddDefaultAlias(); NameValueCollection form = HttpContext.Current.Request.Form; foreach (string s in form.AllKeys.Where(s => s.Contains(defaultAlias))) { containerName = form.Get(s); } } //Check if the Container Name was actually set along the way before trying to upload if (!string.IsNullOrEmpty(containerName)) { //upload file to container factory.PutItemInContainer(containerName, postedFile.InputStream, postedFile.FileName); //get the url of the file in CDN fileUrl = factory.GetCdnUriForItem(containerName, postedFile.FileName); } } var dictionary = new Dictionary<string, string> { {"FileUrl", string.IsNullOrEmpty(fileUrl) ? m_Control.FileUrl : fileUrl}, {"ContainerName", containerName} }; // save the value of the control depending on whether a new file is uploaded);); this.Data.Value = dictionary.SerializeToJson(); FireAfterSave(eventArgs); }