Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
        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()));
        }