Exemple #1
0
 static void Main(string[] args)
 {
     if (args.Length > 0)
     {
         ProcessCreditCard pcc = new ProcessCreditCard(args[0]);
         pcc.Execute();
     }
     else
     {
         Console.WriteLine("Please provide input file to process");
     }
 }
    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = "ACCA Processing..";
        // Do the processing only if it is loaded on tuesday, 10 PM
        if ((DateTime.Now.DayOfWeek == DayOfWeek.Tuesday && DateTime.Now.TimeOfDay.Hours == 22) || Request.QueryString["eventDate"] != null)
        {
            Label1.Text = "ACCA Processing..";
            try
            {
                AccaService accaService = ServiceAccess.GetInstance().GetAcca();
                DateTime    eventDate   = DateTime.MinValue;
                if (Request.QueryString["eventDate"] != null)
                {
                    eventDate = Convert.ToDateTime(Request.QueryString["eventDate"]);
                }
                AccaInfo[] allAccaInfo = accaService.GetCreditCardDetailsForScheduledEvents(eventDate);
                Irmac.MailingCycle.BLLServiceLoader.Order.OrderService orderService = ServiceAccess.GetInstance().GetOrder();

                foreach (Irmac.MailingCycle.BLLServiceLoader.Acca.AccaInfo accaInfo in allAccaInfo)
                {
                    //if quantity sufficient
                    if (accaInfo.EventStatus != ScheduleEventStatus.ACCAError)
                    {
                        accaInfo.EventStatus = ScheduleEventStatus.InProgress;
                        accaInfo.Remarks     = "Billed successfully";
                        ProcessCreditCard processCreditCard = new ProcessCreditCard();
                        processCreditCard.Address1   = accaInfo.AccaCreditCardInfo.Address.Address1;
                        processCreditCard.Address2   = accaInfo.AccaCreditCardInfo.Address.Address2;
                        processCreditCard.Amount     = accaInfo.AccaOrderInfo.Amount;
                        processCreditCard.CardNumber = accaInfo.AccaCreditCardInfo.Number;
                        processCreditCard.City       = accaInfo.AccaCreditCardInfo.Address.City;
                        processCreditCard.Country    = accaInfo.AccaCreditCardInfo.Address.Country.Name;
                        processCreditCard.ExpiryDate = new DateTime
                                                           (accaInfo.AccaCreditCardInfo.ExpirationYear, accaInfo.AccaCreditCardInfo.ExpirationMonth, 1);
                        string[] names = accaInfo.AccaCreditCardInfo.HolderName.Split(new char[] { ' ' });
                        processCreditCard.FirstName = names[0];
                        if (names.Length > 1)
                        {
                            processCreditCard.LastName = names[1];
                        }
                        processCreditCard.State   = accaInfo.AccaCreditCardInfo.Address.State.Name;
                        processCreditCard.ZipCode = accaInfo.AccaCreditCardInfo.Address.Zip;

                        processCreditCard.AuthorizeCard();
                        OrderInfo orderInfo = accaInfo.AccaOrderInfo;
                        if (processCreditCard.CreditCardStatus != CardStatus.Approved)
                        {
                            accaInfo.EventStatus = ScheduleEventStatus.ACCAError;
                            accaInfo.Remarks     = processCreditCard.Message;
                        }
                        else
                        {
                            orderInfo.CreditCard = accaInfo.AccaCreditCardInfo;
                            orderInfo.Date       = DateTime.Now;
                            orderInfo.Number     = 10000;
                        }
                        orderInfo.TransactionCode    = processCreditCard.TransactionId;
                        orderInfo.TransactionMessage = processCreditCard.Message;
                        accaInfo.AccaOrderInfo       = orderInfo;
                    }
                }
                AccaInfo[] updatedInfo = accaService.UpdateEventInfo(allAccaInfo);
                SendACCAMail(updatedInfo);

                Label1.Text = "ACCA Process Completed Successfully..";
            }
            catch (Exception ex)
            {
                log.Error("Acca Error", ex);
            }
        }
    }