コード例 #1
0
ファイル: WidgetsController.cs プロジェクト: eiu165/BetterCMS
        public ActionResult EditServerControlWidget(EditServerControlWidgetViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.ContentOptions != null && model.ContentOptions.GroupBy(o => o.OptionKey).SelectMany(g => g.Skip(1)).Any())
                {
                    Messages.AddError(PagesGlobalization.SaveWidget_DublicateOptionName_Message);
                    return(Json(new WireJson {
                        Success = false
                    }));
                }

                var response = GetCommand <SaveServerControlWidgetCommand>().ExecuteCommand(model);
                if (response != null)
                {
                    if (model.Id.HasDefaultValue())
                    {
                        Messages.AddSuccess(PagesGlobalization.SaveWidget_CreatedSuccessfully_Message);
                    }

                    return(Json(new WireJson {
                        Success = true, Data = response
                    }));
                }
            }

            return(Json(new WireJson {
                Success = false
            }));
        }
コード例 #2
0
        private ServerControlWidget GetServerControlWidgetFromRequest(EditServerControlWidgetViewModel request, bool treatNullsAsLists, bool isNew)
        {
            ServerControlWidget widget = new ServerControlWidget();

            widget.Id = request.Id;

            widget.Name       = request.Name;
            widget.Url        = request.Url;
            widget.Version    = request.Version;
            widget.PreviewUrl = request.PreviewImageUrl;

            SetWidgetCategories(request, widget, treatNullsAsLists, isNew);
            SetWidgetOptions(request, widget, treatNullsAsLists, isNew);

            return(widget);
        }
コード例 #3
0
        public static EditServerControlWidgetViewModel ToServiceModel(this SaveServerControlWidgetModel model)
        {
            var serviceModel = new EditServerControlWidgetViewModel();

            serviceModel.Version         = model.Version;
            serviceModel.Name            = model.Name;
            serviceModel.DesirableStatus = model.IsPublished ? ContentStatus.Published : ContentStatus.Draft;
            serviceModel.PublishedOn     = model.PublishedOn;
            serviceModel.PublishedByUser = model.PublishedByUser;
            serviceModel.CategoryId      = model.CategoryId;
            serviceModel.Url             = model.WidgetUrl;
            serviceModel.PreviewImageUrl = model.PreviewUrl;

            if (model.Options != null)
            {
                serviceModel.Options = model.Options.ToServiceModel();
            }

            return(serviceModel);
        }
コード例 #4
0
        public ActionResult EditServerControlWidget(EditServerControlWidgetViewModel model)
        {
            if (ModelState.IsValid)
            {
                var response = GetCommand <SaveServerControlWidgetCommand>().ExecuteCommand(model);
                if (response != null)
                {
                    if (model.Id.HasDefaultValue())
                    {
                        Messages.AddSuccess(PagesGlobalization.SaveWidget_CreatedSuccessfully_Message);
                    }

                    return(Json(new WireJson {
                        Success = true, Data = response
                    }));
                }
            }

            return(Json(new WireJson {
                Success = false
            }));
        }
コード例 #5
0
        public ServerControlWidget SaveServerControlWidget(EditServerControlWidgetViewModel model, bool treatNullsAsLists = true, bool createIfNotExists = false)
        {
            if (model.DesirableStatus == ContentStatus.Draft)
            {
                throw new CmsException(string.Format("Server widget does not support Draft state."));
            }

            if (model.Options != null)
            {
                optionService.ValidateOptionKeysUniqueness(model.Options);
            }

            unitOfWork.BeginTransaction();

            bool isCreatingNew;

            var requestWidget = GetServerControlWidgetFromRequest(model, treatNullsAsLists, !model.Id.HasDefaultValue());
            var widget        = GetWidgetForSave(requestWidget, model, createIfNotExists, out isCreatingNew);

            repository.Save(widget);
            unitOfWork.Commit();

            // Notify.
            if (widget.Status != ContentStatus.Preview)
            {
                if (isCreatingNew)
                {
                    Events.PageEvents.Instance.OnWidgetCreated(widget);
                }
                else
                {
                    Events.PageEvents.Instance.OnWidgetUpdated(widget);
                }
            }

            return(widget);
        }
コード例 #6
0
        private ServerControlWidget GetServerControlWidgetFromRequest(EditServerControlWidgetViewModel request, bool treatNullsAsLists, bool isNew)
        {
            ServerControlWidget widget = new ServerControlWidget();

            widget.Id = request.Id;

            if (request.CategoryId.HasValue && !request.CategoryId.Value.HasDefaultValue())
            {
                widget.Category = repository.AsProxy <CategoryEntity>(request.CategoryId.Value);
            }
            else
            {
                widget.Category = null;
            }

            widget.Name       = request.Name;
            widget.Url        = request.Url;
            widget.Version    = request.Version;
            widget.PreviewUrl = request.PreviewImageUrl;

            SetWidgetOptions(request, widget, treatNullsAsLists, isNew);

            return(widget);
        }
コード例 #7
0
        public static EditServerControlWidgetViewModel ToServiceModel(this SaveServerControlWidgetModel model)
        {
            var serviceModel = new EditServerControlWidgetViewModel();

            serviceModel.Version         = model.Version;
            serviceModel.Name            = model.Name;
            serviceModel.DesirableStatus = model.IsPublished ? ContentStatus.Published : ContentStatus.Draft;
            serviceModel.PublishedOn     = model.PublishedOn;
            serviceModel.PublishedByUser = model.PublishedByUser;
            serviceModel.Categories      = model.Categories != null?model.Categories.Select(c => new LookupKeyValue()
            {
                Key = c.ToString(),
            }).ToList() : new List <LookupKeyValue>();

            serviceModel.Url             = model.WidgetUrl;
            serviceModel.PreviewImageUrl = model.PreviewUrl;

            if (model.Options != null)
            {
                serviceModel.Options = model.Options.ToServiceModel();
            }

            return(serviceModel);
        }