/// <summary>
        /// Gets the media markup.
        /// </summary>
        /// <param name="mediaId">The media id.</param>
        /// <param name="mediaParameters">The media parameters.</param>
        /// <returns></returns>
        public ActionResult GetMediaMarkup(HiveId mediaId, string mediaParameters = "")
        {
            string path = BackOfficeRequestContext.RoutingEngine.GetUrl(mediaId);

            Mandate.That <NullReferenceException>(!string.IsNullOrEmpty(path));

            var ext = path.Split('.').LastOrDefault().ToLower();

            var mediaParamsDict = new Dictionary <string, string>();

            if (!string.IsNullOrEmpty(mediaParameters))
            {
                mediaParamsDict = (Dictionary <string, string>)mediaParameters.DecodeMacroParameters();
            }

            var bendyParams = new Framework.Dynamics.BendyObject(mediaParamsDict);


            var model = new Model.BackOffice.TinyMCE.InsertMedia.InsertMediaModel(mediaId, path, bendyParams);


            //first look for custom view
            using (var uow = BackOfficeRequestContext
                             .Application
                             .Hive.OpenReader <IFileStore>(new Uri("storage://templates")))
            {
                var id         = new HiveId(new Uri("storage://templates"), "", new HiveIdValue(string.Format("/MediaTemplates/{0}.cshtml", ext)));
                var customView = uow.Repositories.Get <File>(id);

                if (customView != null)
                {
                    return(View(ext, model));
                }
            }


            try
            {
                //try returning embedded view for extension
                return(View(EmbeddedViewPath.Create(
                                string.Format("Umbraco.Cms.Web.PropertyEditors.RichTextBox.TinyMCE.Views.InsertMedia.Types.{0}.cshtml, Umbraco.Cms.Web.PropertyEditors", ext)), model));
            }
            catch (TypeLoadException e)
            {
                //view for extension not found, return default image view
                var viewType = EmbeddedViewPath.Create("Umbraco.Cms.Web.PropertyEditors.RichTextBox.TinyMCE.Views.InsertMedia.Types.default.cshtml, Umbraco.Cms.Web.PropertyEditors");
                return(View(viewType, model));
            }
        }
        /// <summary>
        /// Gets the media markup.
        /// </summary>
        /// <param name="mediaId">The media id.</param>
        /// <param name="mediaParameters">The media parameters.</param>
        /// <returns></returns>
        public ActionResult GetMediaMarkup(HiveId mediaId, string mediaParameters = "")
        {
            string path = BackOfficeRequestContext.RoutingEngine.GetUrl(mediaId);
           
            Mandate.That<NullReferenceException>(!string.IsNullOrEmpty(path));

            var ext = path.Split('.').LastOrDefault().ToLower();
           
            var mediaParamsDict = new Dictionary<string, string>();

            if (!string.IsNullOrEmpty(mediaParameters))
                mediaParamsDict = (Dictionary<string, string>)mediaParameters.DecodeMacroParameters();

            var bendyParams = new Framework.Dynamics.BendyObject(mediaParamsDict);


            var model = new Model.BackOffice.TinyMCE.InsertMedia.InsertMediaModel(mediaId, path, bendyParams);

                      
            //first look for custom view
            using (var uow = BackOfficeRequestContext
                .Application
                .Hive.OpenReader<IFileStore>(new Uri("storage://templates")))
            {
                var id = new HiveId(new Uri("storage://templates"), "", new HiveIdValue(string.Format("/MediaTemplates/{0}.cshtml", ext)));
                var customView = uow.Repositories.Get<File>(id);

                if (customView != null)
                    return View(ext, model);             
                   
            }


            try
            {
                //try returning embedded view for extension
                return View(EmbeddedViewPath.Create(
                    string.Format("Umbraco.Cms.Web.PropertyEditors.RichTextBox.TinyMCE.Views.InsertMedia.Types.{0}.cshtml, Umbraco.Cms.Web.PropertyEditors", ext)), model);
            }
            catch (TypeLoadException e)
            {
                //view for extension not found, return default image view
                var viewType = EmbeddedViewPath.Create("Umbraco.Cms.Web.PropertyEditors.RichTextBox.TinyMCE.Views.InsertMedia.Types.default.cshtml, Umbraco.Cms.Web.PropertyEditors");
                return View(viewType, model);
            }
        }