예제 #1
0
        public ActionResult Create(DiyProjectModel model, bool continueEditing)
        {
            if (ModelState.IsValid)
            {
                var diyProject = model.ToEntity();
                diyProject.CreatedOnUtc = DateTime.UtcNow;
                _diyService.InsertDiyProject(diyProject);

                //search engine name
                model.SeName = diyProject.ValidateSeName(model.SeName, diyProject.Title, true);
                _urlRecordService.SaveSlug(diyProject, model.SeName, 0);

                //locales
                UpdateLocales(diyProject, model);
                _diyService.UpdateDiyProject(diyProject);

                SuccessNotification(_localizationService.GetResource("Toi.Plugin.Misc.DoItYourself.DiyProject.Added"));
                return continueEditing ? RedirectToAction("Edit", new { id = diyProject.Id }) : RedirectToAction("List");
            }
            //parent diyProjectGroups
            model.DiyGroups = new List<DropDownItem> { new DropDownItem { Text = "[None]", Value = "0" } };
            if (model.DiyGroupId > 0)
            {
                var parentBranchGroup = _diyService.GetDiyGroupById(model.DiyGroupId);
                if (parentBranchGroup != null && !parentBranchGroup.Deleted)
                    model.DiyGroups.Add(new DropDownItem { Text = parentBranchGroup.GetFormattedBreadCrumb(_diyService), Value = parentBranchGroup.Id.ToString() });
                else
                    model.DiyGroupId = 0;
            }
            return View(model);
        }
예제 #2
0
 public ActionResult Create()
 {
     ViewBag.AllLanguages = _languageService.GetAllLanguages(true);
     var model = new DiyProjectModel();
     AddLocales(_languageService, model.Locales);
     model.Published = true;
     model.DiyGroups = new List<DropDownItem> { new DropDownItem { Text = "[None]", Value = "0" } };
     return View(model);
 }
 public ActionResult Detail(int id)
 {
     var project = _diyService.GetDiyProjectById(id);
     if (project == null)
         return InvokeHttp404();
     var model = new DiyProjectModel();
     model.Id = project.Id;
     model.Full = project.GetLocalized(x => x.Full);
     model.Short = project.GetLocalized(x => x.Short);
     model.SeName = project.GetLocalized(x => x.SeName);
     model.MetaDescription = project.GetLocalized(x => x.MetaDescription);
     model.MetaKeywords = project.GetLocalized(x => x.MetaKeywords);
     model.MetaTitle = project.GetLocalized(x => x.MetaTitle);
     model.Title = project.GetLocalized(x => x.Title);
     model.PictureModel = new PictureModel
     {
         FullSizeImageUrl = _pictureService.GetPictureUrl(model.PictureId),
         ImageUrl = _pictureService.GetPictureUrl(model.PictureId, _diySettings.DiyProjectThumbPictureSize)
     };
     return View(model);
 }
예제 #4
0
 private void PrepareDiyProjectModel(DiyProjectModel model)
 {
     if (model == null)
     {
         throw new ArgumentNullException("DiyProjectModel");
     }
     model.NumberOfAvailableGroups = _diyService.GetAllDiyGroups().Count;
 }
예제 #5
0
        protected void UpdateLocales(DiyProject diyProject, DiyProjectModel model)
        {
            foreach (var localized in model.Locales)
            {
                _localizedEntityService.SaveLocalizedValue(diyProject,
                                                               x => x.Title,
                                                               localized.Title,
                                                               localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(diyProject,
                                                          x => x.Short,
                                                          localized.MetaKeywords,
                                                          localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(diyProject,
                                                          x => x.Full,
                                                          localized.MetaKeywords,
                                                          localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(diyProject,
                                                           x => x.MetaKeywords,
                                                           localized.MetaKeywords,
                                                           localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(diyProject,
                                                           x => x.MetaDescription,
                                                           localized.MetaDescription,
                                                           localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(diyProject,
                                                           x => x.MetaTitle,
                                                           localized.MetaTitle,
                                                           localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(diyProject,
                                                           x => x.SeName,
                                                           localized.SeName,
                                                           localized.LanguageId);
            }
        }
예제 #6
0
        public ActionResult Edit(DiyProjectModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
                return AccessDeniedView();

            var diyProject = _diyService.GetDiyProjectById(model.Id);
            if (diyProject == null)
                //No news item found with the specified id
                return RedirectToAction("List");

            if (ModelState.IsValid)
            {
                diyProject = model.ToEntity(diyProject);
                _diyService.UpdateDiyProject(diyProject);

                //search engine name
                model.SeName = diyProject.ValidateSeName(model.SeName, diyProject.Title, true);
                _urlRecordService.SaveSlug(diyProject, model.SeName, 0);

                //locales
                UpdateLocales(diyProject, model);
                _diyService.UpdateDiyProject(diyProject);

                SuccessNotification(_localizationService.GetResource("Toi.Plugin.Misc.DoItYourself.DiyProject.Updated"));
                return continueEditing ? RedirectToAction("Edit", new { id = diyProject.Id }) : RedirectToAction("List");
            }
            PrepareDiyProjectModel(model);
            //parent diyProjectGroups
            model.DiyGroups = new List<DropDownItem> { new DropDownItem { Text = "[None]", Value = "0" } };
            if (model.DiyGroupId > 0)
            {
                var parentBranchGroup = _diyService.GetDiyGroupById(model.DiyGroupId);
                if (parentBranchGroup != null && !parentBranchGroup.Deleted)
                    model.DiyGroups.Add(new DropDownItem { Text = parentBranchGroup.GetFormattedBreadCrumb(_diyService), Value = parentBranchGroup.Id.ToString() });
                else
                    model.DiyGroupId = 0;
            }
            return View(model);
        }