public static void onNewMessage(byte[] body, string listenerName)
        {
            var               core     = COREobject.i;
            DBEntities        context  = core.Context;
            TCPSocketListener listener = context.TCPListeners.Where(l => l.Name == listenerName).FirstOrDefault();

            if (listener != null)
            {
                Block block = GetBlockWithWF(context, listener.ApplicationId, listener.BlockName.RemoveDiacritics());

                if (block != null)
                {
                    core.Application = listener.Application;

                    try {
                        PersonaAppRole role = context.AppRoles.FirstOrDefault(r => r.Name == "System" && r.ApplicationId == listener.ApplicationId);
                        core.User = context.Users.FirstOrDefault(u => u.Users_Roles.Any(r => r.RoleName == role.Name && r.ApplicationId == role.ApplicationId));
                    }
                    catch (Exception e) {
                        OmniusInfo.Log($"Chyba při zpracování socketu: {listenerName} ({e})", OmniusLogSource.Nexus, null, null);
                    }

                    OmniusInfo.Log($"Začátek zpracování socketu: {listener.Name} / Blok {listener.BlockName} / Button {listener.WorkflowName}", OmniusLogSource.Nexus, listener.Application, core.User);

                    FormCollection fc = new FormCollection();
                    Dictionary <string, object> vars = new Dictionary <string, object>();
                    vars.Add("__SocketRequestBody__", body);

                    var runResult = new Modules.Tapestry.Tapestry(core).run(block, listener.WorkflowName, -1, fc, 0, null, vars);

                    OmniusInfo.Log($"Konec zpraconání mailu: {listener.Name} / Blok {listener.BlockName} / Button {listener.WorkflowName}", OmniusLogSource.Hermes, listener.Application, core.User);
                }
            }
        }
예제 #2
0
        public void Create(Task model)
        {
            SchedulerClient             client = GetClient();
            JobCreateOrUpdateParameters p      = GetParams(model);
            bool errorOccured = false;

            try
            {
                JobCreateOrUpdateResponse result = client.Jobs.CreateOrUpdate(GetJobId(model), p);

                try
                {
                    JobUpdateStateResponse resultState = client.Jobs.UpdateState(GetJobId(model), new JobUpdateStateParameters(model.Active ? JobState.Enabled : JobState.Disabled));
                }
                catch (Hyak.Common.CloudException e)
                {
                    OmniusException.Log(e, OmniusLogSource.Cortex);
                    errorOccured = true;
                }
            }
            catch (Hyak.Common.CloudException e)
            {
                OmniusException.Log(e, OmniusLogSource.Cortex);
                errorOccured = true;
            }
            if (!errorOccured)
            {
                OmniusInfo.Log($"Succesfully created task to open {model.Url} at {model.Start_Date.ToString()}", OmniusLogSource.Cortex);
            }
        }
예제 #3
0
        private void OnExecuteDone(object sender, EventArgs e)
        {
            if (outputs.Count > 0)
            {
                OmniusInfo.Log($"Outputs: {string.Join(";", outputs)}", OmniusLogSource.Cortex, app);
            }

            if (errors.Count > 0)
            {
                OmniusInfo.Log($"Errors: {string.Join(";", errors)}", OmniusLogSource.Cortex, app);
            }

            CleanUp();
        }
예제 #4
0
        private static void onNewMessage(object sender, IdleMessageEventArgs e, string incomingMailboxName)
        {
            COREobject  core = COREobject.i;
            MailMessage mail = e.Client.GetMessage(e.MessageUID, FetchOptions.Normal);

            IncomingEmail email = core.Context.IncomingEmail.SingleOrDefault(m => m.Name == incomingMailboxName);

            if (email != null && email.IncomingEmailRule.Count() > 0)
            {
                foreach (IncomingEmailRule rule in email.IncomingEmailRule)
                {
                    bool result = EvaluateRule(rule, mail);

                    if (result)
                    {
                        Block block = GetBlockWithWF(core.Context, rule.ApplicationId, rule.BlockName.RemoveDiacritics());
                        if (block != null)
                        {
                            core.Application = rule.Application;

                            try {
                                PersonaAppRole role = core.Context.AppRoles.FirstOrDefault(r => r.Name == "System" && r.ApplicationId == rule.ApplicationId);
                                core.User = core.Context.Users.FirstOrDefault(u => u.Users_Roles.Any(r => r.RoleName == role.Name && r.ApplicationId == role.ApplicationId));
                            }
                            catch (Exception) {
                            }

                            OmniusInfo.Log($"Začátek zpracování mailu: {email.Name} / Pravidlo {rule.Name} / Blok {rule.BlockName} / Button {rule.WorkflowName}", OmniusLogSource.Hermes, rule.Application, core.User);

                            FormCollection fc = new FormCollection(new NameValueCollection()
                            {
                                { "MailFrom", mail.From.Address },
                                { "MailCC", string.Join(";", mail.CC.Select(cc => cc.Address).ToList()) },
                                { "MailSubject", mail.Subject },
                                { "MailBody", mail.Body },
                            });

                            var runResult = new Tapestry.Tapestry(core).run(block, rule.WorkflowName, -1, fc, 0);

                            OmniusInfo.Log($"Konec zpraconání mailu: {email.Name} / Pravidlo {rule.Name} / Blok {rule.BlockName} / Button {rule.WorkflowName}", OmniusLogSource.Hermes, rule.Application, core.User);
                        }
                    }
                }
            }
        }
        public static void onNewMessage(object model, BasicDeliverEventArgs args)
        {
            var body    = args.Body;
            var message = Encoding.UTF8.GetString(body);

            var        core    = COREobject.i;
            DBEntities context = core.Context;

            Entitron.Entity.Nexus.RabbitMQ listener = context.RabbitMQs.Where(q => q.Name == args.ConsumerTag).FirstOrDefault();
            if (listener != null)
            {
                Block block = GetBlockWithWF(context, listener.ApplicationId.Value, listener.BlockName.RemoveDiacritics());

                if (block != null)
                {
                    core.Application = listener.Application;

                    try {
                        PersonaAppRole role = context.AppRoles.FirstOrDefault(r => r.Name == "System" && r.ApplicationId == listener.ApplicationId);
                        core.User = context.Users.FirstOrDefault(u => u.Users_Roles.Any(r => r.RoleName == role.Name && r.ApplicationId == role.ApplicationId));

                        OmniusInfo.Log($"Začátek zpracování RabbitMQ: {listener.Name} / Blok {listener.BlockName} / Button {listener.WorkflowName}", OmniusLogSource.Nexus, listener.Application, core.User);

                        FormCollection fc = new FormCollection();
                        Dictionary <string, object> vars = new Dictionary <string, object>();
                        vars.Add("__RabbitMQMessage__", message);

                        var runResult = new Modules.Tapestry.Tapestry(core).run(block, listener.WorkflowName, -1, fc, 0, null, vars);

                        OmniusInfo.Log($"Konec zpracování RabbitMQ: {listener.Name} / Blok {listener.BlockName} / Button {listener.WorkflowName}", OmniusLogSource.Hermes, listener.Application, core.User);

                        if (runResult.Item1.Errors.Count == 0)
                        {
                            listeners[args.ConsumerTag].Channel.BasicAck(args.DeliveryTag, false);
                        }
                    }
                    catch (Exception e) {
                        OmniusInfo.Log($"Chyba při zpracování RabbitMQ: {args.ConsumerTag} ({e})", OmniusLogSource.Nexus, null, null);
                    }
                }
            }
        }
        public Observer(ReactiveSocket socket, string listenerName, int bufferSize)
        {
            this.socket       = socket;
            this.listenerName = listenerName;
            this.bufferSize   = bufferSize;

            var protocol = new ByteChannel(socket, bufferSize);

            // Here we hook the "echo" prototocol
            protocol.Receiver.Subscribe(
                b => {
                try {
                    TCPSocketListenerService.onNewMessage(b, listenerName);
                }
                catch (Exception e) {
                    OmniusInfo.Log($"Chyba při zpracování socketu: {listenerName} ({e})", OmniusLogSource.Nexus, null, null);
                }
            },
                e => {
                OmniusInfo.Log($"Chyba při zpracování socketu: {listenerName} ({e})", OmniusLogSource.Nexus, null, null);
            }
                );
        }