public void Must_Log_To_Console()
        {
            // Arrange

            var log = new JobLogger(AppDomain.CurrentDomain.BaseDirectory + "/logger4.cfg.json");



            using (var sw = new StringWriter())
            {
                Console.SetOut(sw);

                var expected =
                    string.Format(
                        DateTime.Now.ToShortDateString() + " - [INFO]: This must be INFO{0}" +
                        DateTime.Now.ToShortDateString() + " - [WARNING]: This must be WARNING{0}" +
                        DateTime.Now.ToShortDateString() + " - [ERROR]: This must be ERROR{0}", Environment.NewLine);

                // Act

                log.Info("This must be INFO");
                log.Warning("This must be WARNING");
                log.Error("This must be ERROR");

                //Assert

                Assert.AreEqual(sw.ToString(), expected);
            }
        }
        public void Must_Log_To_File()
        {
            // Arrange

            ILogRepository logRepository = new FakeLogRepository();
            var            log           = new JobLogger(AppDomain.CurrentDomain.BaseDirectory + "/logger6.cfg.json", logRepository);

            var expected =
                string.Format(
                    DateTime.Now.ToShortDateString() + " - [INFO]: This must be INFO File log{0}" +
                    DateTime.Now.ToShortDateString() + " - [WARNING]: This must be WARNING File log{0}" +
                    DateTime.Now.ToShortDateString() + " - [ERROR]: This must be ERROR File log{0}", Environment.NewLine);

            // Act

            log.Info("This must be INFO File log");
            log.Warning("This must be WARNING File log");
            log.Error("This must be ERROR File log");

            var result = File.ReadAllText("C:/Temp/Logs/log" + DateTime.Now.Day + DateTime.Now.Month + DateTime.Now.Year + ".txt");

            // Assert

            Assert.IsTrue(File.Exists("C:/Temp/Logs/log" + DateTime.Now.Day + DateTime.Now.Month + DateTime.Now.Year + ".txt"));
            Assert.AreEqual(result, expected);
            File.Delete("C:/Temp/Logs/log" + DateTime.Now.Day + DateTime.Now.Month + DateTime.Now.Year + ".txt");
        }
Exemplo n.º 3
0
        public void Given_NullMessage_When_CallingError_Then_ReturnNotSuccess()
        {
            IJobLogger logger = new JobLogger(_databaseRepository, _fileRepository, _consoleRepository);

            var success = logger.Error(InvalidMessage);

            Assert.IsFalse(success);
        }
        public void Must_Log_To_Database()
        {
            // Arrange

            ILogRepository logRepository = new FakeLogRepository();
            var            log           = new JobLogger(AppDomain.CurrentDomain.BaseDirectory + "/logger5.cfg.json", logRepository);
            IList <Log>    expected      = new List <Log>();

            expected.Add(new Log
            {
                Message = "This must be INFO Database log",
                Type    = "Info",
                Date    = DateTime.Now
            });

            expected.Add(new Log
            {
                Message = "This must be WARNING Database log",
                Type    = "Warning",
                Date    = DateTime.Now
            });

            expected.Add(new Log
            {
                Message = "This must be ERROR Database log",
                Type    = "Error",
                Date    = DateTime.Now
            });

            // Act

            log.Info("This must be INFO Database log");
            log.Warning("This must be WARNING Database log");
            log.Error("This must be ERROR Database log");

            var logs = logRepository.GetAll();

            // Assert

            Assert.AreEqual(logs.ToList().Count(), 3);
            Assert.AreEqual(logs.ToList()[0].ToString(), expected[0].ToString());
            Assert.AreEqual(logs.ToList()[1].ToString(), expected[1].ToString());
            Assert.AreEqual(logs.ToList()[2].ToString(), expected[2].ToString());
        }
        public void Execute(DataSet dataSet, CancellationToken cancellationToken)
        {
            try
            {
                var failedInforTransactions = (from it in this.UnitOfWork.GetRepository <InvoiceInforTransaction>().GetTable()
                                               join cc in this.UnitOfWork.GetRepository <CreditCardTransaction>().GetTable()
                                               on it.AuthCode equals cc.AuthCode
                                               where it.PostedToInfor == false
                                               select new
                {
                    InvoiceInforTransaction = it,
                    CreditCardTransaction = cc
                }
                                               ).ToList();



                if (failedInforTransactions.Count() == 0)
                {
                    return;
                }
                this.UnitOfWork.BeginTransaction();

                foreach (var failedTransaction in failedInforTransactions)
                {
                    PayOpenInvoicesRequest    payOpenInvoicesRequest = new PayOpenInvoicesRequest();
                    PayOpenInvoicesHead       head       = new PayOpenInvoicesHead();
                    PayOpenInvoicesCreditCard creditCard = new PayOpenInvoicesCreditCard();
                    payOpenInvoicesRequest.Invoice = new List <PayOpenInvoicesInvoice>();
                    //head.CompanyNumber = customSettings.CompanyNameIdentifier;
                    head.CompanyNumber       = failedTransaction.CreditCardTransaction.CustomerNumber.Substring(0, 1);
                    head.CustomerNumber      = failedTransaction.CreditCardTransaction.CustomerNumber.Substring(1);
                    head.SettlementDate      = failedTransaction.CreditCardTransaction.TransactionDate.Date.ToString("MMddyyyy");
                    head.MonetaryAmount      = failedTransaction.CreditCardTransaction.Amount.ToString();
                    creditCard.CCCustomerID  = "0" + head.CompanyNumber + failedTransaction.CreditCardTransaction.CustomerNumber.Substring(1).PadLeft(10, '0');
                    creditCard.CCPaymentType = "CENPOS";
                    //string expirationMonth = parameter1.CreditCard.ExpirationMonth.ToString("00");
                    string expiryYear = failedTransaction.CreditCardTransaction.ExpirationDate.Remove(0, failedTransaction.CreditCardTransaction.ExpirationDate.Length - 2);
                    creditCard.CCCreditCardExp       = string.Concat(failedTransaction.CreditCardTransaction.ExpirationDate.Substring(0, 2), expiryYear);
                    creditCard.CCCardHolder          = failedTransaction.CreditCardTransaction.Name; //to check for saved cards
                    creditCard.CCAuthorizationAmount = failedTransaction.CreditCardTransaction.Amount.ToString();
                    creditCard.CCMerchantId          = customSettings.Value.PaymentGateway_Cenpos_MerchantId.ToString();
                    creditCard.CCMaskedCard          = failedTransaction.InvoiceInforTransaction.CCMaskedCard;
                    //creditCard.CCToken = failedTransaction.CreditCardTransaction.PNRef.Substring(0, failedTransaction.CreditCardTransaction.PNRef.IndexOf('|'));
                    creditCard.CCToken               = "NOTOKEN_" + failedTransaction.CreditCardTransaction.AuthCode.Substring(failedTransaction.CreditCardTransaction.AuthCode.Length - 4);
                    creditCard.CCCardType            = failedTransaction.InvoiceInforTransaction.CardType;
                    creditCard.CCAuthorizationNumber = failedTransaction.CreditCardTransaction.AuthCode;
                    creditCard.CCReferenceNumber     = failedTransaction.InvoiceInforTransaction.CCReferenceNumber;
                    var CCEmail = this.UnitOfWork.GetRepository <Customer>().GetTableAsNoTracking().Where(customer => customer.CustomerNumber == failedTransaction.CreditCardTransaction.CustomerNumber).FirstOrDefault().Email;
                    creditCard.CCEmail                = CCEmail; //check the mail
                    creditCard.CCCustomerCode         = failedTransaction.CreditCardTransaction.CustomerNumber.Substring(1).PadLeft(10, '0');
                    creditCard.CCEND                  = "Y";
                    payOpenInvoicesRequest.Head       = head;
                    payOpenInvoicesRequest.CreditCard = creditCard;
                    payOpenInvoicesRequest.Name       = "PayOpenInvoices";
                    invoiceList = JsonConvert.DeserializeObject <List <InvoiceList> >(failedTransaction.InvoiceInforTransaction.InvoiceNumber);

                    foreach (InvoiceList inv in invoiceList)
                    {
                        PayOpenInvoicesInvoice payOpenInvoicesInvoice = new PayOpenInvoicesInvoice();
                        payOpenInvoicesInvoice.InvoiceNo           = inv.InvoiceNo;//
                        payOpenInvoicesInvoice.DiscountTakenAmount = "";
                        payOpenInvoicesInvoice.InvoiceNote         = inv.InvoiceNote;
                        payOpenInvoicesInvoice.PaymentAmount       = (invoiceList.Count() > 1) ? inv.PaymentAmount : head.MonetaryAmount;//when paying for single
                        payOpenInvoicesRequest.Invoice.Add(payOpenInvoicesInvoice);
                    }
                    var response = this.outstandingInvoiceService.PayOpenInvoicesJob(payOpenInvoicesRequest);
                    if (!response.IsSuccessStatusCode)
                    {
                        JobLogger.Error("Post to infor for " + creditCard.CCAuthorizationNumber + " failed :" + response);
                    }
                    else
                    {
                        failedTransaction.InvoiceInforTransaction.PostedToInfor = true;
                        JobLogger.Error("Post to infor for " + creditCard.CCAuthorizationNumber + " successful :" + response);
                    }

                    this.UnitOfWork.Save();
                }
                this.UnitOfWork.CommitTransaction();
            }
            catch (Exception ex)
            {
                LogHelper.For(this).Error(ex);
                throw;
            }
        }