public static void Add_Domain_Mirror_Cards_Async(string newDigitDomain, int nrCifreInDomeniu, int maxDigit = -1) { using (var db = new AdoEntities()) { // check if domain in DB if (!db.Halborn_Domains.Any(x => x.domains == newDigitDomain)) { db.Halborn_Domains.Add(new Halborn_Domains { domains = newDigitDomain }); db.SaveChanges(); DoPermutations_Async(newDigitDomain); } // make digits domain mirror var mirrorDigitDomain = new StringBuilder(); foreach (var digit in newDigitDomain.ToCharArray()) { mirrorDigitDomain.Append((maxDigit == -1 ? nrCifreInDomeniu : maxDigit) - 1 - int.Parse(digit.ToString())); } // check if domain in DB if (!db.Halborn_Domains.Any(x => x.domains == newDigitDomain)) { db.Halborn_Domains.Add(new Halborn_Domains { domains = mirrorDigitDomain.ToString() }); db.SaveChanges(); DoPermutations_Async(mirrorDigitDomain.ToString()); } } }
public static void AddCardsRange_Async(char[][] result) { try { using (var db = new AdoEntities()) { foreach (var r in result) { var concatedCard = string.Join("", r); if (!db.Halborn_Cards.Any(x => x.cards == concatedCard)) { db.Halborn_Cards.Add(new Halborn_Cards { cards = concatedCard }); } db.SaveChanges(); } } } catch (Exception ex) { if (!ex.ToString().Contains(" Cannot insert duplicate key")) { throw ex; } } }
private static void DoOneDigitReplacement_Async(string replaceThis, string withThis, int maxDigit = -1) { var domains_temp = new HashSet <string>(); using (var db = new AdoEntities()) { foreach (var domain in db.Halborn_Domains) { var temp = domain.domains.Replace(replaceThis, withThis); domains_temp.Add(temp); } foreach (var dom_temp in domains_temp) { Db_Repository.Add_Domain_Mirror_Cards_Async(dom_temp, maxDigit); } } }
private static void Main() { for (var cifraInFocus = 0; cifraInFocus < nrCifreInDomeniu; cifraInFocus++) { var ciclu = 0; var newDomain = new StringBuilder(); while (ciclu < nrCifreInDomeniu) { newDomain = new StringBuilder(); for (var cifra = 0; cifra < nrCifreInDomeniu; cifra++) { if (newDomain.Length == nrCifreInDomeniu) { Db_Repository.Add_Domain_Mirror_Cards_Async(newDomain.ToString(), nrCifreInDomeniu); break; } newDomain.Append(cifra); if (cifra == cifraInFocus) { ciclu++; var ciclu_temp = nrCifreInDomeniu - newDomain.Length < ciclu ? nrCifreInDomeniu - newDomain.Length : ciclu; while (ciclu_temp > 0) { ciclu_temp--; newDomain.Append(cifra); } } } } // only for last Db_Repository.Add_Domain_Mirror_Cards_Async(newDomain.ToString(), nrCifreInDomeniu); } for (var replaceThis = 0; replaceThis < nrCifreInDomeniu; replaceThis++) { for (var withThis = 0; withThis < nrCifreInDomeniu; withThis++) { if (replaceThis != withThis) { DoOneDigitReplacement_Async(replaceThis.ToString(), withThis.ToString()); } } } // add extra domain digit for (var replaceThis = 0; replaceThis < nrCifreInDomeniu; replaceThis++) { DoOneDigitReplacement_Async(replaceThis.ToString(), "6", nrCifreInDomeniu + 1); } // add extra domain digit for (var replaceThis = 0; replaceThis < nrCifreInDomeniu + 1; replaceThis++) { DoOneDigitReplacement_Async(replaceThis.ToString(), "7", nrCifreInDomeniu + 2); } // add extra extra domain digit for (var replaceThis = 0; replaceThis < nrCifreInDomeniu + 2; replaceThis++) { DoOneDigitReplacement_Async(replaceThis.ToString(), "8", nrCifreInDomeniu + 3); } // add extra extra domain digit for (var replaceThis = 0; replaceThis < nrCifreInDomeniu + 3; replaceThis++) { DoOneDigitReplacement_Async(replaceThis.ToString(), "9", nrCifreInDomeniu + 4); } // print when done using (var db = new AdoEntities()) { Console.WriteLine("Domains : " + db.Halborn_Domains.Count()); Console.WriteLine("Card : " + db.Halborn_Cards.Count()); } }