示例#1
0
        public ActionResult Submit(Site site, ControllerContext controllerContext, SubmissionSetting submissionSetting)
        {
            object model = null;
            Exception exception = null;
            var formValues = new NameValueCollection(controllerContext.HttpContext.Request.Unvalidated().Form);
            try
            {
                var repository = site.GetRepository();
                var valueProvider = new NameValueCollectionProvider(formValues);
                formValues = PluginHelper.ApplySubmissionSettings(submissionSetting, formValues);
                var folderName = formValues["FolderName"];
                if (!string.IsNullOrEmpty(folderName))
                {
                    var folder = FolderHelper.Parse<TextFolder>(repository, folderName);
                    model = DoPost(repository, folder, controllerContext, formValues);
                }
            }
            catch (Exception e)
            {
                exception = e;
            }

            return PluginHelper.ReturnActionResult(controllerContext, model, exception);
        }
        private void Sync(Site site, Repository orginalRepository, Action<Repository> syncAction)
        {
            if (site == null)
            {
                return;
            }

            Repository siteRepository = site.GetRepository();
            if (siteRepository != orginalRepository)
            {
                syncAction(siteRepository);
            }

            foreach (Site childSite in _siteProvider.ChildSites(site))
            {
                Sync(childSite, siteRepository, syncAction);
            }
        }