示例#1
0
        public void TestCodeActivity()
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            using (var ctx = new CrmServiceClient(cnString))
            {
                var codeActivity = new DuplicateChecker();
                var result       = codeActivity.NumberOfDuplicates(ctx.OrganizationServiceProxy, "Name1");

                Assert.IsTrue(result > 0);
            }
        }
示例#2
0
 private void OnCmdFindDuplicates()
 {
     try
     {
         var dupliChecker = new DuplicateChecker();
         var dupliList    = dupliChecker.FindDuplicates(GetLogEntries).ToList();
         MessageBox.Show("Gefundene Duplikate: " + dupliList.Count.ToString(), "Duplikate");
     }
     catch (Exception)
     {
         MessageBox.Show("Es sind keine Daten vorhanden", "Keine Daten vorhanden, zersch Date lade du tubel",
                         MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
        public string FindDuplicates()
        {
            string                    message          = "";
            DuplicateChecker          duplicateChecker = new DuplicateChecker();
            IEnumerable <VLogentries> logEnumerable    = LogList;
            List <VLogentries>        list             = new List <VLogentries>(logEnumerable);
            var duplicateList = duplicateChecker.FindDuplicates(list);

            foreach (VLogentries log in duplicateList)
            {
                message += log.ToString() + "\n";
            }

            return(message);
        }
        private void InvoiceNumberTextbox_TextChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(InvoiceNumberTextbox.Text))
            {
                hasDuplicate = DuplicateChecker.CodeHasDuplicate(CodeType.Sale, InvoiceNumberTextbox.Text.Trim(), SaleId);
            }

            if (hasDuplicate)
            {
                InvoiceNumberTextbox.StateCommon.Content.Color1 = Color.Red;
            }
            else
            {
                InvoiceNumberTextbox.StateCommon.Content.Color1 = Color.Black;
            }
        }
        private void CheckDuplicate()
        {
            if (!string.IsNullOrWhiteSpace(PONumberTextbox.Text) && SupplierDropdown.SelectedIndex != -1)
            {
                hasDuplicate = DuplicateChecker.CodeHasDuplicate(PONumberTextbox.Text.Trim(), PurchaseId, (int)SupplierDropdown.SelectedValue);
            }

            if (hasDuplicate)
            {
                PONumberTextbox.StateCommon.Content.Color1 = Color.Red;
            }
            else
            {
                PONumberTextbox.StateCommon.Content.Color1 = Color.Black;
            }
        }
示例#6
0
        private void BrandTextbox_TextChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(BrandTextbox.Text))
            {
                hasDuplicate = DuplicateChecker.CodeHasDuplicate(CodeType.Brand, BrandTextbox.Text.Trim(), BrandId);
            }

            if (hasDuplicate)
            {
                BrandTextbox.ForeColor = Color.Red;
            }
            else
            {
                BrandTextbox.ForeColor = Color.Black;
            }
        }
示例#7
0
        private void UsernameTextbox_TextChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(UsernameTextbox.Text))
            {
                hasDuplicate = DuplicateChecker.CodeHasDuplicate(CodeType.User, UsernameTextbox.Text.Trim(), UserId);
            }

            if (hasDuplicate)
            {
                UsernameTextbox.StateCommon.Content.Color1 = Color.Red;
            }
            else
            {
                UsernameTextbox.StateCommon.Content.Color1 = Color.Black;
            }
        }
        private void MemoTextbox_TextChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(MemoTextbox.Text))
            {
                hasDuplicate = DuplicateChecker.CodeHasDuplicate(CodeType.PurchaseReturn, MemoTextbox.Text.Trim(), ReturnId);
            }

            if (hasDuplicate)
            {
                MemoTextbox.StateCommon.Content.Color1 = Color.Red;
            }
            else
            {
                MemoTextbox.StateCommon.Content.Color1 = Color.Black;
            }
        }
示例#9
0
        private void VoucherNumberTextbox_TextChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(CounterNumberTextbox.Text))
            {
                hasDuplicate = DuplicateChecker.CodeHasDuplicate(CodeType.SalesPayment, CounterNumberTextbox.Text.Trim(), PurchaseCounterId);
            }

            if (hasDuplicate)
            {
                CounterNumberTextbox.StateCommon.Content.Color1 = Color.Red;
            }
            else
            {
                CounterNumberTextbox.StateCommon.Content.Color1 = Color.Black;
            }
        }
示例#10
0
        public static async Task Run()
        {
            var locationIds = (await LocationFetching.FetchLocations()).Select(location => location.Id);

            using var duplicateChecker = new DuplicateChecker();

            var readingCollector = new ReadingCollector(
                duplicateChecker,
                message => locationIds.Contains(message.LocationId)
                );

            await using var gasReadingListener = new GasReadingListener(readingCollector.SaveReadingIfValid);

            await gasReadingListener.StartListeningForGasReadings();

            Thread.Sleep(20_000);
        }
        private void OnCmdDuplicatCheck()
        {
            DuplicateChecker dupChecker = new DuplicateChecker();
            var dupList = dupChecker.FindDuplicates(LogEntries);

            if (dupList.Any())
            {
                var newEntities = new List <IEntity>();
                foreach (DuplicateCheckerLib.IEntity d in dupList)
                {
                    newEntities.Add(d as IEntity);
                }

                LogEntries.Clear();
                LogEntries = newEntities;
            }
            else
            {
                MessageBox.Show("There are no duplicated Log Entries");
            }
        }
示例#12
0
        public void TestAccountDuplicatesWithFakes2()
        {
            var account1 = new Entity("account")
            {
                Id       = Guid.NewGuid(),
                ["name"] = "Account One",
            };
            var account2 = new Entity("account")
            {
                Id       = Guid.NewGuid(),
                ["name"] = "Account Two",
            };
            var account3 = new Entity("account")
            {
                Id       = Guid.NewGuid(),
                ["name"] = "Account Three",
            };
            var ctx = new XrmFakedContext();

            ctx.Initialize(new List <Entity> {
                account1, account2, account3
            });
            var wfContext = ctx.GetDefaultWorkflowContext();

            wfContext.MessageName     = "Create";
            wfContext.PrimaryEntityId = account1.Id;
            wfContext.PreEntityImages.Add("account", account1);

            var input = new Dictionary <string, object>();
            //            input.Add("AccountReference", new EntityReference("account", account1.Id));


            var codeActivity = new DuplicateChecker();
            var result       = ctx.ExecuteCodeActivity <DuplicateChecker>(wfContext, input, codeActivity);

            Assert.IsTrue(result.ContainsKey("PossibleMatch"));
            Assert.IsTrue((bool)result["PossibleMatch"]);

            //            Debugger.Break();
        }
        internal void FindDuplicates()
        {
            try
            {
                IEnumerable <IEntity> moreTimes = new DuplicateChecker().FindDuplicates(LoggingEntries);
                ObservableCollection <LoggingEntry> observableCollection = new ObservableCollection <LoggingEntry>();
                using (IEnumerator <IEntity> enumerator = moreTimes.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        IEntity now = enumerator.Current;
                        observableCollection.Add((LoggingEntry)now);
                    }
                }

                DuplicateLogginEntries = observableCollection;
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("ERROR READING DUPLICATE ENTRY: {0}", ex.Message);
            }
        }
示例#14
0
        public void TestAccountDuplicatesWithFakes1()
        {
            var account1 = new Entity("account")
            {
                Id       = Guid.NewGuid(),
                ["name"] = "Account One",
            };
            var account2 = new Entity("account")
            {
                Id       = Guid.NewGuid(),
                ["name"] = "Account Two",
            };
            var account3 = new Entity("account")
            {
                Id       = Guid.NewGuid(),
                ["name"] = "Account Three",
            };
            var ctx = new XrmFakedContext();

            ctx.Initialize(new List <Entity> {
                account1, account2, account3
            });
            var wfContext = ctx.GetDefaultWorkflowContext();

            wfContext.MessageName = "Create";

            var input = new Dictionary <string, object>();

            input.Add("AccountReference", new EntityReference("account", account1.Id));


            var codeActivity = new DuplicateChecker();
            var result       = codeActivity.NumberOfDuplicates(ctx.GetOrganizationService(), "Name1");

            Assert.AreEqual(0, result);

            result = codeActivity.NumberOfDuplicates(ctx.GetOrganizationService(), "Account One");
            Assert.AreEqual(1, result);
        }
        private void RunDuplicatesChecker()
        {
            var dubChecker = new DuplicateChecker();
            var logRepo    = new LogEntryRepository();
            var logList    = logRepo.GetAll().ToList <LogEntry>();
            var dubList    = dubChecker.FindDuplicates(logList);

            if (dubList.Any())
            {
                for (int i = 0; i < dubList.Count(); i++)
                {
                    var log = (LogEntry)dubList.ElementAt(i);
                    for (int j = 0; j < logList.Count(); j++)
                    {
                        if (logList.ElementAt(j).Id == log.Id)
                        {
                            logList.ElementAt(j).IsDuplicate = true;
                        }
                    }
                }
            }
            this.LogEntriesList = logList;
            OnPropertyChanged("LogEntriesList");
        }
        static ResultsWrapper BuildWrapper(RecipeParse parse, ItemRepository itemRepo, RecipeRepository recipeRepo)
        {
            var wrapper = new ResultsWrapper();

            wrapper.Parse = parse;
            var resultItem = itemRepo.GetByName(parse.ItemName).FirstOrDefault();

            if (resultItem == null)
            {
                wrapper.ResultMissing = true;
                return(wrapper);
            }

            var recipe = new Recipe();

            wrapper.Recipe = recipe;
            recipe.Result  = resultItem;

            var type = parse.RecipeType.Trim().ToLower();

            if (type == "alchemy")
            {
                recipe.Type    = RecipeType.Craft;
                recipe.SubType = "Alchemy";
            }
            else if (type == "design")
            {
                recipe.Type = RecipeType.Workshop;
            }
            else if (type == "cook")
            {
                recipe.Type    = RecipeType.Craft;
                recipe.SubType = "Cooking";
            }
            else
            {
                wrapper.TypeParseError = true;
            }

            foreach (var mat in parse.Materials)
            {
                var matName = mat.Key;
                if (_itemReplacements.ContainsKey(matName))
                {
                    matName = _itemReplacements[matName];
                }

                var mItem = itemRepo.GetByName(matName).FirstOrDefault();
                if (mItem == null)
                {
                    wrapper.ItemsMissing.Add(matName);
                    continue;
                }

                recipe.Materials.Add(mItem, mat.Value);
            }

            wrapper.Duplicate = DuplicateChecker.RecipeIsDuplicate(recipe, recipeRepo);

            return(wrapper);
        }
示例#17
0
        public void OrderValidationStepInitial(IUnitOfWork db,
                                               ITime time,
                                               CompanyDTO company,
                                               DTOMarketOrder marketOrder,
                                               IList <ListingOrderDTO> orderItems,
                                               Order dbOrder)
        {
            //var upgradeChecker = new UpgradeOrderChecker(_log, _time);
            //var result = upgradeChecker.Check(db, marketOrder, orderItems);
            //upgradeChecker.ProcessResult(result, dbOrder);



            var duplicateChecker = new DuplicateChecker(_log, _emailService, _time);
            var result           = duplicateChecker.Check(db, marketOrder, orderItems);

            duplicateChecker.ProcessResult(result, dbOrder);


            var insureChecker = new InsureChecker(_log, _orderHistory);

            result = insureChecker.Check(db, marketOrder);
            insureChecker.ProcessResult(result, dbOrder);


            var primeChecker = new PrimeChecker(_log);

            result = primeChecker.Check(db, marketOrder);
            primeChecker.ProcessResult(result, dbOrder);


            var dhlChecker = new DhlChecker(_log);

            result = dhlChecker.Check(db, marketOrder, orderItems);
            dhlChecker.ProcessResult(result, dbOrder);


            var blackListChecker = new BlackListChecker(_log, _time);

            result = blackListChecker.Check(db, marketOrder);
            blackListChecker.ProcessResult(result, dbOrder);


            var restockChecker = new RestockChecker(_log, _time);

            result = restockChecker.Check(db, marketOrder, orderItems);
            restockChecker.ProcessResult(result, dbOrder);


            var signConfirmationByOrderCostChecker = new SignConfirmationByOrderCostChecker(_log, _time, db);

            result = signConfirmationByOrderCostChecker.Check(
                marketOrder,
                orderItems);
            signConfirmationByOrderCostChecker.ProcessResult(result, dbOrder);

            var replaceFrenchChecker = new ReplaceFrenchCharsChecker(_log, _time);

            result = replaceFrenchChecker.Check(db,
                                                marketOrder,
                                                orderItems,
                                                (AddressValidationStatus)dbOrder.AddressValidationStatus);
            replaceFrenchChecker.ProcessResult(result, dbOrder);

            //var signConfirmationByServiceTypeChecker = new SignConfirmationByServiceTypeChecker(_log, db, _emailService, _time);
            //result = signConfirmationByServiceTypeChecker.Check(marketOrder,
            //    orderItems);
            //signConfirmationByServiceTypeChecker.ProcessResult(result, dbOrder, marketOrder, orderItems);


            //var signConfirmationRemoveBuyerAskedBeforeChecker = new SignConfirmationRemoveBuyerAskedBeforeChecker(_log, db, _emailService, _time);
            //result = signConfirmationRemoveBuyerAskedBeforeChecker.Check(marketOrder,
            //    orderItems);
            //signConfirmationRemoveBuyerAskedBeforeChecker.ProcessResult(result, dbOrder, marketOrder, orderItems);


            var oversoldChecker = new OversoldChecker(_log, _time, _emailService, _settings);

            result = oversoldChecker.Check(db, marketOrder, orderItems);
            oversoldChecker.ProcessResult(result, dbOrder);

            var oversoldOnHoldChecker = new OnHoldOversoldChecker(_log, _time, _emailService);

            result = oversoldOnHoldChecker.Check(db, marketOrder, orderItems);
            oversoldOnHoldChecker.ProcessResult(result, dbOrder);


            CheckAddressStep(db, dbOrder, marketOrder.GetAddressDto());


            var recipientNameChecker = new RecipientNameChecker(_log,
                                                                _emailService,
                                                                _time,
                                                                () => CheckAddressStep(db, dbOrder, marketOrder.GetAddressDto()));

            result = recipientNameChecker.Check(db,
                                                marketOrder,
                                                orderItems,
                                                (AddressValidationStatus)dbOrder.AddressValidationStatus);
            recipientNameChecker.ProcessResult(result, dbOrder);
            //NOTE: recheck address if name was corected
            if (result.IsSuccess)
            {
                CheckAddressStep(db, dbOrder, marketOrder.GetAddressDto());
            }


            var zipCodeChecker = new ZipCodeChecker(_log, _time);

            result = zipCodeChecker.Check(db,
                                          marketOrder,
                                          orderItems,
                                          (AddressValidationStatus)dbOrder.AddressValidationStatus);
            zipCodeChecker.ProcessResult(result, dbOrder);

            var shippingStateChecker = new ShippingStateChecker(_log, _time);

            result = shippingStateChecker.Check(db,
                                                marketOrder,
                                                orderItems,
                                                (AddressValidationStatus)dbOrder.AddressValidationStatus);
            shippingStateChecker.ProcessResult(result, dbOrder);

            var phoneNumberChecker = new PhoneNumberChecker(_log, _emailService, _time);

            result = phoneNumberChecker.Check(db,
                                              marketOrder,
                                              orderItems,
                                              (AddressValidationStatus)dbOrder.AddressValidationStatus);
            phoneNumberChecker.ProcessResult(result, dbOrder);


            var dismissFFAddressChecker = new DismissFFAddressChecker(_log, _emailService, db, _time);

            result = dismissFFAddressChecker.Check(db,
                                                   marketOrder,
                                                   orderItems,
                                                   (AddressValidationStatus)dbOrder.AddressValidationStatus);
            dismissFFAddressChecker.ProcessResult(result, dbOrder);


            //var addressNotServedByUSPSChecker = new AddressNotServedByUSPSChecker(_log, _htmlScraper, _emailService, _time);
            //result = addressNotServedByUSPSChecker.Check(db,
            //    marketOrder,
            //    orderItems,
            //    (AddressValidationStatus)dbOrder.AddressValidationStatus);
            //addressNotServedByUSPSChecker.ProcessResult(result, dbOrder);


            var internationalExpressChecker = new InternationalExpressChecker(_log, _time);

            result = internationalExpressChecker.Check(marketOrder);
            internationalExpressChecker.ProcessResult(db, result, dbOrder);


            var sameDayChecker = new SameDayChecker(_log, _time);

            result = sameDayChecker.Check(marketOrder);
            sameDayChecker.ProcessResult(db, result, dbOrder);


            var noWeightChecker = new NoWeightChecker(_log, _emailService, _time, company);

            result = noWeightChecker.Check(db, marketOrder, orderItems);
            noWeightChecker.ProcessResult(result, dbOrder);


            dbOrder.CheckedDate  = _time.GetAppNowTime();
            dbOrder.CheckedTimes = dbOrder.CheckedTimes + 1;

            db.Commit();
        }