private static async Task PrintSmtpCapabilities(MailContainer mailContainer) { using (var client = new SmtpClient()) { await client.ConnectAsync(mailContainer.IsDockerInDocker?mailContainer.IPAddress : "localhost", mailContainer.IsDockerInDocker? 1025 : mailContainer.Ports[1025]); Console.WriteLine($"Smtp capabilites: {client.Capabilities}"); } }
private async Task PrintSmtpCapabilities(MailContainer mailContainer) { var host = mailContainer.IsDockerInDocker ? mailContainer.IPAddress : "localhost"; var port = mailContainer.IsDockerInDocker ? 1025 : mailContainer.Ports[1025]; using (var client = new SmtpClient()) { await client.ConnectAsync(host, port); _testOutput.WriteLine($"Smtp capabilites: {client.Capabilities}"); } }
public static List <CampaignLog> ProcessXmlFilter(Guid CampaignId, string trackKey, int attemp, string xmlFilter, int portalId) { List <CampaignLog> listResult = new List <CampaignLog>(); MailContainer mailContainer; try { mailContainer = new MailContainer(); XmlSerializer serializer = new XmlSerializer(mailContainer.GetType()); MemoryStream memoryStream = new MemoryStream(Encoding.ASCII.GetBytes(xmlFilter)); mailContainer = (MailContainer)serializer.Deserialize(memoryStream); StringBuilder queryPotentialUser = new StringBuilder(); StringBuilder queryUser = new StringBuilder(); StringBuilder queryOrganization = new StringBuilder(); StringBuilder querySolution = new StringBuilder(); MIFNEXSOEntities ent = new MIFNEXSOEntities(); foreach (MailFilter mailFilter in mailContainer.MailFilter) { switch (mailFilter.Table) { case "PotentialUsers": { switch (mailFilter.Field) { case "Country": { queryPotentialUser.Append(GetSqlClause(mailFilter)); break; } case "Language": { queryPotentialUser.Append(GetSqlClause(mailFilter)); break; } case "Source": { queryPotentialUser.Append(GetSqlClause(mailFilter)); break; } } break; } case "UserProperties": { switch (mailFilter.Field) { case "Country": { queryUser.Append(GetSqlClause(mailFilter)); break; } case "Language": { queryUser.Append(GetSqlClause(mailFilter)); break; } //case "CustomerType": // { // break; // } case "[AllowNexsoNotifications]": { if (mailFilter.FilterValue.Count > 0) { if (mailFilter.FilterValue[0] == "1") { queryUser.Append(GetSqlClause(mailFilter)); } } break; } } break; } case "UserPropertiesLists": { switch (mailFilter.Field) { case "[Key]": { queryUser.Append(GetSqlClause(mailFilter)); break; } } break; } case "Organization": { switch (mailFilter.Field) { case "Country": { queryOrganization.Append(GetSqlClause(mailFilter)); break; } } break; } case "Solution": { switch (mailFilter.Field) { case "Language": { querySolution.Append(GetSqlClause(mailFilter)); break; } case "ChallengeReference": { querySolution.Append(GetSqlClause(mailFilter)); break; } case "SolutionState": { querySolution.Append(GetSqlClause(mailFilter)); break; } case "FUNC:GetScore(Solution.SolutionId,'JUDGE')": { querySolution.Append(GetSqlClause(mailFilter)); break; } case "FUNC:WordCount(Solution.SolutionId)": { querySolution.Append(GetSqlClause(mailFilter)); break; } } break; } } } foreach (MailFilter mailFilter in mailContainer.MailFilter) { switch (mailFilter.Table) { case "&&1": { switch (mailFilter.Field) { case "UsePotentialUser": { if (mailFilter.FilterValue[0] == "0") { queryPotentialUser = null; } break; } case "UseUser": { if (mailFilter.FilterValue[0] == "0") { queryUser = null; } break; } case "UseOrganization": { if (mailFilter.FilterValue[0] == "0") { queryOrganization = null; } break; } case "UseSolution": { if (mailFilter.FilterValue[0] == "0") { querySolution = null; } break; } } break; } } } List <UserProperty> queryPotentialUserEntity = null; IEnumerable <PotentialUser> queryPotentialUserEntityInt = null; IEnumerable <UserProperty> querySolutionEntity = null; IEnumerable <UserProperty> queryUserEntity = null; IEnumerable <UserProperty> queryOrganizationEntity = null; if (queryPotentialUser != null) { queryPotentialUser.Insert(0, " SELECT * FROM POTENTIALUSERS" + " where 1=1 "); queryPotentialUserEntityInt = ent.ExecuteStoreQuery <PotentialUser>(queryPotentialUser.ToString()); queryPotentialUserEntity = new List <UserProperty>(); foreach (var item in queryPotentialUserEntityInt) { queryPotentialUserEntity.Add(new UserProperty() { email = item.Email, FirstName = item.FirstName, LastName = item.LastName } ); } } if (queryUser != null) { queryUser.Insert(0, " SELECT UserProperties.* " + " FROM UserProperties left JOIN UserPropertiesLists ON UserProperties.UserId = UserPropertiesLists.UserPropertyId" + " where 1=1 "); queryUserEntity = ent.ExecuteStoreQuery <UserProperty>(queryUser.ToString()); } if (queryOrganization != null) { queryOrganization.Insert(0, " SELECT UserProperties.* " + " FROM Organization INNER JOIN UserOrganization ON Organization.OrganizationID = UserOrganization.OrganizationID " + " INNER JOIN UserProperties ON UserOrganization.UserID = UserProperties.UserId" + " where 1=1 "); queryOrganizationEntity = ent.ExecuteStoreQuery <UserProperty>(queryOrganization.ToString()); } if (querySolution != null) { querySolution.Insert(0, " SELECT UserProperties.* FROM Solution INNER JOIN UserProperties ON Solution.CreatedUserId = UserProperties.UserId " + " where 1=1 "); querySolutionEntity = ent.ExecuteStoreQuery <UserProperty>(querySolution.ToString()); } IEnumerable <UserProperty> resultfinal = queryUserEntity; if (queryOrganizationEntity != null) { if (resultfinal == null) { resultfinal = queryOrganizationEntity; } else { resultfinal = resultfinal.Concat(queryOrganizationEntity); } } if (querySolutionEntity != null) { if (resultfinal == null) { resultfinal = querySolutionEntity; } else { resultfinal = resultfinal.Concat(querySolutionEntity); } } if (queryPotentialUserEntity != null) { if (resultfinal == null) { resultfinal = queryPotentialUserEntity; } else { resultfinal = resultfinal.Concat(queryPotentialUserEntity); } } CampaignComponent campaign = new CampaignComponent(CampaignId); if (mailContainer.UserProperty.Count > 0) { if (resultfinal == null) { resultfinal = mailContainer.UserProperty; } else { resultfinal = resultfinal.Concat(mailContainer.UserProperty).ToList(); } } if (resultfinal != null) { var comparer = new UserComparer(); foreach (var item in resultfinal.Distinct(comparer).ToList()) { try { var user = UserController.GetUserById(portalId, item.UserId); listResult.Add(getCampaignLog(campaign, item, user)); } catch (Exception) { } } } } catch (Exception) { } return(listResult); }