public static void UpdateKontakt(string kt_uid, Genderize genderData) { string sql = @" UPDATE T_AP_Kontakte SET KT_KG_UID = @kg_uid WHERE KT_UID = @kt_uid ;"; using (System.Data.IDbCommand cmd = SQL.CreateCommand(sql)) { string kg_uid = null; if (genderData.IsMale) { kg_uid = "E32B51CF-3F85-4257-BB9C-09546D27DD7B"; } else if (genderData.IsFemale) { kg_uid = "5BF5A3AF-EE1F-4FE7-8212-D9ED655E86ED"; } else { System.Console.WriteLine(genderData); } SQL.AddParameter(cmd, "kg_uid", kg_uid); SQL.AddParameter(cmd, "kt_uid", kt_uid); SQL.ExecuteNonQuery(cmd); } // End Using cmd } // End Sub UpdateKontakt
} // End Sub UpdateKontakt // http://localhost:10004/Kamikatze/ajax/MailService.ashx // https://gender-api.com/en/account/sign-up/complete // RedmineMailService.MailGender.GetGenders(); public static void GetGenders() { string sql = "SELECT KT_UID, KT_Vorname FROM T_AP_Kontakte WHERE KT_KG_UID IS NULL AND KT_Vorname <> '' ORDER BY KT_Vorname DESC"; string baseUrl = "https://api.genderize.io/?name="; string dataDir = System.IO.Path.GetDirectoryName(typeof(MailGender).Assembly.Location); dataDir = System.IO.Path.Combine(dataDir, "..", "..", "..", "Data"); dataDir = System.IO.Path.GetFullPath(dataDir); if ("RZ".Equals(System.Environment.UserDomainName, System.StringComparison.OrdinalIgnoreCase)) { dataDir = @"C:\Users\stefan.steiger.RZ\Desktop\Data\Data"; } using (System.Data.DataTable dt = SQL.GetDataTable(sql)) { // public WebProxy(string Host, int Port); //System.Net.WebProxy wp = new System.Net.WebProxy("http://193.109.47.193", 41083); System.Net.WebProxy wp = new System.Net.WebProxy("186.178.10.158", 8888); // wp.UseDefaultCredentials = true; // wp.UseDefaultCredentials = false; // wp.Credentials = new System.Net.NetworkCredential("usernameHere", "pa****rdHere"); //These can be replaced by user input wp.BypassProxyOnLocal = false; //still use the proxy for local addresses foreach (System.Data.DataRow dr in dt.Rows) { string uid = System.Convert.ToString(dr["KT_UID"]); string name = System.Convert.ToString(dr["KT_Vorname"]); if (string.IsNullOrEmpty(name) || name.Trim() == string.Empty) { continue; } int multiname1 = name.IndexOf(" "); int multiname2 = name.IndexOf("-"); if (multiname1 != -1 || multiname2 != -1) { try { string[] names = name.Split(' ', '-'); name = names[names.Length - 1]; // name = names[0]; if (string.IsNullOrEmpty(name) || name.Trim() == string.Empty) { continue; } } catch (System.Exception ex) { System.Console.WriteLine(ex.Message); continue; } } string url = baseUrl + System.Uri.EscapeUriString(name); string fileName = System.IO.Path.Combine(dataDir, name + ".txt"); if (System.IO.File.Exists(fileName)) { string json = System.IO.File.ReadAllText(fileName, System.Text.Encoding.UTF8); Genderize genderData = Newtonsoft.Json.JsonConvert.DeserializeObject <Genderize>(json); UpdateKontakt(uid, genderData); System.Console.WriteLine(genderData.IsMale); continue; } // End if (System.IO.File.Exists(fileName)) using (System.Net.WebClient wc = new System.Net.WebClient()) { // wc.Proxy = wp; string json = wc.DownloadString(url); System.IO.File.WriteAllText(fileName, json, System.Text.Encoding.UTF8); Genderize genderData = Newtonsoft.Json.JsonConvert.DeserializeObject <Genderize>(json); UpdateKontakt(uid, genderData); System.Console.WriteLine(genderData.IsMale); System.Threading.Thread.Sleep(2000); } // End Using wc } // End Using dr } // End using dt } // End Sub GetGenders