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