Exemplo n.º 1
0
        public override async Task <string> RunAsync(TaskContext context, string rawInput)
        {
            string instanceId   = context.OrchestrationInstance.InstanceId;
            var    inputContext = new DurableActivityContext(instanceId, rawInput);

            // TODO: Wire up the parent ID to improve dashboard logging.
            Guid?parentId     = null;
            var  triggerInput = new TriggeredFunctionData {
                ParentId = parentId, TriggerValue = inputContext
            };

            this.config.TraceHelper.FunctionStarting(
                this.config.HubName,
                this.activityName,
                instanceId,
                this.config.GetIntputOutputTrace(rawInput),
                functionType: FunctionType.Activity,
                isReplay: false);

            FunctionResult result = await this.executor.TryExecuteAsync(triggerInput, CancellationToken.None);

            if (!result.Succeeded)
            {
                // Flow the original activity function exception to the orchestration
                // without the outer FunctionInvocationException.
                Exception exceptionToReport = StripFunctionInvocationException(result.Exception);

                this.config.TraceHelper.FunctionFailed(
                    this.config.HubName,
                    this.activityName,
                    instanceId,
                    exceptionToReport?.ToString() ?? string.Empty,
                    functionType: FunctionType.Activity,
                    isReplay: false);

                if (exceptionToReport != null)
                {
                    throw new TaskFailureException(
                              $"Activity function '{this.activityName}' failed: {exceptionToReport.Message}",
                              Utils.SerializeCause(exceptionToReport, MessagePayloadDataConverter.Default));
                }
            }

            string serializedOutput = inputContext.GetSerializedOutput();

            this.config.TraceHelper.FunctionCompleted(
                this.config.HubName,
                this.activityName,
                instanceId,
                this.config.GetIntputOutputTrace(serializedOutput),
                continuedAsNew: false,
                functionType: FunctionType.Activity,
                isReplay: false);

            return(serializedOutput);
        }
        public static async Task <WrappedFunctionResult> ExecuteFunctionInOrchestrationMiddleware(
            ITriggeredFunctionExecutor executor,
            TriggeredFunctionData triggerInput,
            CancellationToken cancellationToken)
        {
#pragma warning disable CS0618 // InvokeHandler approved for use by this extension
            if (triggerInput.InvokeHandler == null)
            {
                throw new ArgumentException(
                          $"{nameof(ExecuteFunctionInOrchestrationMiddleware)} should only be used when ${nameof(triggerInput)} has a value for ${nameof(TriggeredFunctionData.InvokeHandler)}");
            }

            try
            {
                bool executedUserCode      = false;
                var  triggeredFunctionData = new TriggeredFunctionData()
                {
                    TriggerValue  = triggerInput.TriggerValue,
                    ParentId      = triggerInput.ParentId,
                    InvokeHandler = userCodeHandler =>
                    {
                        executedUserCode = true;
                        return(triggerInput.InvokeHandler(userCodeHandler));
                    },
#if !FUNCTIONS_V1
                    TriggerDetails = triggerInput.TriggerDetails,
#endif
                };
#pragma warning restore CS0618

                FunctionResult result = await executor.TryExecuteAsync(triggerInput, cancellationToken);

                if (result.Succeeded)
                {
                    return(WrappedFunctionResult.Success());
                }

                if (cancellationToken.IsCancellationRequested)
                {
                    return(WrappedFunctionResult.FunctionRuntimeFailure(result.Exception));
                }

                if (!executedUserCode)
                {
                    WrappedFunctionResult.UserCodeFailure(new InvalidOperationException(
                                                              "The function failed to start executing. " +
                                                              "For .NET functions, this can happen if an unhandled exception is thrown in the function's class constructor."));
                }

                return(WrappedFunctionResult.UserCodeFailure(result.Exception));
            }
            catch (Exception e)
            {
                return(WrappedFunctionResult.FunctionRuntimeFailure(e));
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 收银员台支付
        /// </summary>
        public async Task <ActionResult> ManagerPay(Cart cart, ManagerCartAddition cartAddition)
        {
            SystemConfig system = await YummyOnlineManager.GetSystemConfig();

            if (system.Token != cartAddition.Token)
            {
                return(Json(new JsonError("身份验证失败")));
            }

            var hotel = await YummyOnlineManager.GetHotelById(cartAddition.HotelId);

            CurrHotel = new CurrHotelInfo(hotel.Id, hotel.ConnectionString);

            if (!hotel.Usable)
            {
                return(RedirectToAction("HotelUnavailable", "Error"));
            }

            cart.PayKindId = await new HotelManager(CurrHotel.ConnectionString).GetOtherPayKindId();
            CartAddition addition = new CartAddition {
                WaiterId     = cartAddition.WaiterId,
                DineType     = cartAddition.DineType,
                Discount     = cartAddition.Discount,
                DiscountName = cartAddition.DiscountName,
                GiftMenus    = cartAddition.GiftMenus,
                From         = DineFrom.Manager
            };

            User user = await UserManager.FindByIdAsync(cartAddition.UserId);

            addition.UserId = user?.Id;

            // 创建新订单
            FunctionResult result = await OrderManager.CreateDine(cart, addition);

            if (!result.Succeeded)
            {
                if (await UserManager.IsInRoleAsync(user.Id, Role.Nemo))
                {
                    await UserManager.DeleteAsync(user);

                    await YummyOnlineManager.RecordLog(YummyOnlineDAO.Models.Log.LogProgram.Identity, YummyOnlineDAO.Models.Log.LogLevel.Warning, $"Anonymous User Deleted {user.Id}, Via Manager");
                }
                await HotelManager.RecordLog(HotelDAO.Models.Log.LogLevel.Error, $"{result.Detail}, Host:{Request.UserHostAddress}", HttpPost.GetPostData(Request));

                return(Json(new JsonError(result.Message)));
            }

            Dine dine = ((Dine)result.Data);

            await newDineInform(dine, "Manager");

            return(Json(new JsonSuccess {
                Data = dine.Id
            }));
        }
        private async Task ProcessMessageAsync(BrokeredMessage message, CancellationToken cancellationToken)
        {
            FunctionResult result = await _triggerExecutor.ExecuteAsync(message, cancellationToken);

            if (!result.Succeeded)
            {
                cancellationToken.ThrowIfCancellationRequested();
                await message.AbandonAsync();
            }
        }
Exemplo n.º 5
0
        public async Task <JsonResult> Insert(string name)
        {
            FunctionResult result = await ExpressCompaniesManager.Insert(name);

            if (result.IsSucceed)
            {
                return(Json(new JsonSucceedObj()));
            }
            return(Json(new JsonErrorObj(result.ErrorMessage)));
        }
Exemplo n.º 6
0
        public FunctionResult <Component> Create(Component info)
        {
            var r = new FunctionResult <Component>(); int id = ComponentDal.Add(info); if (id > 0)

            {
                r.Data = info; r.Data.ComponentId = id;
            }

            return(r);
        }
Exemplo n.º 7
0
        public FunctionResult <SolutionTemplate> Create(SolutionTemplate info)
        {
            var r = new FunctionResult <SolutionTemplate>(); int id = SolutionTemplateDal.Add(info); if (id > 0)

            {
                r.Data = info; r.Data.SolutionTemplateId = id;
            }

            return(r);
        }
Exemplo n.º 8
0
        public FunctionResult <SolutionTemplate> GetWithCodeTemplatesBySolutionTemplateId(int Id)
        {
            FunctionResult <SolutionTemplate> r = Get(Id);

            if (r.ActionResult && r.HavingData)
            {
                r.Data.SolutionTemplates = CodeTemplateDal.GetListBySolutionTemplateId(Id);
            }
            return(r);
        }
Exemplo n.º 9
0
        public void TestExecuteNoResultType(
            [Values(ExecuteSQLShared.ReturnModeType.RowByRow, ExecuteSQLShared.ReturnModeType.ListOfRows, ExecuteSQLShared.ReturnModeType.FirstRow, ExecuteSQLShared.ReturnModeType.FirstRowElseEmptyRow)]
            ExecuteSQLShared.ReturnModeType returnModeType)
        {
            string         sql    = "DECLARE @t TABLE ( AColumn INT )";
            FunctionResult result = Execute(sql, returnModeType);

            Assert.IsNull(result.Value);
            Assert.IsNull(result.ExecutionPathResult);
        }
        public void Creating_BeingFailure_MapsValueToDefaultObject <T>(T value)
        {
            // Act
            var sut = FunctionResult.CreateFailure <T>();

            Debug.WriteLine(value);

            // Assert
            sut.Value.Should().Be(default(T));
        }
Exemplo n.º 11
0
        void OnFunctionCall(FunctionResult res)
        {
            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < _coile.Length; i++)
            {
                sb.AppendLine(_coile[i].ToString());
            }
            res.Message = sb.ToString();
        }
Exemplo n.º 12
0
        public FunctionResult <AppUser> Create(AppUser info)
        {
            var r = new FunctionResult <AppUser>(); int id = AppUserDal.Add(info); if (id > 0)

            {
                r.Data = info; r.Data.AppUserId = id;
            }

            return(r);
        }
Exemplo n.º 13
0
        public FunctionResult <AppService> Create(AppService info)
        {
            var r = new FunctionResult <AppService>(); int id = AppServiceDal.Add(info); if (id > 0)

            {
                r.Data = info; r.Data.AppServiceId = id;
            }

            return(r);
        }
Exemplo n.º 14
0
        public FunctionResult <JobToken> Create(JobToken info)
        {
            var r = new FunctionResult <JobToken>(); int id = JobTokenDal.Add(info); if (id > 0)

            {
                r.Data = info; r.Data.JobTokenId = id;
            }

            return(r);
        }
Exemplo n.º 15
0
        public FunctionResult <AppInstanceToken> Create(AppInstanceToken info)
        {
            var r = new FunctionResult <AppInstanceToken>(); int id = AppInstanceTokenDal.Add(info); if (id > 0)

            {
                r.Data = info; r.Data.AppInstanceTokenId = id;
            }

            return(r);
        }
Exemplo n.º 16
0
        public async Task <JsonResult> Update(ExpressCompanyViewModel model)
        {
            FunctionResult result = await ExpressCompaniesManager.Update(model.Id, model.Discription);

            if (result.IsSucceed)
            {
                return(Json(new JsonSucceedObj()));
            }
            return(Json(new JsonErrorObj(result.ErrorMessage)));
        }
Exemplo n.º 17
0
        public async Task <JsonResult> Delete(int id)
        {
            FunctionResult result = await ExpressCompaniesManager.Delete(id);

            if (result.IsSucceed)
            {
                return(Json(new JsonSucceedObj()));
            }
            return(Json(new JsonErrorObj(result.ErrorMessage)));
        }
        /// <summary>
        /// Constructs a new instance.
        /// </summary>
        /// <param name="arguments">The function arguments.</param>
        /// <param name="properties">The property bag that can be used to pass information between filters.</param>
        /// <param name="functionInstanceId">The instance ID for the function invocation.</param>
        /// <param name="functionName">The name of the function.</param>
        /// <param name="logger"><see cref="ILogger"/> that can be used by the filter to log information.</param>
        /// <param name="functionResult">The function result.</param>
        public FunctionExecutedContext(IReadOnlyDictionary <string, object> arguments, IDictionary <string, object> properties, Guid functionInstanceId, string functionName, ILogger logger, FunctionResult functionResult)
            : base(arguments, properties, functionInstanceId, functionName, logger)
        {
            if (functionResult == null)
            {
                throw new ArgumentNullException(nameof(functionResult));
            }

            FunctionResult = functionResult;
        }
Exemplo n.º 19
0
        public FunctionResult <AppGrant> Create(AppGrant info)
        {
            var r = new FunctionResult <AppGrant>(); int id = AppGrantDal.Add(info); if (id > 0)

            {
                r.Data = info; r.Data.AppGrantId = id;
            }

            return(r);
        }
Exemplo n.º 20
0
        public bool Judge(string destStr) => true;                //这里判断是否能触发指令

        public FunctionResult Progress(CQGroupMessageEventArgs e) //群聊处理
        {
            FunctionResult result = new FunctionResult
            {
                Result   = false,
                SendFlag = false,
            };

            return(result);
        }
Exemplo n.º 21
0
        public FunctionResult <AppConfig> Create(AppConfig info)
        {
            var r = new FunctionResult <AppConfig>(); int id = AppConfigDal.Add(info); if (id > 0)

            {
                r.Data = info; r.Data.AppConfigId = id;
            }

            return(r);
        }
Exemplo n.º 22
0
        public FunctionResult <LoginInfo> Create(LoginInfo info)
        {
            var r = new FunctionResult <LoginInfo>(); int id = LoginInfoDal.Add(info); if (id > 0)

            {
                r.Data = info; r.Data.LoginInfoId = id;
            }

            return(r);
        }
Exemplo n.º 23
0
        public FunctionResult <DataConnection> Create(DataConnection info)
        {
            var r = new FunctionResult <DataConnection>(); int id = DataConnectionDal.Add(info); if (id > 0)

            {
                r.Data = info; r.Data.DataConnectionId = id;
            }

            return(r);
        }
Exemplo n.º 24
0
        public async Task ProcessFileAsync_ChangeTypeChange_Success()
        {
            FileTriggerAttribute attribute = new FileTriggerAttribute(attributeSubPath, "*.dat");

            processor = CreateTestProcessor(attribute);

            string testFile = WriteTestFile("dat");

            FunctionResult result = new FunctionResult(true);

            mockExecutor.Setup(p => p.TryExecuteAsync(It.IsAny <TriggeredFunctionData>(), It.IsAny <CancellationToken>())).ReturnsAsync(result);

            // first process a Create event
            string testFilePath            = Path.GetDirectoryName(testFile);
            string testFileName            = Path.GetFileName(testFile);
            FileSystemEventArgs eventArgs  = new FileSystemEventArgs(WatcherChangeTypes.Created, testFilePath, testFileName);
            bool fileProcessedSuccessfully = await processor.ProcessFileAsync(eventArgs, CancellationToken.None);

            Assert.True(fileProcessedSuccessfully);

            // now process a Change event
            File.WriteAllText(testFile, "update");
            eventArgs = new FileSystemEventArgs(WatcherChangeTypes.Changed, testFilePath, testFileName);
            fileProcessedSuccessfully = await processor.ProcessFileAsync(eventArgs, CancellationToken.None);

            Assert.True(fileProcessedSuccessfully);

            string expectedStatusFile = processor.GetStatusFile(testFile);

            Assert.True(File.Exists(testFile));
            Assert.True(File.Exists(expectedStatusFile));
            string[] lines = File.ReadAllLines(expectedStatusFile);
            Assert.Equal(4, lines.Length);

            StatusFileEntry entry = (StatusFileEntry)_serializer.Deserialize(new StringReader(lines[0]), typeof(StatusFileEntry));

            Assert.Equal(ProcessingState.Processing, entry.State);
            Assert.Equal(WatcherChangeTypes.Created, entry.ChangeType);
            Assert.Equal(InstanceId.Substring(0, 20), entry.InstanceId);

            entry = (StatusFileEntry)_serializer.Deserialize(new StringReader(lines[1]), typeof(StatusFileEntry));
            Assert.Equal(ProcessingState.Processed, entry.State);
            Assert.Equal(WatcherChangeTypes.Created, entry.ChangeType);
            Assert.Equal(InstanceId.Substring(0, 20), entry.InstanceId);

            entry = (StatusFileEntry)_serializer.Deserialize(new StringReader(lines[2]), typeof(StatusFileEntry));
            Assert.Equal(ProcessingState.Processing, entry.State);
            Assert.Equal(WatcherChangeTypes.Changed, entry.ChangeType);
            Assert.Equal(InstanceId.Substring(0, 20), entry.InstanceId);

            entry = (StatusFileEntry)_serializer.Deserialize(new StringReader(lines[3]), typeof(StatusFileEntry));
            Assert.Equal(ProcessingState.Processed, entry.State);
            Assert.Equal(WatcherChangeTypes.Changed, entry.ChangeType);
            Assert.Equal(InstanceId.Substring(0, 20), entry.InstanceId);
        }
Exemplo n.º 25
0
        public override async Task <string> RunAsync(TaskContext context, string rawInput)
        {
            string instanceId   = context.OrchestrationInstance.InstanceId;
            var    inputContext = new DurableActivityContext(instanceId, rawInput);

            // TODO: Wire up the parent ID to improve dashboard logging.
            Guid?parentId     = null;
            var  triggerInput = new TriggeredFunctionData {
                ParentId = parentId, TriggerValue = inputContext
            };

            this.config.TraceHelper.FunctionStarting(
                this.config.HubName,
                this.activityName,
                this.activityVersion,
                instanceId,
                this.config.GetIntputOutputTrace(rawInput),
                isOrchestrator: false,
                isReplay: false);

            FunctionResult result = await this.executor.TryExecuteAsync(triggerInput, CancellationToken.None);

            if (!result.Succeeded)
            {
                this.config.TraceHelper.FunctionFailed(
                    this.config.HubName,
                    this.activityName,
                    this.activityVersion,
                    instanceId,
                    result.Exception?.ToString() ?? string.Empty,
                    isOrchestrator: false,
                    isReplay: false);

                if (result.Exception != null)
                {
                    // Preserve the original exception context so that the durable task
                    // framework can report useful failure information.
                    ExceptionDispatchInfo.Capture(result.Exception).Throw();
                }
            }

            string serializedOutput = inputContext.GetSerializedOutput();

            this.config.TraceHelper.FunctionCompleted(
                config.HubName,
                this.activityName,
                this.activityVersion,
                instanceId,
                this.config.GetIntputOutputTrace(serializedOutput),
                continuedAsNew: false,
                isOrchestrator: false,
                isReplay: false);

            return(serializedOutput);
        }
Exemplo n.º 26
0
        private void searchData()
        {
            FunctionResult <DataTable> fr = BLL.RetrieveZljdDtgc(rowID, befrom);

            if (!this.DealResult(fr))
            {
                return;
            }
            gridView.DataSource = fr.Result;
            gridView.DataBind();
        }
Exemplo n.º 27
0
        internal async Task ProcessMessageAsync(BrokeredMessage message, CancellationToken cancellationToken)
        {
            if (!await _messageProcessor.BeginProcessingMessageAsync(message, cancellationToken))
            {
                return;
            }

            FunctionResult result = await _triggerExecutor.ExecuteAsync(message, cancellationToken);

            await _messageProcessor.CompleteProcessingMessageAsync(message, result, cancellationToken);
        }
Exemplo n.º 28
0
        public async Task ProcessMessageAsync_FunctionInvocationFails()
        {
            CancellationToken cancellationToken = new CancellationToken();
            FunctionResult    result            = new FunctionResult(false);

            _mockQueueProcessor.Setup(p => p.BeginProcessingMessageAsync(_queueMessage, cancellationToken)).ReturnsAsync(true);
            _mockTriggerExecutor.Setup(p => p.ExecuteAsync(_queueMessage, cancellationToken)).ReturnsAsync(result);
            _mockQueueProcessor.Setup(p => p.CompleteProcessingMessageAsync(_queueMessage, result, cancellationToken)).Returns(Task.FromResult(true));

            await _listener.ProcessMessageAsync(_queueMessage, TimeSpan.FromMinutes(10), cancellationToken);
        }
Exemplo n.º 29
0
        //private void searchData()
        //{
        //    FunctionResult<DataTable> fr = bll.RetrieveQyxxViewList(jsdwrowid);
        //    if (!this.DealResult(fr)) return;
        //    gridView.DataSource = fr.Result;
        //    gridView.DataBind();
        //}

        private void searchData_Aqbjxmzcy()
        {
            FunctionResult <DataTable> fr = BLL.RetrieveAqbjxmzcy(rowID, "");

            if (!this.DealResult(fr))
            {
                return;
            }
            pdg_Aqbjxmzcy.DataSource = fr.Result;
            pdg_Aqbjxmzcy.DataBind();
        }
Exemplo n.º 30
0
        public void Constructor_Boolean()
        {
            FunctionResult result = new FunctionResult(true);

            Assert.True(result.Succeeded);
            Assert.Null(result.Exception);

            result = new FunctionResult(false);
            Assert.False(result.Succeeded);
            Assert.Null(result.Exception);
        }