Beispiel #1
0
        public ActionResult TryChargeAgain(InvoiceVM model)
        {
            if ((!ModelState.IsValid) && (CastleClub.BusinessLogic.Data.GlobalParameters.TryChargeAgain))
            {
                return(Json(new { Result = false }));
            }

            bool resp = PaymentsManager.ProcessInvoice(model.Id);

            InvoiceDT     invoice     = PaymentsManager.GetInvoice(model.Id);
            TransactionDT transaction = invoice.Transactions.OrderByDescending(x => x.SubmitDate).FirstOrDefault();

            /* InvoiceDT invoice = null;
             * TransactionDT transaction = null;
             * resp = false;
             * return Json(new { Result = false, Info = new { Authorize = "", SubmitDate = DateTime.Now.ToString(), Type = "", Message ="hola", Status = "FAIL", Amount = "222", Parent = string.Empty } }); */
            if (resp)
            {
                return(Json(new { Result = true, Info = new { Authorize = transaction.AuthorizeTransactionId.ToString(), SubmitDate = transaction.SubmitDate.ToString(), Type = transaction.Type.ToString(), Message = transaction.Message, Status = transaction.Status.ToString(), Amount = invoice.Amount.ToString(), Parent = string.Empty } }));
            }
            else
            {
                if (transaction != null)
                {
                    return(Json(new { Result = false, Info = new { Authorize = transaction.AuthorizeTransactionId.ToString(), SubmitDate = transaction.SubmitDate.ToString(), Type = transaction.Type.ToString(), Message = transaction.Message, Status = transaction.Status.ToString(), Amount = invoice.Amount.ToString(), Parent = string.Empty } }));
                }
                else
                {
                    return(Json(new { Result = false }));
                }
            }
        }
        public override void createTestFixture()
        {
            base.createTestFixture();
            ObjectsConverter.Configure();
            configureLogging();
            clientInformation = new ClientInformation()
            {
                Version = Const.ServiceVersion
            };
            clientInformation.ApplicationLanguage = "en";
            clientInformation.PlatformVersion     = "fgfdgdfg";
            clientInformation.ApplicationVersion  = "1.0.0.0";
            var conf = new ConfigurationSourceBuilder();

            conf.ConfigureCaching().ForCacheManagerNamed(SecurityManager.AuthenticationCacheName).StoreInMemory();

            var configSource = new DictionaryConfigurationSource();

            conf.UpdateConfigurationWithReplace(configSource);

            var xmlStream       = DateTimeExtension.GetResource("BodyArchitect.UnitTests.V2.BAPointsTests.BAPoints.xml");
            var paymentsManager = new PaymentsManager();

            this.paymentsManager = paymentsManager.Load(xmlStream);
            InternalBodyArchitectService.PaymentsManager = this.paymentsManager;
            EnterpriseLibraryContainer.Current           = EnterpriseLibraryContainer.CreateDefaultContainer(configSource);
        }
Beispiel #3
0
        private void CreatePayment(List <ProviderEarnedPeriodValue> paymentValues, long ukprn,
                                   long uln, string learnRefNumber,
                                   CommitmentReferenceData commitment,
                                   IlrLearnerReferenceData learningDetails,
                                   TransactionType transactionType,
                                   FundingSource fundingSource)
        {
            foreach (var payment in paymentValues)
            {
                if (payment.Value > 0)
                {
                    var requiredPaymentId = Guid.NewGuid().ToString();
                    var month             = int.Parse(payment.PeriodName.Substring(0, 2));
                    var year         = int.Parse(payment.PeriodName.Substring(3, 2)) + 2000;
                    var date         = new DateTime(year, month, 1);
                    var periodNumber = date.GetPeriodNumber();
                    var periodName   = $"{TestEnvironment.Variables.OpaRulebaseYear}-R" + periodNumber.ToString("00");


                    PaymentsManager.SavePaymentDue(requiredPaymentId, ukprn, uln, commitment, learnRefNumber, periodName,
                                                   month, year, (int)transactionType, payment.Value, learningDetails);

                    PaymentsManager.SavePayment(requiredPaymentId, periodName, month, year, (int)transactionType, fundingSource, payment.Value);
                }
            }
        }
Beispiel #4
0
        protected void Convert()
        {
            PaymentsManager   manager   = new PaymentsManager();
            var               xmlStream = Helper.GetResource("BodyArchitect.UnitTests.DbConverter.V4V5.BAPoints.xml");
            DatabaseConverter converter = new DatabaseConverter(new BACallbackMock(), manager.Load(xmlStream));

            converter.Convert();
        }
        public void GetPointsForOffert()
        {
            var             xmlStream = DateTimeExtension.GetResource("BodyArchitect.UnitTests.V2.BAPointsTests.BAPoints.xml");
            PaymentsManager manager1  = new PaymentsManager();
            var             manager   = manager1.Load(xmlStream);

            Assert.AreEqual(30, manager.GetPointsForOffert("BAPoints_30"));
            Assert.AreEqual(0, manager.GetPointsForOffert("NotExistingOffert"));
        }
        public override void createTestFixture()
        {
            base.createTestFixture();

            var xmlStream = DateTimeExtension.GetResource("BodyArchitect.UnitTests.V2.BAPointsTests.BAPoints.xml");
            var manager1  = new PaymentsManager();

            manager = manager1.Load(xmlStream);
        }
        public PaymentController(IOptions <ConnectionConfiguration> connection)
        {
            _paymentsManager = new PaymentsManager(connection.Value.ConnectionString,
                                                   new BeneficiaryManager(connection.Value.ConnectionString)
                                                   );

            _paymentApi            = new PaymentApi(_paymentsManager, new Bundles.Core.Api.Response.StatusCodes());
            _userManager           = new UserManager(connection.Value.ConnectionString);
            _authenticationManager = new AuthenticationManager(_userManager);
        }
Beispiel #8
0
        public void Fund(int eventId, int amount, string senderEmail)
        {
            string receiverEmail = "*****@*****.**"; //Get email for receiver
            var    redirectUrl   = PaymentsManager.Pay(senderEmail, receiverEmail, Convert.ToDecimal(amount), "http://localhost/Events/Thankyou",
                                                       "http://localhost/Events/CancelPayment");

            Session["CurrentEmail"]  = senderEmail;
            Session["CurrentAmount"] = amount;

            Response.Redirect(redirectUrl);
        }
Beispiel #9
0
        public void GivenTheFollowingPaymentsWillBeAddedForReversal(Table table)
        {
            var context = new EarningsAndPaymentsContext();

            TransactionTypeTableParser.ParseTransactionTypeTableIntoContext(context, "", table);

            foreach (var row in context.ProviderEarnedForOnProgramme)
            {
                var month = Int32.Parse(row.PeriodName.Split('/')[0]);
                var year  = Int32.Parse($"20" + row.PeriodName.Split('/')[1]);
                PaymentsManager.AddRequiredPaymentForReversal(month, year, row.Value, TransactionType.OnProgram);
            }
        }
        public void Fund(EventModel model, int amount)
        {
            //string senderEmail = "*****@*****.**";

            string receiverEmail = EventsManager.Coordinator(User.Identity.Name).PaypalEmail;  //"*****@*****.**"; //Get email for receiver
            var    redirectUrl   = PaymentsManager.Pay(model.PaypalEmail, receiverEmail, Convert.ToDecimal(amount), String.Format("http://localhost:8098/Events/Thankyou?cEvent={0}&amount={1}&email={2}", model.Event.EventId, amount, model.PaypalEmail),
                                                       "http://localhost:8098/Events/CancelPayment");


            //Session["CurrentEmail"] = senderEmail;
            //Session["CurrentAmount"] = amount;
            //Session["CurrentEvent"] = eventId;

            Response.Redirect(redirectUrl);
        }
Beispiel #11
0
        public void Promotion_PremiumUserLoggedAsInstructor()
        {
            profiles[0].Licence.BAPoints    = 10;
            profiles[0].Licence.AccountType = Model.AccountType.PremiumUser;
            insertToDatabase(profiles[0]);

            RunServiceMethod(delegate(InternalBodyArchitectService service)
            {
                //set promotion cost of instructor account to 0
                var manager      = new PaymentsManager();
                var accountTypes = new Dictionary <AccountType, PaymentAccountType>()
                {
                    { AccountType.Instructor, new PaymentAccountType()
                      {
                          AccountType = AccountType.Instructor, Points = 3, PromotionPoints = 0, PromotionStartDate = DateTime.UtcNow.Date
                      } },
                    { AccountType.PremiumUser, new PaymentAccountType()
                      {
                          AccountType = AccountType.PremiumUser, Points = 1
                      } },
                };
                var itemsToBuy = new Dictionary <string, int>();
                service.Configuration.Payments = manager.Load(accountTypes, itemsToBuy, 15);

                ((MockTimerService)service.Configuration.TimerService).UtcNow = DateTime.UtcNow.Date;
                service.Configuration.CurrentApiKey = key;
                ClientInformation info   = new ClientInformation();
                info.ApplicationVersion  = Constants.Version;
                info.ApplicationLanguage = "pl";
                info.Version             = Const.ServiceVersion;
                info.ClientInstanceId    = Guid.NewGuid();
                string password          = CryptographyHelper.ToSHA1Hash("Profile1");

                var session      = service.Login(info, "Profile1", password);
                var securityInfo = SecurityManager.EnsureAuthentication(session.Token);
                Assert.AreEqual(AccountType.Instructor, securityInfo.Licence.CurrentAccountType);
                Assert.AreEqual(10, securityInfo.Licence.BAPoints);
            });
            var dbProfile = Session.Get <Profile>(profiles[0].GlobalId);

            Assert.AreEqual(BodyArchitect.Model.AccountType.PremiumUser, dbProfile.Licence.AccountType);
            Assert.AreEqual(10, dbProfile.Licence.BAPoints);
            Assert.AreEqual(DateTime.UtcNow.Date, dbProfile.Licence.LastPointOperationDate);
        }
        public void GetPoints()
        {
            var             xmlStream = DateTimeExtension.GetResource("BodyArchitect.UnitTests.V2.BAPointsTests.BAPoints.xml");
            PaymentsManager manager1  = new PaymentsManager();
            var             manager   = manager1.Load(xmlStream);

            Assert.AreEqual(1, manager.GetPoints(AccountType.PremiumUser).Points);
            Assert.IsNull(manager.GetPoints(AccountType.PremiumUser).PromotionPoints);
            Assert.IsNull(manager.GetPoints(AccountType.PremiumUser).PromotionStartDate);

            Assert.AreEqual(2, manager.GetPoints(AccountType.Instructor).Points);
            Assert.IsNull(manager.GetPoints(AccountType.Instructor).PromotionPoints);
            Assert.IsNull(manager.GetPoints(AccountType.Instructor).PromotionStartDate);

            Assert.AreEqual(0, manager.GetPoints(AccountType.User).Points);
            Assert.IsNull(manager.GetPoints(AccountType.User).PromotionPoints);
            Assert.IsNull(manager.GetPoints(AccountType.User).PromotionStartDate);

            Assert.AreEqual(0, manager.GetPoints(AccountType.Administrator).Points);
            Assert.IsNull(manager.GetPoints(AccountType.Administrator).PromotionPoints);
            Assert.IsNull(manager.GetPoints(AccountType.Administrator).PromotionStartDate);
        }
Beispiel #13
0
        public void TestLicence_Myselft_PaymentsData()
        {
            profiles[0].Licence.BAPoints = 10;
            profiles[0].Licence.LastPointOperationDate = DateTime.UtcNow;
            insertToDatabase(profiles[0]);

            var         profile0 = (ProfileDTO)profiles[0].Tag;
            SessionData data     = CreateNewSession(profile0, ClientInformation);
            GetProfileInformationCriteria criteria = new GetProfileInformationCriteria();


            RunServiceMethod(delegate(InternalBodyArchitectService service)
            {
                var manager      = new PaymentsManager();
                var accountTypes = new Dictionary <AccountType, PaymentAccountType>()
                {
                    { AccountType.Instructor, new PaymentAccountType()
                      {
                          AccountType = AccountType.Instructor, Points = 3, PromotionPoints = 1, PromotionStartDate = DateTime.UtcNow
                      } },
                    { AccountType.PremiumUser, new PaymentAccountType()
                      {
                          AccountType = AccountType.PremiumUser, Points = 1
                      } },
                };
                var itemsToBuy = new Dictionary <string, int>();
                service.Configuration.Payments = manager.Load(accountTypes, itemsToBuy, 10);

                var profileInfo = service.GetProfileInformation(data.Token, criteria);
                Assert.AreEqual(10, profileInfo.Licence.Payments.Kara);
                Assert.AreEqual(3, profileInfo.Licence.Payments.AccountTypes[AccountType.Instructor].Points);
                Assert.AreEqual(1, profileInfo.Licence.Payments.AccountTypes[AccountType.Instructor].PromotionPoints);
                Assert.AreEqual(null, profileInfo.Licence.Payments.AccountTypes[AccountType.PremiumUser].PromotionPoints);
                Assert.AreEqual(1, profileInfo.Licence.Payments.AccountTypes[AccountType.PremiumUser].Points);
            });
        }
        public async Task <string> PayReservation(int id, bool isCaparoPayed, PaymentMethodInfoViewModel paymentMethod, string urlOk = null, string urlCancel = null)
        {
            var price = await GetReservationPrice(id, isCaparoPayed);

            var payedItem = new PayedItemViewModel
            {
                PayedItemId   = id.ToString(),
                PayedItemCode = isCaparoPayed ? "ReservationCaparo" : "ReservationFull"
            };

            var paymentResult = await PaymentsManager.PaymentFacade(paymentMethod, payedItem, price, urlOk, urlCancel);


#if DEVELOPEMENT
#else
            //Notify for payment
            var contactInfo = await GetReservationCreatorContactInformation(id);

            //IsEasyPayCode
            if (Regex.IsMatch(paymentResult, @"^[0-9]+$"))
            {
                await SmsManager.SendSmsAsync(contactInfo.PhoneNumber,
                                              "Код за плащане в EasyPay: " + paymentResult + "\r\nsProperties");

                await EmailManager.SendEmailAsync(contactInfo.Email, "Код за плащане чрез EasyPay"
                                                  , $"<p>Здравейте,</p><p>Вашият номер за плащане в EasyPay е: {paymentResult}</p><p><br></p><p>За да извършите плащането моля посетете някой от <a href=\"https://www.easypay.bg/site/?p=offices\" target=\"_blank\" rel=\"noopener\">офисите на EasyPay</a> и заплатете по посоченият по по-горе код.</p><p><br/></p><p>Поздрави,<br>екипът на&nbsp;<strong>еТемида.</strong></p><hr><p>!&nbsp; Това е автоматично генериран е-мейл от системата на&nbsp;<strong>еТемида.<br></strong>&nbsp; &nbsp; &nbsp;Моля не отговаряйте и не изпращайте други съобщения на този е-мейл.</p>"
                                                  , true);
            }
            else
            {
            }
#endif


            return(paymentResult);
        }
Beispiel #15
0
 public PaymentApi(PaymentsManager paymentsManager, StatusCodes statusCodes)
 {
     _paymentsManager = paymentsManager;
     _statusCodes     = statusCodes;
 }
Beispiel #16
0
        private void CreatePreviousEarningsAndPayments(string providerName, string learnerRefererenceNumber, Table table, AimType paymentsAimType)
        {
            var learnerBreakdown = new EarningsAndPaymentsBreakdown {
                ProviderId = providerName
            };

            EarningAndPaymentTableParser.ParseEarningsAndPaymentsTableIntoContext(learnerBreakdown, table);

            var learningDetails = SubmissionContext.HistoricalLearningDetails.Where(x => x.AimType == paymentsAimType && x.LearnerReference.Equals(learnerRefererenceNumber, StringComparison.InvariantCultureIgnoreCase)).Single();

            long learnerUln;

            if (!string.IsNullOrEmpty(learningDetails.Uln))
            {
                learnerUln = long.Parse(learningDetails.Uln);
                LookupContext.AddUln(learnerRefererenceNumber, learnerUln);
            }
            else
            {
                learnerUln = LookupContext.AddOrGetUln(learnerRefererenceNumber);
            }


            var provider = LookupContext.AddOrGetUkprn(learnerBreakdown.ProviderId);

            var commitment = CommitmentsContext.Commitments.FirstOrDefault(x => x.ProviderId == learnerBreakdown.ProviderId && x.LearnerId == learnerRefererenceNumber);

            foreach (var earned in learnerBreakdown.ProviderEarnedTotal)
            {
                var requiredPaymentId = Guid.NewGuid().ToString();
                var month             = int.Parse(earned.PeriodName.Substring(0, 2));
                var year         = int.Parse(earned.PeriodName.Substring(3, 2)) + 2000;
                var date         = new DateTime(year, month, 1);
                var periodNumber = date.GetPeriodNumber();
                var periodName   = $"{TestEnvironment.Variables.OpaRulebaseYear}-R" + periodNumber.ToString("00");

                if (earned.Value > 0)
                {
                    PaymentsManager.SavePaymentDue(requiredPaymentId, provider, learnerUln,
                                                   commitment, learnerRefererenceNumber, periodName,
                                                   month, year, learningDetails.AimType == AimType.Programme ? (int)TransactionType.OnProgram : (int)TransactionType.OnProgrammeMathsAndEnglish
                                                   , earned.Value, learningDetails);

                    var levyPayment = learnerBreakdown.SfaLevyBudget.Where(x => x.PeriodName == earned.PeriodName).SingleOrDefault();
                    if (levyPayment != null && levyPayment.Value > 0)
                    {
                        PaymentsManager.SavePayment(requiredPaymentId, periodName, month, year,
                                                    learningDetails.AimType == AimType.Programme ? (int)TransactionType.OnProgram : (int)TransactionType.OnProgrammeMathsAndEnglish, FundingSource.Levy, levyPayment.Value);
                    }

                    var earnedFromEmployer = learnerBreakdown.ProviderEarnedFromEmployers.Where(x => x.PeriodName == earned.PeriodName).SingleOrDefault();
                    if (earnedFromEmployer != null && earnedFromEmployer.Value > 0)
                    {
                        PaymentsManager.SavePayment(requiredPaymentId, periodName, month, year,
                                                    learningDetails.AimType == AimType.Programme ? (int)TransactionType.OnProgram : (int)TransactionType.OnProgrammeMathsAndEnglish, FundingSource.CoInvestedEmployer, earnedFromEmployer.Value);
                    }

                    var coInvestedBySfaLevy = learnerBreakdown.SfaLevyCoFundBudget.Where(x => x.PeriodName == earned.PeriodName).SingleOrDefault();
                    if (coInvestedBySfaLevy != null && coInvestedBySfaLevy.Value > 0)
                    {
                        PaymentsManager.SavePayment(requiredPaymentId, periodName, month, year,
                                                    learningDetails.AimType == AimType.Programme ? (int)TransactionType.OnProgram : (int)TransactionType.OnProgrammeMathsAndEnglish, FundingSource.CoInvestedSfa, coInvestedBySfaLevy.Value);
                    }

                    var coInvestedBySfaNonLevy = learnerBreakdown.SfaNonLevyCoFundBudget.Where(x => x.PeriodName == earned.PeriodName).SingleOrDefault();
                    if (coInvestedBySfaNonLevy != null && coInvestedBySfaNonLevy.Value > 0)
                    {
                        PaymentsManager.SavePayment(requiredPaymentId, periodName, month, year,
                                                    learningDetails.AimType == AimType.Programme ? (int)TransactionType.OnProgram : (int)TransactionType.OnProgrammeMathsAndEnglish, FundingSource.CoInvestedSfa, coInvestedBySfaNonLevy.Value);
                    }

                    var aditionalPayments = learnerBreakdown.SfaLevyAdditionalPayments.Where(x => x.PeriodName == earned.PeriodName).SingleOrDefault();
                    if (aditionalPayments != null && aditionalPayments.Value > 0)
                    {
                        PaymentsManager.SavePayment(requiredPaymentId, periodName, month, year,
                                                    learningDetails.AimType == AimType.Programme ? (int)TransactionType.OnProgram : (int)TransactionType.OnProgrammeMathsAndEnglish, FundingSource.FullyFundedSfa, aditionalPayments.Value);
                    }
                }
            }
        }
        public static BasePayment Create(Page page, string payCode)
        {
            if (string.IsNullOrEmpty(payCode))
                throw new ArgumentException("Missing payCode");

            var payment = new Payment();
            var man = new PaymentsManager();
            payment = man.GetByKey(payCode);

            return create(page, payment);
        }
Beispiel #18
0
        public void GivenTheFollowingEarningsAndPaymentsHaveBeenMadeToTheProviderForLearner(string learnerName, Table table)
        {
            var learnerBreakdown = new EarningsAndPaymentsBreakdown {
                ProviderId = "provider " + Defaults.ProviderIdSuffix
            };

            EarningAndPaymentTableParser.ParseEarningsAndPaymentsTableIntoContext(learnerBreakdown, table);

            var learner  = LookupContext.AddOrGetUln(learnerName);
            var provider = LookupContext.AddOrGetUkprn(learnerBreakdown.ProviderId);


            var commitment = CommitmentsContext.Commitments.FirstOrDefault();

            foreach (var earned in learnerBreakdown.ProviderEarnedTotal)
            {
                var requiredPaymentId = Guid.NewGuid().ToString();
                var month             = int.Parse(earned.PeriodName.Substring(0, 2));
                var year         = int.Parse(earned.PeriodName.Substring(3, 2)) + 2000;
                var date         = new DateTime(year, month, 1);
                var periodNumber = date.GetPeriodNumber();
                var periodName   = $"1718-R" + periodNumber.ToString("00");

                if (earned.Value > 0)
                {
                    PaymentsManager.SavePaymentDue(requiredPaymentId, provider, learner, null, null, null, Defaults.StandardCode,
                                                   commitment, learnerName, periodName,
                                                   month, year,
                                                   (int)TransactionType.OnProgram,
                                                   commitment == null ? ContractType.ContractWithSfa : ContractType.ContractWithEmployer,
                                                   earned.Value);
                    var levyPayment = learnerBreakdown.SfaLevyBudget.Where(x => x.PeriodName == earned.PeriodName).SingleOrDefault();
                    if (levyPayment != null && levyPayment.Value > 0)
                    {
                        PaymentsManager.SavePayment(requiredPaymentId, periodName, month, year,
                                                    (int)TransactionType.OnProgram, FundingSource.Levy, levyPayment.Value);
                    }

                    var earnedFromEmployer = learnerBreakdown.ProviderEarnedFromEmployers.Where(x => x.PeriodName == earned.PeriodName).SingleOrDefault();
                    if (earnedFromEmployer != null && earnedFromEmployer.Value > 0)
                    {
                        PaymentsManager.SavePayment(requiredPaymentId, periodName, month, year,
                                                    (int)TransactionType.OnProgram, FundingSource.CoInvestedEmployer, earnedFromEmployer.Value);
                    }

                    var coInvestedBySfaLevy = learnerBreakdown.SfaLevyCoFundBudget.Where(x => x.PeriodName == earned.PeriodName).SingleOrDefault();
                    if (coInvestedBySfaLevy != null && coInvestedBySfaLevy.Value > 0)
                    {
                        PaymentsManager.SavePayment(requiredPaymentId, periodName, month, year,
                                                    (int)TransactionType.OnProgram, FundingSource.CoInvestedSfa, coInvestedBySfaLevy.Value);
                    }

                    var coInvestedBySfaNonLevy = learnerBreakdown.SfaNonLevyCoFundBudget.Where(x => x.PeriodName == earned.PeriodName).SingleOrDefault();
                    if (coInvestedBySfaNonLevy != null && coInvestedBySfaNonLevy.Value > 0)
                    {
                        PaymentsManager.SavePayment(requiredPaymentId, periodName, month, year,
                                                    (int)TransactionType.OnProgram, FundingSource.CoInvestedSfa, coInvestedBySfaNonLevy.Value);
                    }
                }
            }
        }