public ActionResult ExecuteService()
        {
            AutomatedService automatedService = new AutomatedService();

            automatedService.ExecutonFunction();

            return(View());
        }
        private void timer_tick(object sender, ElapsedEventArgs e)
        {
            WindowsServiceLogging.WriteEventLog("******************* -- Event: OnStart -- ***********************");
            WindowsServiceLogging.WriteEventLog("Timer tick and operation started");


            AutomatedService automatedService = new AutomatedService();

            automatedService.ExecutonFunction();


            WindowsServiceLogging.WriteEventLog("Operation Completed Succesfully");
            WindowsServiceLogging.WriteEventLog("******************* -- Event: Completed -- ***********************");
        }
Beispiel #3
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            AutomatedService automatedService = new AutomatedService();
            string           sqlCon           = System.Configuration.ConfigurationManager.AppSettings["SQLConnectionStrings"];

            //string mySqlCon = System.Configuration.ConfigurationManager.AppSettings["HangFireMYSQLConnectionStrings"];

            Hangfire.GlobalConfiguration.Configuration
            .UseSqlServerStorage(sqlCon);

            //Hangfire.GlobalConfiguration.Configuration.UseStorage(new MySqlStorage(mySqlCon));

            _backgroundJobServer = new BackgroundJobServer();
        }
Beispiel #4
0
        public ActionResult SubmitContact(FormCollection form)
        {
            Decimal planamount = 0, smscreditamount = 0, amount = 0;

            if (form["hdnamount"] != null && form["hdnamount"] != "")
            {
                planamount = Convert.ToDecimal(form["hdnamount"]);
            }
            if (form["hdnsmscreditotaltamount"] != null && form["hdnsmscreditotaltamount"] != "")
            {
                smscreditamount = Convert.ToDecimal(form["hdnsmscreditotaltamount"]);
            }

            amount = planamount + smscreditamount;



            #region Fetching CabOfficeAccount

            var accountid = "";
            if (form["hdnaccount"] != null)
            {
                accountid = form["hdnaccount"].ToString();
            }
            AccountService accountService = new AccountService();
            Account        account        = accountService.getCabOfficeByAccountId(accountid);

            if (account == null)
            {
                return(View());
            }

            #endregion

            #region Payment Initilizer
            bool saleResult;

            Braintree.Environment environment;
            if (ConfigurationManager.AppSettings["BtEnvironmentTestMode"].ToString() == "1")
            {
                environment = Braintree.Environment.SANDBOX;
            }
            else
            {
                environment = Braintree.Environment.PRODUCTION;
            }

            var gateway = new BraintreeGateway
            {
                Environment = environment,
                MerchantId  = ConfigurationManager.AppSettings["BtMerchantId"],
                PublicKey   = ConfigurationManager.AppSettings["BtPublicKey"],
                PrivateKey  = ConfigurationManager.AppSettings["BtPrivateKey"]
            };
            #endregion

            #region Generate BTCustomer, token and Nonce
            String nonce_Generated = "";
            if (account.BtCustomerId == null || account.BtCustomerId == "")
            {
                /// Create Customer
                ///
                var requestc = new CustomerRequest
                {
                    FirstName = account.FullName,
                    LastName  = account.FullName,
                    Company   = "",
                    Email     = account.Email,
                    Fax       = "",
                    Phone     = "",
                    Website   = ""
                };
                Result <Customer> resultc    = gateway.Customer.Create(requestc);
                string            customerId = resultc.Target.Id;


                /// Create PaymentMethod
                ///
                var nonce    = Request["payment_method_nonce"];
                var requestP = new PaymentMethodRequest
                {
                    CustomerId         = customerId,
                    PaymentMethodNonce = nonce
                };

                Result <PaymentMethod>      resultP = gateway.PaymentMethod.Create(requestP);
                Result <PaymentMethodNonce> resultN = gateway.PaymentMethodNonce.Create(resultP.Target.Token);
                nonce_Generated = resultN.Target.Nonce;

                /// Update BtCustoemrId and BtToken in CabOfficeAccount
                ///
                accountService.UpdateBrainTreeInfo(customerId, resultP.Target.Token, account.Id);
            }
            else
            {
                Result <PaymentMethodNonce> resultN = gateway.PaymentMethodNonce.Create(account.BtPaymentMethodToken);
                nonce_Generated = resultN.Target.Nonce;
            }

            #endregion

            #region Sale

            var request = new TransactionRequest
            {
                Amount             = amount,
                PaymentMethodNonce = nonce_Generated,
                Options            = new TransactionOptionsRequest
                {
                    SubmitForSettlement = true
                }
            };

            Result <Transaction> result = gateway.Transaction.Sale(request);

            bool        resultVal   = result.IsSuccess();
            Transaction transaction = result.Target;

            #endregion


            if (resultVal)
            {
                bool chkautorenewel = false;
                var  bit            = "off";
                if (form["chkautorenewel"] != null)
                {
                    bit = form["chkautorenewel"].ToString();
                }

                if (bit == "on")
                {
                    chkautorenewel = true;
                }

                SubscriptionService subscriptionService = new SubscriptionService();

                int qty = 1;
                if (form["qty"] != null && form["qty"] != "")
                {
                    qty = Convert.ToInt32(form["qty"]);
                }

                int smscreditqty = 0;
                if (form["smscreditqty"] != null && form["smscreditqty"] != "")
                {
                    smscreditqty = Convert.ToInt32(form["smscreditqty"]);
                }

                double hdnsmscreditamount = 0;
                if (form["hdnsmscreditamount"] != null && form["hdnsmscreditamount"] != "")
                {
                    hdnsmscreditamount = Convert.ToDouble(form["hdnsmscreditamount"]);
                }

                int accountId = 1;
                if (account != null)
                {
                    accountId = account.Id;
                }

                int planId = 0;
                if (form["hdnplanid"] != null)
                {
                    planId = Convert.ToInt32(form["hdnplanid"].ToString());
                }


                int subscriptionId = subscriptionService.PurchaseSubscription(planId, Convert.ToDouble(amount),
                                                                              accountId, qty, "", smscreditqty, hdnsmscreditamount,
                                                                              transaction.Id, "", chkautorenewel, 0);


                if (chkautorenewel == true)
                {
                    /// Mark Hangfire Service
                    AutomatedService automatedService = new AutomatedService();
                    RecurringJob.AddOrUpdate(() => automatedService.MarkAutoRenewalSubscription(subscriptionId, null), Cron.Minutely);


                    ////// Insert into execution service

                    WindowsServiceExecution winservice = new WindowsServiceExecution();
                    winservice.WindowsServiceFunction     = "Automatic Charging";
                    winservice.WindowsServiceArgumrnt     = subscriptionId;
                    winservice.WindowsServiceFunctionCode = (int)Constant.WindowsFunction.AutomaticCharging;
                    winservice.WindowsServiceStatus       = (int)Constant.WindowsServiceExecutionStatus.Pending;
                    winservice.IsActive    = true;
                    winservice.CreatedDate = DateTime.Now;

                    //WindowsServiceExecutionService windowsServiceExecutionService = new WindowsServiceExecutionService();
                    //windowsServiceExecutionService.InsertWindowsServiceExecutionService(winservice);
                }


                return(RedirectToAction("Thankyou"));
            }
            else
            {
                return(RedirectToAction("CustomError?type=btpayment"));
            }
        }
        public int PurchaseSubscription(int planId, double totalAmonut, int cabOfficeId, int qty, string chequeNo,
                                        int smscreditqty, double smscreditamount, string transactionId, string btSubsccriptionId, bool isAutoRenewel, int noOfBillingCycle)
        {
            /// If plan is pay as you go and this user alreasy have subscription
            ///

            DataContext context                  = new DataContext();
            PlanService planService              = new PlanService();
            Plan        plan                     = planService.GetPlanDetail(planId);
            int         previousRemainingCredit  = 0;
            int         currentPurchaseSMSCredit = 0;

            Subscription subscription = null;

            if (plan.PlanTypeId == (int)Constant.SubscriptionType.PayAsYouGo)
            {
                //subscription = context.Subscriptions.FirstOrDefault(x => x.IsActive == true && x.AccountId == cabOfficeId && x.SubscriptionTypeId == (int)Constant.SubscriptionType.PayAsYouGo);
                Subscription subs = context.Subscriptions.Where(x => x.AccountId == cabOfficeId && x.IsActive == true).OrderByDescending(xx => xx.Id).FirstOrDefault();
                if (subs != null)
                {
                    if (subs.SubscriptionTypeId == (int)Constant.SubscriptionType.Monthly)
                    {
                        previousRemainingCredit = subs.RemainingSmsCreditPurchase;
                    }
                    else
                    {
                        subscription = subs;
                    }

                    currentPurchaseSMSCredit = qty;
                    qty = qty + previousRemainingCredit;
                }
            }
            else if (plan.PlanTypeId == (int)Constant.SubscriptionType.Monthly)
            {
                //List<Subscription> lst = context.Subscriptions.Where(x => x.AccountId == cabOfficeId && x.SubscriptionTypeId == (int)Constant.SubscriptionType.Monthly).ToList();

                Subscription subs = context.Subscriptions.Where(x => x.AccountId == cabOfficeId && x.IsActive == true).OrderByDescending(xx => xx.Id).FirstOrDefault();
                if (subs != null)
                {
                    if (subs.SubscriptionTypeId == (int)Constant.SubscriptionType.Monthly)
                    {
                        previousRemainingCredit = subs.RemainingSmsCreditPurchase;
                    }
                    else
                    {
                        previousRemainingCredit = subs.RemainingCredit;
                    }
                }

                currentPurchaseSMSCredit = smscreditqty;
                smscreditqty             = smscreditqty + previousRemainingCredit;
            }


            int subscriptionId = 0;

            if (subscription == null)
            {
                subscription = new Subscription();


                subscription.PlanId             = plan.Id;
                subscription.PlanName           = plan.Name;
                subscription.StartDate          = DateTime.UtcNow;
                subscription.TotalPrice         = totalAmonut;
                subscription.AccountId          = cabOfficeId;
                subscription.SubscriptionTypeId = plan.PlanTypeId;
                subscription.btTransactionId    = transactionId;
                if (plan.PlanTypeId == (int)Constant.PlayType.Monthly)
                {
                    subscription.EndDate                    = DateTime.UtcNow.AddMonths(1);
                    subscription.NoOfAgents                 = plan.NoOfAgents;
                    subscription.NoOfDrivers                = plan.NoOfDrivers;
                    subscription.NoOfVehicles               = plan.NoOfVehicles;
                    subscription.PerCreditSMSPrice          = plan.PerCreditSMSPrice;
                    subscription.RemainingNoOfAgents        = plan.NoOfAgents;
                    subscription.RemainingNoOfDrivers       = plan.NoOfDrivers;
                    subscription.RemainingNoOfVehicles      = plan.NoOfVehicles;
                    subscription.SMSPrice                   = smscreditamount;
                    subscription.NoOfSmsCreditPurchase      = smscreditqty;
                    subscription.RemainingSmsCreditPurchase = smscreditqty;
                    subscription.IsAutoRenewel              = isAutoRenewel;
                    subscription.NoOfBillingCycle           = noOfBillingCycle;
                    subscription.btSubscriptionId           = btSubsccriptionId;
                    subscription.PreviousRemainingSMSCredit = previousRemainingCredit;
                    subscription.CurrentPurchseSMSCredit    = currentPurchaseSMSCredit;
                }
                if (plan.PlanTypeId == (int)Constant.PlayType.PayAsYouGo)
                {
                    subscription.TotalCredit     = qty;
                    subscription.RemainingCredit = qty;
                }

                subscription.SubcriptionStatusCode = (int)Constant.SubscriptionStatus.Active;
                subscription.IsActive        = true;
                subscription.Status          = Constant.SubscriptionStatus.Active.ToString();
                subscription.ChequeNo        = chequeNo;
                subscription.CreatedDateTime = DateTime.UtcNow;

                if (plan.PlanTypeId == 1)
                {
                    subscription.IsAutoRenewel = false;
                }

                subscriptionId = InsertSubscription(subscription);

                AccountService accountService = new AccountService();
                accountService.UpdateActiveSubsctionForAccount(subscriptionId, cabOfficeId);


                AutomatedService automatedService = new AutomatedService();
                if (plan.PlanTypeId == (int)Constant.PlayType.PayAsYouGo)
                {
                    RecurringJob.AddOrUpdate(() => automatedService.DeductDailyCredit(subscriptionId), Cron.Daily);
                }
            }
            else
            {
                subscriptionId               = subscription.Id;
                subscription.TotalCredit     = subscription.TotalCredit + qty;
                subscription.RemainingCredit = subscription.RemainingCredit + qty;
                subscription.TotalPrice      = subscription.TotalPrice + totalAmonut;

                if (btSubsccriptionId != null && btSubsccriptionId != "")
                {
                    subscription.btTransactionId = btSubsccriptionId;
                }

                if (chequeNo != null && chequeNo != "")
                {
                    subscription.ChequeNo = chequeNo;
                }



                context.SaveChanges();
            }

            //AutomatedService automatedService = new AutomatedService();
            //if(plan.PlanTypeId == (int)Constant.PlayType.PayAsYouGo)
            //    RecurringJob.AddOrUpdate(() => automatedService.DeductDailyCredit(subscriptionId), Cron.Daily);

            return(subscriptionId);
        }