예제 #1
0
        public async Task <ConcurrentBag <ResponseSend> > Run()
        {
            ConcurrentBag <ResponseSend> resultError = new ConcurrentBag <ResponseSend>();
            Guid jobid = Guid.Empty;

            try
            {
                var jobRunHandler = GetJobRun();

                List <AccountSend> accountsenders = await GetAccountsAppMessagers();

                RequestJob job = new RequestJob();
                foreach (var item in accountsenders)
                {
                    job = new RequestJob {
                        AccountSend = item, Retry = resultError
                    };
                    jobRunHandler.Post(job);
                }
                jobRunHandler.Complete();
                await jobRunHandler.Completion;

                await _taskService.TaskSchedulerRepository.Complete(_jobid);
            }
            catch (Exception e)
            {
                //resultError.IsError = true;
                //   resultError.Message = e.Message;
            }
            finally
            {
            }

            return(resultError);
        }
예제 #2
0
        async public Task <IActionResult> RequestJob([FromBody] RequestJob job, [FromHeader] string authorization)
        {
            Account org = await jWTService.GetAccount(authorization);

            if (org == null)
            {
                return(Unauthorized(new
                {
                    success = false,
                    code = 401,
                    error = "Unauthorized"
                }));
            }

            if (org.ma_dn == null)
            {
                return(Forbid("Forbidden"));
            }

            job.ma_cong_ty = org.ma_dn;

            RequestJob requestJob = await requestJobRepository.Create(job);

            if (requestJob == null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }

            return(Ok(new
            {
                success = true
            }));
        }
        public async Task ImportAsync(RequestJob requestJob, IEnumerable <RequestHeader> headers)
        {
            using (var unit = IoC.Resolve <IUnitOfWork>())
            {
                var headersToAdd = new List <RequestHeader>();
                foreach (var header in headers)
                {
                    if (header != null)
                    {
                        headersToAdd.Add(await unit.Resolve <IRequestHeaderModule>().AddOrUpdateAsync(header));
                    }
                }
                headersToAdd = headersToAdd.Where(x => x != null).ToList();

                requestJob.Headers = headersToAdd;
                await unit.Resolve <IRequestJobModule>().AddOrUpdateAsync(requestJob);
            }
        }
        static void Main(string[] args)
        {
            Console.Title = "DistributePubSub.JobRequester";
            var config = HoconLoader.ParseDefaultConfig().WithFallback(DistributedPubSub.DefaultConfig());
            var system = ActorSystem.Create("mirerosystem", config);

            var generator = system.ActorOf(Props.Create <JobRequesterActor>(), "distributor");

            system.Run(wait: false);

            Console.WriteLine("any alphabet will be published in 1-to-n way");
            Console.WriteLine("any number will be published in 1-to-1 way");
            Console.WriteLine("'q' to quit...");
            var input = Console.ReadLine();

            while (input != "q")
            {
                var job = new RequestJob(input);
                generator.Tell(job);
                input = Console.ReadLine();
            }
        }
예제 #5
0
    public static WincalXConnector execute(string path)
    {
        WincalXConnector.InitializeConnector(ConfigurationPath: path);

        WincalXConnector Connector = WincalXConnector.GetConnector();

        //Connect Status Changed Handler
        Connector.ConnectionStatusChanged += (Sender, Status) =>
        {
            logger.Info($"Connect {Setting.env} environment: {Status.IsConnect}");
        };

        //Check Received Request
        Connector.ReceivedRequest += (Sender, Message) =>
        {
            MessageInfo        messageInfo = Message.MessageInfo;
            DeviceLinkMsgProps args        = Message.DeviceLinkMsgProps;
            RequestJob         requestJob  = messageInfo.RequestJob;
            logger.Info($"\n\n{DateTime.Now} COMMON MESSAGE INFO >>>DEVICE_ID: {Message.DeviceId}, Command: {messageInfo.Command}");
            VOD.BasicParameters basicMsg = Utility.DeserializeFromJsonString <VOD.BasicParameters>(messageInfo.BasicParameters);
            logger.Info($"MESSAGE Basic parameters >>> {messageInfo.BasicParameters}");
            logger.Info($"MESSAGE Extend parameters >>> {messageInfo.ExtendParameters}");
            basicMsg.ResultFlag = 0;
            requestJob.Status   = RequestJobConst.RECEIVED;

            switch (messageInfo.Command)
            {
            case "2004": // card issue
            case "2006": // card issue

                Card.Issue.ExtendParam CardIssueExtendParam = new Card.Issue.ExtendParam
                {
                    numberOfIssue = 1
                };

                MessageInfo cardIssueResponseMsg = new MessageInfo
                {
                    Id               = messageInfo.Id,
                    Command          = messageInfo.Command,
                    CreatedTime      = Utility.ToUnixTime(DateTime.Now),
                    BasicParameters  = Utility.SerializeToJSONString(basicMsg),
                    ExtendParameters = Utility.SerializeToJSONString(CardIssueExtendParam),
                    RequestJob       = requestJob
                };

                logger.Info($"MESSAGE Response Basic parameters >>> {messageInfo.BasicParameters}");
                logger.Info($"MESSAGE Response Extend parameters >>> {messageInfo.ExtendParameters}");

                _ = Connector.Response(cardIssueResponseMsg, args); //Response a request from server.

                Thread.Sleep(2000);

                requestJob.Status = RequestJobConst.DONE;

                _ = Connector.Request(cardIssueResponseMsg); //Request to the server.
                break;

            case "2007": // card-read
                basicMsg.RoomNumbers = new List <string>()
                {
                    "0610", "0301219"
                };

                Card.Read.ExtendParam CardReadExtendParam = new Card.Read.ExtendParam
                {
                    checkinDateTime  = "202103301200",
                    checkoutDateTime = "202103301230",
                    posInformation   = new Card.PosInfoExParam
                    {
                        inType     = "$  ",
                        cardType   = 0,
                        systemCode = "getCardPrintingHotelCode",
                        roomNumber = "07000"
                    }
                };

                MessageInfo cardReadResponseMsg = new MessageInfo
                {
                    Id               = messageInfo.Id,
                    Command          = messageInfo.Command,
                    CreatedTime      = Utility.ToUnixTime(DateTime.Now),
                    BasicParameters  = Utility.SerializeToJSONString(basicMsg),
                    ExtendParameters = Utils.serializeObjectSnakeJson(CardReadExtendParam),
                    RequestJob       = requestJob
                };

                logger.Info($"MESSAGE Response Basic parameters >>> {messageInfo.BasicParameters}");
                logger.Info($"MESSAGE Response Extend parameters >>> {messageInfo.ExtendParameters}");

                _ = Connector.Response(cardReadResponseMsg, args); //Response a request from server.

                Thread.Sleep(2000);

                requestJob.Status = RequestJobConst.DONE;
                break;

            case "PRINTER_REPORT_REQUEST":
            case "PRINTER_RECEIPT_REQUEST":
            case "2014": // Print Receipt
            case "2015": // Print Report
                Printer.Message printerMessage = Utility.DeserializeFromBSON <Printer.Message>(messageInfo.Message);

                logger.Info($"PRINTER MESSAGE Extend parameters >>> {messageInfo.ExtendParameters}");

                Printer.BasicParameter basicParameter = new Printer.BasicParameter(Message.StoreCode, Message.TerminalId, 0);

                requestJob.Status = RequestJobConst.RECEIVED;

                MessageInfo responseMessage = new MessageInfo
                {
                    Id              = messageInfo.Id,
                    Command         = messageInfo.Command,
                    CreatedTime     = Utility.ToUnixTime(DateTime.Now),
                    BasicParameters = Utility.SerializeToJSONString(basicParameter),
                    RequestJob      = requestJob
                };

                _ = Connector.Response(responseMessage, args); //Response a request from server.

                Thread.Sleep(2000);

                requestJob.Status = RequestJobConst.DONE;

                _ = Connector.Request(responseMessage); //Request to the server.

                break;

            case "1001":
            case "1002":
            case "1003":
            case "1004":
            case "1005":
            case "1006":
            case "1007":
            case "1008":
            case "1009":
            case "1010":
            case "1011":
            case "1012":
            case "1013":
            case "1014":
            case "1015":
            case "1016":
            case "1017":
                VOD.BasicParameters vodMessage = Utility.DeserializeFromJsonString <VOD.BasicParameters>(messageInfo.BasicParameters);

                logger.Info($"VOD MESSAGE Basic parameters >>> {messageInfo.BasicParameters}");

                vodMessage.ResultFlag = 0;

                requestJob.Status = RequestJobConst.RECEIVED;

                MessageInfo vodResponseMessage = new MessageInfo
                {
                    Id              = messageInfo.Id,
                    Command         = messageInfo.Command,
                    CreatedTime     = Utility.ToUnixTime(DateTime.Now),
                    BasicParameters = Utility.SerializeToJSONString(vodMessage),
                    RequestJob      = requestJob
                };

                _ = Connector.Response(vodResponseMessage, args); //Response a request from server.

                Thread.Sleep(2000);

                requestJob.Status = RequestJobConst.DONE;

                _ = Connector.Request(vodResponseMessage); //Request to the server.
                break;

            default:
                logger.Info($"MESSAGE >>> ID: {messageInfo.Id}, Command: {messageInfo.Command}, CreateTime: {messageInfo.CreatedTime}");
                break;
            }
        };

        //Handling Error Message
        Connector.ErrorListener += (Sender, Message) =>
        {
            MessageInfo        messageInfo = Message.MessageInfo;
            DeviceLinkMsgProps args        = Message.DeviceLinkMsgProps;
            logger.Info($"ERROR MESSAGE INFO >>>DEVICE_ID: {Message.DeviceId}, ID: {messageInfo.Id}, Command: {messageInfo.Command}, Message: {messageInfo.Message} ,CreateTime: {messageInfo.CreatedTime}");
            logger.Info($"ERROR REQUEST INFO >>>ID: {messageInfo.RequestJob.Id}, STATUS: {messageInfo.RequestJob.Status}");
        };

        return(Connector);
    }