Ejemplo n.º 1
0
 public override void AfterRedisGet(RedisClient Redis)
 {
     try
     {
         this.EbDataSource = Redis.Get <EbDataSource>(this.DataSourceRefId);
         this.EbDataSource.AfterRedisGet(Redis);
     }
     catch (Exception e)
     {
     }
 }
Ejemplo n.º 2
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);
            }