コード例 #1
0
        public async Task <List <FunctionViewModel> > GetFunctionByRoles(FunctionRequest request)
        {
            string[] roles       = request.Roles.ToArray();
            var      functionIds = (await _permissionRepository.FindAll(await BuildingQuery(roles))).AsNoTracking().AsParallel().AsUnordered().WithDegreeOfParallelism(3).Where(x => x.CanRead).Select(x => x.FunctionId);
            var      ids         = new List <string>();

            foreach (var id in functionIds)
            {
                var functionDetail = await _functionRepository.FindById(id);

                if (functionDetail.ParentId != null)
                {
                    ids.AddRange(new List <string>
                    {
                        id,
                        functionDetail.ParentId
                    });
                }
                else
                {
                    ids.Add(id);
                }
            }

            var function = from fun in (await _functionRepository.FindAll()).AsNoTracking()
                           join id in ids.Distinct()
                           on fun.Id equals id
                           select fun;

            return(new FunctionViewModel().Map(function).ToList());
        }
コード例 #2
0
        public int Add(FunctionRequest request)
        {
            var objreturn = _repository.ExecuteScalarV2("FunctionAdd", new
            {
                //ParentId = request.ParentId,
                //Name = request.Name,
                //Icon = request.Icon,
                //ActionLink = request.ActionLink,
                //Status = request.Status,
                //ShowInMenu = request.ShowInMenu,
                //Description = request.Description,
                //ActUserId = request.ActUserId,
                //Actions = request.Actions.Any() ? JsonSerializer.Serialize(request.Actions) : null
                ParentId      = request.ParentId,
                Name          = request.Name,
                Icon          = request.Icon,
                ActionLink    = request.ActionLink,
                SortOrder     = 1,
                Status        = request.Status,
                ShowInMenu    = request.ShowInMenu,
                Description   = request.Description,
                level         = 1,
                CreatedUserId = 1,
                Data          = request.Actions.Select(c => new {
                    Id             = c.Id,
                    Name           = c.Name,
                    ControllerName = c.ControllerName,
                    ActionName     = c.ActionName,
                    Method         = c.Method
                }).ToList().ToDataTable()
            });

            return((int)objreturn);
        }
        public async Task FunctionHandler_WhenExecuted()
        {
            var request = new FunctionRequest();

            request.Scripts = new SqlSriptData[]
            {
                new SqlSriptData
                {
                    CsvOutputLocation   = "s3://rd-dev-client-mantasmasidlauskas-eu-west-1/surveillance-etl/spike/results/orders",
                    Database            = "mm-spike",
                    SqlScriptS3Location = "s3://rd-dev-client-mantasmasidlauskas-eu-west-1/surveillance-etl/spike/scripts/Orders.sql"
                }
            };

            var requestJson = JsonConvert.SerializeObject(request);

            var function = new Function((sc) =>
            {
                sc.RemoveAll <IEC2InstanceMetadataProvider>();
                sc.AddTransient <IEC2InstanceMetadataProvider, UnitTestEC2InstanceMetadataProvider>();
                return(sc);
            });
            var context = new TestLambdaContext();

            // var result = await function.FunctionHandler(request, context);
            // Assert.True(result);

            await Task.CompletedTask;
        }
コード例 #4
0
        public async Task <bool> ExecuteAsync(FunctionRequest request)
        {
            var preProcessResponse = await _filePreProcessorService.PreProcessAsync(request.FilePreProcessorData);

            var executeResponse = await _sqlSriptExecutorService.ExecuteAsync(request.Scripts);

            return(preProcessResponse && executeResponse);
        }
コード例 #5
0
        public async Task <IActionResult> RunAsync([FromBody] FunctionRequest request)
        {
            FunctionResponse response = await _mediator.Send(request);

            _logger.LogInformation("Function Run Finished at {0}", DateTime.UtcNow);

            return(Ok(response));
        }
コード例 #6
0
        public async Task <bool> FunctionHandler(FunctionRequest request, ILambdaContext context)
        {
            using (var scope = serviceProvider.CreateScope())
            {
                var functionService = scope.ServiceProvider.GetRequiredService <IFunctionService>();
                var result          = await functionService.ExecuteAsync(request);

                return(result);
            }
        }
コード例 #7
0
        public async Task <(int, string)> Handle(HttpRequest request)
        {
            using StreamReader reader = new StreamReader(request.Body);
            string input = await reader.ReadToEndAsync();

            FunctionRequest  req      = JsonConvert.DeserializeObject <FunctionRequest>(input);
            FunctionResponse response = await _mediator.Send(req);

            return(200, JsonConvert.SerializeObject(response));
        }
コード例 #8
0
        public static void Send(JSApplication application, JSSession session, Action <object> callback, string data)
        {
            if (_onMessage == null)
            {
                return;
            }

            var request = new FunctionRequest(_onMessage, application, callback, session, data);

            application.AddRequest(request);
        }
コード例 #9
0
        private Task <FunctionResult <TResultType> > ExecuteFuncWhenReady <TResultType>(
            FunctionRequest <TResultType> funcRequest,
            CancellationTokenManager tokenManager,
            ProgressManager <TResultType> progressManager)
        {
            // Wait so we limit the number of concurrent threads.
            _semaphore.Wait();

            return(Task
                   .Run(() => ExecuteFunc(funcRequest, tokenManager, progressManager))
                   .ContinueWith(task => { _semaphore.Release(); return task.Result; }));
        }
コード例 #10
0
        /// <summary>
        /// Get data from function table with paging
        /// </summary>
        /// <param name="param"></param>
        /// <param name="active"></param>
        /// <param name="locked"></param>
        /// <param name="keyword"></param>
        /// <param name="startdate"></param>
        /// <param name="enddate"></param>
        /// <returns></returns>
        public string GetDataPaging(JQueryDataTableParamModel param, string function_name, string startdate, string enddate)
        {
            var pageIndex = 0;

            if (Convert.ToInt32(param.iDisplayStart) > 0)
            {
                pageIndex = Convert.ToInt32(param.iDisplayStart) / Convert.ToInt32(param.iDisplayLength);
            }
            var request = new FunctionRequest()
            {
                pageIndex = pageIndex,
                pageSize  = param.iDisplayLength,
                NAME      = function_name,
                STATUS    = null
            };


            var result = GetDataPaging(request).data;

            if (result == null || result.data == null)
            {
                result       = new FunctionResponse();
                result.total = 0;
                result.data  = new List <FunctionDataResponse>();
            }
            if (param.sSearch != null)
            {
                return(JsonConvert.SerializeObject(new
                {
                    param.sEcho,
                    iTotalRecords = result.total,
                    iTotalDisplayRecords = result.total,
                    aaData = result.data.Where(x => x.ID.ToString().IndexOf(param.sSearch) != -1 || x.NAME.ToString().IndexOf(param.sSearch) != -1 || x.MODULE_NAME.ToString().IndexOf(param.sSearch) != -1 || x.MODIFIED_BY.ToString().IndexOf(param.sSearch) != -1 || x.MODIFIED_AT.ToString().IndexOf(param.sSearch) != -1).OrderBy(x => x.MODULE_ID).OrderBy(x => x.POSITION).ToList()
                }));
            }

            else
            {
                return(JsonConvert.SerializeObject(new
                {
                    param.sEcho,
                    iTotalRecords = result.total,
                    iTotalDisplayRecords = result.total,
                    aaData = result.data.OrderBy(x => x.MODULE_NAME).OrderBy(x => x.POSITION).ToList()
                }));
            }
        }
コード例 #11
0
        private static FunctionResult <TResultType> ExecuteFunc <TResultType>(
            FunctionRequest <TResultType> funcRequest,
            CancellationTokenManager tokenManager,
            ProgressManager <TResultType> progressManager)
        {
            var result = tokenManager.IsCancellationRequested
                ? Try <TResultType>(new TaskCanceledException())
                : funcRequest.Func().Strict();

            // On error, signal cancellation of remaining tasks if required.
            tokenManager.SetCancelIfError(result);

            // Report task completion to caller.
            progressManager.Report(result, funcRequest.Idx);

            return(new FunctionResult <TResultType>(result, funcRequest.Idx));
        }
コード例 #12
0
 public ResponseBase <FunctionResponse> GetDataPaging(FunctionRequest request)
 {
     return(HttpClientCore <FunctionResponse> .ExecuteRequest(Common.BaseUrl, "/api/function/getdatapaging", request, Method.POST));
 }