Пример #1
0
        public ViewResult Create(ElementDataViewModel model, string session)
        {
            var sessionState    = _objectStore.Get <ElementSessionState>(session);
            var contentId       = sessionState.ContentId;
            var contentType     = sessionState.ContentType;
            var describeContext = CreateDescribeContext(contentId, contentType);
            var descriptor      = _elementManager.GetElementDescriptorByTypeName(describeContext, model.TypeName);
            var data            = Request.Form.ToDictionary();
            var element         = _elementManager.ActivateElement(descriptor, e => e.Data = data);
            var context         = CreateEditorContext(session, describeContext.Content, element, postedElementData: data, updater: this);
            var editorResult    = _elementManager.UpdateEditor(context);
            var viewModel       = new EditElementViewModel {
                SessionKey   = session,
                Layout       = describeContext.Content.As <ILayoutAspect>(),
                EditorResult = editorResult,
                TypeName     = model.TypeName,
                DisplayText  = descriptor.DisplayText,
                ElementData  = element.Data.Serialize(),
                Tabs         = editorResult.CollectTabs().ToArray(),
            };

            if (!ModelState.IsValid)
            {
                _transactionManager.Cancel();
            }
            else
            {
                viewModel.Submitted          = true;
                viewModel.ElementEditorModel = _mapper.ToEditorModel(element, describeContext);
            }
            return(View(viewModel));
        }
Пример #2
0
        public ViewResult Edit(string session)
        {
            var sessionState    = _objectStore.Get <ElementSessionState>(session);
            var contentId       = sessionState.ContentId;
            var contentType     = sessionState.ContentType;
            var typeName        = sessionState.TypeName;
            var elementData     = ElementDataHelper.Deserialize(sessionState.ElementData);
            var describeContext = CreateDescribeContext(contentId, contentType);
            var descriptor      = _elementManager.GetElementDescriptorByTypeName(describeContext, typeName);
            var data            = elementData.Combine(ElementDataHelper.Deserialize(sessionState.ElementEditorData));
            var element         = _elementManager.ActivateElement(descriptor, e => e.Data = data);
            var context         = CreateEditorContext(session, describeContext.Content, element, elementData);
            var editorResult    = _elementManager.BuildEditor(context);

            var viewModel = new EditElementViewModel {
                Layout       = describeContext.Content.As <ILayoutAspect>(),
                EditorResult = editorResult,
                TypeName     = typeName,
                DisplayText  = descriptor.DisplayText,
                ElementData  = element.Data.Serialize(),
                Tabs         = editorResult.CollectTabs().ToArray(),
                SessionKey   = session,
                Submitted    = !descriptor.EnableEditorDialog,
            };

            return(View(viewModel));
        }
Пример #3
0
        /// <summary>
        /// The get.
        /// </summary>
        /// <param name="objectStore">
        /// The object store.
        /// </param>
        /// <param name="originalKey">
        /// The original key.
        /// </param>
        /// <typeparam name="T">
        /// </typeparam>
        /// <returns>
        /// </returns>
        public static T Get <T>([NotNull] this IObjectStore objectStore, [NotNull] string originalKey)
        {
            CodeContracts.VerifyNotNull(objectStore, "objectStore");
            CodeContracts.VerifyNotNull(originalKey, "originalKey");

            var item = objectStore.Get(originalKey);

            if (item is T)
            {
                return((T)item);
            }

            return(default);
Пример #4
0
 public void LoadSettings(List <Plugin> plugs)
 {
     plugs.ForEach(x => x.Settings = _store.Get <PluginSetting>("PluginSetting", x.GetType().Name) ?? new PluginSetting());
 }
Пример #5
0
        public static T Get <T>(this IObjectStore store, string key, Func <T> defaultValue = null)
        {
            var value = store.Get(key);

            return((T)(value ?? (defaultValue != null ? defaultValue() : default(T))));
        }