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