Esempio n. 1
0
        public static List <Param> GetReqJsonParameters(ListOrdered Components, IRedisClient Redis, IDatabase ObjectsDB)
        {
            List <Param> parameters = new List <Param>();

            foreach (ApiResources resource in Components)
            {
                if (resource is EbSqlReader || resource is EbSqlWriter || resource is EbSqlFunc)
                {
                    EbDataSourceMain dataSource = GetEbObject <EbDataSourceMain>(resource.Reference, Redis, ObjectsDB);

                    if (dataSource.InputParams == null || dataSource.InputParams.Count <= 0)
                    {
                        parameters.Merge(dataSource.GetParams(Redis as RedisClient));
                    }
                    else
                    {
                        parameters.Merge(dataSource.InputParams);
                    }
                }
                else if (resource is EbEmailNode)
                {
                    EbEmailTemplate emailTemplate = GetEbObject <EbEmailTemplate>(resource.Reference, Redis, ObjectsDB);

                    parameters = parameters.Merge(GetEmailParams(emailTemplate, Redis, ObjectsDB));
                }
                else if (resource is EbConnectApi)
                {
                    EbApi ob = GetEbObject <EbApi>(resource.Reference, Redis, ObjectsDB);

                    parameters = parameters.Merge(GetReqJsonParameters(ob.Resources, Redis, ObjectsDB));
                }
                else if (resource is EbThirdPartyApi thirdParty)
                {
                    if (thirdParty.Parameters != null && thirdParty.Parameters.Count > 0)
                    {
                        foreach (var param in thirdParty.Parameters)
                        {
                            parameters.Add(new Param
                            {
                                Name  = param.Name,
                                Type  = param.Type.ToString(),
                                Value = param.Value
                            });
                        }
                    }
                }
            }

            return(parameters);
        }
Esempio n. 2
0
        public static List <Param> GetEmailParams(EbEmailTemplate enode, IRedisClient Redis, IDatabase ObjectsDB)
        {
            List <Param> p = new List <Param>();

            if (!string.IsNullOrEmpty(enode.AttachmentReportRefID))
            {
                EbReport o = GetEbObject <EbReport>(enode.AttachmentReportRefID, Redis, ObjectsDB);

                if (!string.IsNullOrEmpty(o.DataSourceRefId))
                {
                    EbDataSourceMain ob = GetEbObject <EbDataSourceMain>(o.DataSourceRefId, Redis, ObjectsDB);

                    p = p.Merge(ob.GetParams(Redis as RedisClient));
                }
            }
            if (!string.IsNullOrEmpty(enode.DataSourceRefId))
            {
                EbDataSourceMain ob = GetEbObject <EbDataSourceMain>(enode.DataSourceRefId, Redis, ObjectsDB);

                p = p.Merge(ob.GetParams(Redis as RedisClient));
            }
            return(p);
        }
Esempio n. 3
0
            public string Post(EmailServicesMqRequest request)
            {
                var _InfraDb  = base.ResolveService <ITenantDbFactory>() as TenantDbFactory;
                var myService = base.ResolveService <EbObjectService>();
                var res       = (EbObjectParticularVersionResponse)myService.Get(new EbObjectParticularVersionRequest()
                {
                    RefId = request.refid
                });
                EbEmailTemplate ebEmailTemplate = new EbEmailTemplate();

                foreach (var element in res.Data)
                {
                    ebEmailTemplate = EbSerializers.Json_Deserialize(element.Json);
                }



                var myDs    = base.ResolveService <EbObjectService>();
                var myDsres = (EbObjectParticularVersionResponse)myDs.Get(new EbObjectParticularVersionRequest()
                {
                    RefId = ebEmailTemplate.DataSourceRefId
                });
                // get sql from ebdatasource and render the sql
                EbDataSource ebDataSource = new EbDataSource();

                foreach (var element in myDsres.Data)
                {
                    ebDataSource = EbSerializers.Json_Deserialize(element.Json);
                }
                var ds      = _InfraDb.ObjectsDB.DoQueries(ebDataSource.Sql);
                var pattern = @"\{{(.*?)\}}";
                var matches = Regex.Matches(ebEmailTemplate.Body, pattern);
                Dictionary <string, object> dict = new Dictionary <string, object>();

                foreach (Match m in matches)
                {
                    string str = Regex.Replace(m.Value, "[{}]", "");
                    foreach (var dt in ds.Tables)
                    {
                        string colname = dt.Rows[0][str.Split('.')[1]].ToString();
                        ebEmailTemplate.Body = ebEmailTemplate.Body.Replace(m.Value, colname);
                    }
                }
                var emailMessage = new MimeMessage();

                emailMessage.From.Add(new MailboxAddress("EXPRESSbase", "*****@*****.**"));
                emailMessage.To.Add(new MailboxAddress("", request.To));
                emailMessage.Subject = ebEmailTemplate.Subject;
                emailMessage.Body    = new TextPart("html")
                {
                    Text = ebEmailTemplate.Body
                };
                try
                {
                    using (var client = new SmtpClient())
                    {
                        client.LocalDomain = "www.expressbase.com";
                        client.Connect("smtp.gmail.com", 465, true);
                        client.Authenticate(new System.Net.NetworkCredential()
                        {
                            UserName = "******", Password = "******"
                        });
                        client.Send(emailMessage);
                        client.Disconnect(true);
                    }
                }
                catch (Exception e)
                {
                    return(e.Message);
                }
                return(null);
            }