コード例 #1
0
        /// <summary>
        /// Constructs new table update result from updated/removed sets and table message. Type parameter must be target table's row type
        /// </summary>
        /// <typeparam name="T">Target table's row type</typeparam>
        /// <param name="editionResultAction">Action representing edition results on table</param>
        /// <returns></returns>
        public static TableUpdateResult FromEditionResult <T>(Action <EditionResultWrapper <T> > editionResultAction)
        {
            EditionResult            result  = new EditionResult();
            EditionResultWrapper <T> wrapper = new EditionResultWrapper <T>(result);

            editionResultAction(wrapper);
            return(new TableUpdateResult(result));
        }
コード例 #2
0
        public ActionResult Handle(PowerTablesData data, IResponseModifiersApplier responseModifiers)
        {
            if (_handlerMethod == null)
            {
                throw new Exception("This is asynchronous command handler. Please use it with .HandleAsync, not .Handle.");
            }

            PowerTablesData <TSourceData, TTargetData> typedData = new PowerTablesData <TSourceData, TTargetData>(data);
            var editionResult = new EditionResult();
            var wrapper       = new EditionResultWrapper <TTargetData>(editionResult);

            wrapper.Confirm(data.Request.RetrieveAdditionalObject <TTargetData>(EditorExtensions.EditAdditionalDataKey));
            _handlerMethod(typedData, wrapper);
            return(new JsonNetResult()
            {
                Data = editionResult, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
コード例 #3
0
        public async Task <ActionResult> HandleAsync(PowerTablesData data, IResponseModifiersApplier responseModifiers)
        {
            PowerTablesData <TSourceData, TTargetData> typedData = new PowerTablesData <TSourceData, TTargetData>(data);
            var editionResult = new EditionResult();
            var wrapper       = new EditionResultWrapper <TTargetData>(editionResult);

            wrapper.Confirm(data.Request.RetrieveAdditionalObject <TTargetData>(EditorExtensions.EditAdditionalDataKey));
            if (_asynchandlerMethod != null)
            {
                await _asynchandlerMethod(typedData, wrapper).ConfigureAwait(false);
            }
            else
            {
                _handlerMethod(typedData, wrapper);
            }
            return(new JsonNetResult()
            {
                Data = editionResult, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
コード例 #4
0
        /// <summary>
        /// Constructs new table update result from updated/removed sets and table message. Type parameter must be target table's row type
        /// </summary>
        /// <typeparam name="T">Target table's row type</typeparam>
        /// <param name="updated">Set of updated entries</param>
        /// <param name="removed">Set of removed entries. Only primary key specified with configuration's .PrimaryKey will be enough here</param>
        /// <param name="message">Table message to show</param>
        /// <returns></returns>
        public static TableUpdateResult FromRange <T>(IEnumerable <T> updated = null, IEnumerable <T> removed = null, TableMessage message = null)
        {
            EditionResult            result  = new EditionResult();
            EditionResultWrapper <T> wrapper = new EditionResultWrapper <T>(result);

            result.Message = message;
            if (updated != null)
            {
                foreach (var up in updated)
                {
                    wrapper.Adjustments.AddOrUpdate(up);
                }
            }

            if (removed != null)
            {
                foreach (var rem in removed)
                {
                    wrapper.Adjustments.Remove(rem);
                }
            }
            return(new TableUpdateResult(result));
        }