public static bool Fraudulent(GroupOnRecord recordOne, GroupOnRecord recordTwo) { if (recordOne.DealId == recordTwo.DealId && recordOne.EmailAddress == recordTwo.EmailAddress && recordOne.CreditCard != recordTwo.CreditCard) { return(true); } if (recordOne.DealId == recordTwo.DealId && recordOne.StreetAddress == recordTwo.StreetAddress && recordOne.City == recordTwo.City && recordOne.State == recordTwo.State && recordOne.ZipCode == recordTwo.ZipCode && recordOne.CreditCard != recordTwo.CreditCard) { return(true); } return(false); }
public static void FraudPrevention(int numOfRecords) { var records = new List <GroupOnRecord>(); for (int recordNum = 0; recordNum < numOfRecords; recordNum++) { records.Add(new GroupOnRecord(Console.ReadLine())); } var fraudRecords = new List <long>(); var recArray = records.ToArray(); for (int i = 0; i < recArray.Length - 1; i++) { var currRecord = recArray[i]; //if (fraudRecords.Contains(currRecord.DealId)) // continue; for (int j = i + 1; j < recArray.Length; j++) { if (GroupOnRecord.Fraudulent(currRecord, recArray[j])) { if (!fraudRecords.Contains(currRecord.OrderId)) { fraudRecords.Add(currRecord.OrderId); } if (!fraudRecords.Contains(recArray[j].OrderId)) { fraudRecords.Add(recArray[j].OrderId); } } } } Console.WriteLine(string.Join(",", fraudRecords.OrderBy(s => s).ToArray())); }