コード例 #1
0
        public async Task GetTotalTransactionAsync()
        {
            //Arrange
            IEnumerable <Transactions> transactions = MockTransactions.GetTransactions();
            var mockTransactionsRepository          = new Mock <IRepository <Transactions> >();

            mockTransactionsRepository.Setup(p => p.GetAsync()).Returns(Task.FromResult(transactions));

            IEnumerable <Rates> rates = MockRates.GetRates();
            var mockRatesRepository   = new Mock <IRepository <Rates> >();

            mockRatesRepository.Setup(p => p.GetAsync()).Returns(Task.FromResult(rates));

            GraphSolver   graphSolver   = new GraphSolver();
            AmountService amountService = new AmountService();
            TransactionBusinessService transactionBusinessService = new TransactionBusinessService(graphSolver, amountService, null);
            TransactionFilterService   transactionFilterService   = new TransactionFilterService(null);

            ConfigurationBuilder configBuilder = new ConfigurationBuilder();

            configBuilder.AddInMemoryCollection(new Dictionary <string, string> {
                { "Currency", "EUR" }
            });
            IConfiguration config = configBuilder.Build();

            TransactionsService transactionsService = new TransactionsService(mockTransactionsRepository.Object, mockRatesRepository.Object, transactionFilterService, transactionBusinessService, null, config);

            //Act
            var totalTransactionDTO = await transactionsService.GetTotalTransactionAsync("A0000").ConfigureAwait(false);

            //Assert
            Assert.NotNull(null);
        }
        public void GetTotalAmount()
        {
            //Arrange
            GraphSolver   graphSolver   = new GraphSolver();
            AmountService amountService = new AmountService();
            TransactionBusinessService transactionBusinessService = new TransactionBusinessService(graphSolver, amountService, null);

            IEnumerable <Transactions> transactions = MockTransactions.GetTransactions();

            //Act
            var totalAmount = transactionBusinessService.GetTotalAmount(transactions);

            //Assert
            Assert.Equal(expected: (decimal)47.00, actual: totalAmount);
        }
        public void ExchangeToCurrency()
        {
            //Arrange
            GraphSolver   graphSolver   = new GraphSolver();
            AmountService amountService = new AmountService();
            TransactionBusinessService transactionBusinessService = new TransactionBusinessService(graphSolver, amountService, null);

            IEnumerable <Transactions> transactions = MockTransactions.GetTransactions();
            IEnumerable <Rates>        rates        = MockRates.GetRates();

            //Act
            var transactionsToCurrency = transactionBusinessService.ExchangeToCurrency(transactions, rates, "EUR");

            //Assert
            Assert.Equal(expected: (decimal)8.02, actual: transactionsToCurrency.ElementAt(0).Amount);
            Assert.Equal(expected: (decimal)5.26, actual: transactionsToCurrency.ElementAt(1).Amount);
            Assert.Equal(expected: (decimal)5.96, actual: transactionsToCurrency.ElementAt(2).Amount);
            Assert.Equal(expected: (decimal)10.25, actual: transactionsToCurrency.ElementAt(3).Amount);
        }
コード例 #4
0
        public HttpResponseMessage Post(Order_Ack_Decline_DTO order_Ack_Decline_DTO)
        {
            Order_TissueBankApiModel   order_TissueBankApiModel = new Order_TissueBankApiModel();
            TransactionalInformation   transaction = new TransactionalInformation();
            TransactionBusinessService transactionBusinessService = new TransactionBusinessService(transactionDataService);
            Status status = new Status();

            ErrorBusinessService  errorBusinessService  = new ErrorBusinessService(errorDataService);
            StatusBusinessService statusBusinessService = new StatusBusinessService(statusDataService);
            OrderBusinessService  orderBusinessService  = new OrderBusinessService(orderDataService);

            //Get  OrderCommisionDetail
            OrderCommisionDetail_TissueBank orderCommisionDetail = orderBusinessService.GetOrderCommisionDetail(order_Ack_Decline_DTO.OrderId, out transaction);

            if (order_Ack_Decline_DTO.StatusId == 1008)
            {
                //static values
                orderCommisionDetail.CustomerProfileId         = "1810434404";
                orderCommisionDetail.CustomerPaymentProfileIds = "1805183086";

                //Convert object to string to send as requestBody
                string objToPass = Utility.Utilities.SerializeObject <Order_Ack_Decline_DTO>(order_Ack_Decline_DTO);

                //create transaction
                int TransactionId = transactionBusinessService.Transaction_Create(DateTime.Now, (float)orderCommisionDetail.AlloCATFees, order_Ack_Decline_DTO.LastModifiedBy, objToPass, out transaction);

                //cut commision
                var response = ChargeCustomerProfile(orderCommisionDetail);

                // if response is not null then only save info in db.
                if (response.AuthCode != null)
                {
                    //converting response into xml format
                    string ResponseBody = Utility.Utilities.SerializeObject <ResTransaction>(response);

                    //get status from database for Success
                    status = statusBusinessService.GetStatusByStatusName("Success");

                    orderBusinessService.Order_Ack_Decline(order_Ack_Decline_DTO.OrderId, order_Ack_Decline_DTO.StatusId, order_Ack_Decline_DTO.DeclineRemark, order_Ack_Decline_DTO.ShippingMethod, order_Ack_Decline_DTO.TissueBankSendByDate, order_Ack_Decline_DTO.LastModifiedBy, TransactionId, response.AuthCode, ResponseBody, response.TransactionId, status.StatusId, orderCommisionDetail.TissueBankId, out transaction);

                    order_TissueBankApiModel.ReturnMessage = transaction.ReturnMessage;
                    order_TissueBankApiModel.ReturnStatus  = transaction.ReturnStatus;
                }
                else
                {
                    //get status from database for Success
                    status = statusBusinessService.GetStatusByStatusName("Error");

                    if (response.ErrorCode == null)
                    {
                        response.MessageCode = "Error Code from authorize.net is null.";
                    }

                    if (response.MessageDescription == null)
                    {
                        response.MessageDescription = "Response from authorize.net is null.";
                    }

                    //if response is null then log error and update transaction too.
                    string errorMessage = errorBusinessService.Error_Create(status.StatusId, response.MessageDescription, "", TransactionId, order_Ack_Decline_DTO.LastModifiedBy, response.MessageCode);

                    order_TissueBankApiModel.ReturnStatus = transaction.ReturnStatus = false;
                    order_TissueBankApiModel.ReturnMessage.Add(response.MessageDescription);
                }
            }
            else
            {
                orderBusinessService.Order_Ack_Decline(order_Ack_Decline_DTO.OrderId, order_Ack_Decline_DTO.StatusId, order_Ack_Decline_DTO.DeclineRemark, order_Ack_Decline_DTO.ShippingMethod, order_Ack_Decline_DTO.TissueBankSendByDate, order_Ack_Decline_DTO.LastModifiedBy, 0, "", "", "", 0, orderCommisionDetail.TissueBankId, out transaction);
            }


            if (transaction.ReturnStatus == false)
            {
                order_TissueBankApiModel.ValidationErrors = transaction.ValidationErrors;
                return(Request.CreateResponse <Order_TissueBankApiModel>(HttpStatusCode.BadRequest, order_TissueBankApiModel));
            }
            else
            {
                return(Request.CreateResponse <Order_TissueBankApiModel>(HttpStatusCode.OK, order_TissueBankApiModel));
            }
        }
コード例 #5
0
        public HttpResponseMessage Post(TissueBankAdd_DTO tissueBankAdd_DTO)
        {
            //Initialisation
            TransactionalInformation transaction = new TransactionalInformation();
            TissueBankApiModel       tbApiModel  = new TissueBankApiModel();
            Status status = new Status();

            TissueBankBusinessService  tissueBankBusinessService  = new TissueBankBusinessService(tbDataService);
            TransactionBusinessService transactionBusinessService = new TransactionBusinessService(transactionDataService);
            ErrorBusinessService       errorBusinessService       = new ErrorBusinessService(errorDataService);
            StatusBusinessService      statusBusinessService      = new StatusBusinessService(statusDataService);

            //check TB registration request
            if (tissueBankBusinessService.CheckTissueBank_Add(tissueBankAdd_DTO.TissueBankName, tissueBankAdd_DTO.ContactPersonFirstName, tissueBankAdd_DTO.ContactPersonLastName, tissueBankAdd_DTO.ContactPersonNumber, tissueBankAdd_DTO.ContactPersonEmailId, tissueBankAdd_DTO.FaxNumber, tissueBankAdd_DTO.TissueBankEmailId, tissueBankAdd_DTO.BusinessURL, tissueBankAdd_DTO.TissueBankAddress, tissueBankAdd_DTO.CityId, tissueBankAdd_DTO.ZipCode, tissueBankAdd_DTO.TissueBankStateLicense, tissueBankAdd_DTO.AATBLicenseNumber, tissueBankAdd_DTO.AATBExpirationDate, tissueBankAdd_DTO.AATBAccredationDate, tissueBankAdd_DTO.CreditCardNumber, tissueBankAdd_DTO.CreditCardType, tissueBankAdd_DTO.ExpiryDate, tissueBankAdd_DTO.CardCode, tissueBankAdd_DTO.CustomerProfileId, tissueBankAdd_DTO.CustomerPaymentProfileIds, tissueBankAdd_DTO.BillingAddress, tissueBankAdd_DTO.BillingCityId, tissueBankAdd_DTO.BillingZipCode, tissueBankAdd_DTO.BillingFaxNumber, tissueBankAdd_DTO.BillingEmailId, tissueBankAdd_DTO.BillingContactNumber, tissueBankAdd_DTO.BillingCity, tissueBankAdd_DTO.BillingState, tissueBankAdd_DTO.State, tissueBankAdd_DTO.City, tissueBankAdd_DTO.UserId, tissueBankAdd_DTO.TissueBankId, tissueBankAdd_DTO.TransactionId, tissueBankAdd_DTO.AuthTransactionId, tissueBankAdd_DTO.AuthCode, tissueBankAdd_DTO.StatusId, tissueBankAdd_DTO.TransactionCompleteDate, tissueBankAdd_DTO.ResponseBody, out transaction))
            {
                //storing for authorize.net
                string CreditCardNumber = tissueBankAdd_DTO.CreditCardNumber;
                int    CreditCardType   = tissueBankAdd_DTO.CreditCardType;
                string CardCode         = tissueBankAdd_DTO.CardCode;
                string ExpiryDate       = tissueBankAdd_DTO.ExpiryDate;

                //removing card detail from object and then storing request detail in transaction table
                tissueBankAdd_DTO.CreditCardNumber = tissueBankAdd_DTO.CreditCardNumber.Substring(tissueBankAdd_DTO.CreditCardNumber.Length - 4);
                tissueBankAdd_DTO.CreditCardType   = 0;
                tissueBankAdd_DTO.CardCode         = "";
                tissueBankAdd_DTO.ExpiryDate       = "";

                //Convert object to string to send as requestBody
                string objToPass = Utility.Utilities.SerializeObject <TissueBankAdd_DTO>(tissueBankAdd_DTO);

                //create transaction
                int TransactionId = transactionBusinessService.Transaction_Create(DateTime.Now, 25, tissueBankAdd_DTO.UserId, objToPass, out transaction);

                //again restoring card details for authorize.net
                tissueBankAdd_DTO.CreditCardNumber = CreditCardNumber;
                tissueBankAdd_DTO.CreditCardType   = CreditCardType;
                tissueBankAdd_DTO.CardCode         = CardCode;
                tissueBankAdd_DTO.ExpiryDate       = ExpiryDate;

                //Cutting $25 for registration
                var response = CreateCustomerProfileAndCharge(tissueBankAdd_DTO);

                // if response is not null then only save tissue bank detail in database and update transaction too.
                if (response.CustomerProfileId != null)
                {
                    tissueBankAdd_DTO.CreditCardNumber = tissueBankAdd_DTO.CreditCardNumber.Substring(tissueBankAdd_DTO.CreditCardNumber.Length - 4);

                    //get status from database for Success
                    status = statusBusinessService.GetStatusByStatusName("Success");

                    #region static data of response from authorize .net
                    //tissueBankAdd_DTO.AuthTransactionId = "123454613";
                    //tissueBankAdd_DTO.CustomerProfileId = "56456123132";
                    //tissueBankAdd_DTO.CustomerPaymentProfileIds = "456123187";
                    //tissueBankAdd_DTO.AuthCode = "456456";
                    //tissueBankAdd_DTO.ResponseBody = "";
                    #endregion

                    tissueBankAdd_DTO.AuthTransactionId         = response.Transaction.TransactionId;
                    tissueBankAdd_DTO.CustomerProfileId         = response.CustomerProfileId;
                    tissueBankAdd_DTO.CustomerPaymentProfileIds = response.CustomerPaymentProfileIds[0];
                    tissueBankAdd_DTO.AuthCode = response.Transaction.AuthCode;

                    tissueBankAdd_DTO.StatusId = status.StatusId;
                    tissueBankAdd_DTO.TransactionCompleteDate = DateTime.Now;
                    tissueBankAdd_DTO.TransactionId           = TransactionId;

                    //converting response into xml format
                    tissueBankAdd_DTO.ResponseBody = Utility.Utilities.SerializeObject <ResCustomerProfile>(response);

                    //add tissue bank
                    tissueBankBusinessService.TissueBank_Add(tissueBankAdd_DTO.TissueBankName, tissueBankAdd_DTO.ContactPersonFirstName, tissueBankAdd_DTO.ContactPersonLastName, tissueBankAdd_DTO.ContactPersonNumber, tissueBankAdd_DTO.ContactPersonEmailId, tissueBankAdd_DTO.FaxNumber, tissueBankAdd_DTO.TissueBankEmailId, tissueBankAdd_DTO.BusinessURL, tissueBankAdd_DTO.TissueBankAddress, tissueBankAdd_DTO.CityId, tissueBankAdd_DTO.ZipCode, tissueBankAdd_DTO.TissueBankStateLicense, tissueBankAdd_DTO.AATBLicenseNumber, tissueBankAdd_DTO.AATBExpirationDate, tissueBankAdd_DTO.AATBAccredationDate, tissueBankAdd_DTO.CreditCardNumber, tissueBankAdd_DTO.CreditCardType, tissueBankAdd_DTO.ExpiryDate, tissueBankAdd_DTO.CardCode, tissueBankAdd_DTO.CustomerProfileId, tissueBankAdd_DTO.CustomerPaymentProfileIds, tissueBankAdd_DTO.BillingAddress, tissueBankAdd_DTO.BillingCityId, tissueBankAdd_DTO.BillingZipCode, tissueBankAdd_DTO.BillingFaxNumber, tissueBankAdd_DTO.BillingEmailId, tissueBankAdd_DTO.BillingContactNumber, tissueBankAdd_DTO.BillingCity, tissueBankAdd_DTO.BillingState, tissueBankAdd_DTO.State, tissueBankAdd_DTO.City, tissueBankAdd_DTO.UserId, tissueBankAdd_DTO.TissueBankId, tissueBankAdd_DTO.TransactionId, tissueBankAdd_DTO.AuthTransactionId, tissueBankAdd_DTO.AuthCode, tissueBankAdd_DTO.StatusId, tissueBankAdd_DTO.TransactionCompleteDate, tissueBankAdd_DTO.ResponseBody, out transaction);

                    tbApiModel.ReturnMessage = transaction.ReturnMessage;
                    tbApiModel.ReturnStatus  = transaction.ReturnStatus;
                }
                else
                {
                    //get status from database for Success
                    status = statusBusinessService.GetStatusByStatusName("Error");

                    if (response.MessageCode == null)
                    {
                        response.MessageCode = "Error Code from authorize.net is null.";
                    }

                    if (response.Message == null)
                    {
                        response.Message = "Response from authorize.net is null.";
                    }

                    //if response is null then log error and update transaction too.
                    string errorMessage = errorBusinessService.Error_Create(status.StatusId, response.Message, "", TransactionId, tissueBankAdd_DTO.UserId, response.MessageCode);

                    if (response.MessageCode == "E00039")
                    {
                        tbApiModel.ReturnMessage.Add("Information that you have entered is already exist. Please contact Administrator.");
                    }
                    else
                    {
                        tbApiModel.ReturnMessage.Add(response.Message);
                    }
                    tbApiModel.ReturnStatus = transaction.ReturnStatus = false;
                }
            }
            else
            {
                tbApiModel.ReturnStatus  = transaction.ReturnStatus = false;
                tbApiModel.ReturnMessage = transaction.ReturnMessage;
            }

            if (transaction.ReturnStatus == false)
            {
                tbApiModel.ValidationErrors = transaction.ValidationErrors;
                return(Request.CreateResponse <TissueBankApiModel>(HttpStatusCode.BadRequest, tbApiModel));
            }
            else
            {
                return(Request.CreateResponse <TissueBankApiModel>(HttpStatusCode.OK, tbApiModel));
            }
        }
コード例 #6
0
        public HttpResponseMessage Put(TissueBankUpdate_DTO tissueBankUpdate_DTO)
        {
            //return Request.CreateResponse(HttpStatusCode.OK, 1);

            // Initialisation
            bool AuthResponse = false;
            TransactionalInformation transaction = new TransactionalInformation();
            TissueBankApiModel       tbApiModel  = new TissueBankApiModel();
            Status status = new Status();

            TissueBankBusinessService  tissueBankBusinessService  = new TissueBankBusinessService(tbDataService);
            TransactionBusinessService transactionBusinessService = new TransactionBusinessService(transactionDataService);
            ErrorBusinessService       errorBusinessService       = new ErrorBusinessService(errorDataService);
            StatusBusinessService      statusBusinessService      = new StatusBusinessService(statusDataService);
            StateBusinessService       stateBusinessService       = new StateBusinessService(stateDataService);
            CityBusinessService        cityBusinessService        = new CityBusinessService(cityDataService);

            //get state
            TransactionalInformation TempTransaction = new TransactionalInformation();
            State BillingState = stateBusinessService.GetStateById(tissueBankUpdate_DTO.BillingStateId, out TempTransaction);
            City  BillingCity  = cityBusinessService.GetCityById(tissueBankUpdate_DTO.BillingCityId, out TempTransaction);

            tissueBankUpdate_DTO.BillingCity  = BillingCity.CityName;
            tissueBankUpdate_DTO.BillingState = BillingState.StateName;

            //check TB registration request
            if (tissueBankBusinessService.CheckTissueBank_Update(tissueBankUpdate_DTO.TissueBankName, tissueBankUpdate_DTO.ContactPersonFirstName, tissueBankUpdate_DTO.ContactPersonLastName, tissueBankUpdate_DTO.ContactPersonNumber, tissueBankUpdate_DTO.ContactPersonEmailId, tissueBankUpdate_DTO.FaxNumber, tissueBankUpdate_DTO.TissueBankEmailId, tissueBankUpdate_DTO.BusinessURL, tissueBankUpdate_DTO.TissueBankAddress, tissueBankUpdate_DTO.CityId, tissueBankUpdate_DTO.ZipCode, tissueBankUpdate_DTO.CustomerServiceLandLineNumber, tissueBankUpdate_DTO.TaxPayerId, tissueBankUpdate_DTO.TissueBankStateLicense, tissueBankUpdate_DTO.AATBLicenseNumber, tissueBankUpdate_DTO.AATBExpirationDate, tissueBankUpdate_DTO.AATBAccredationDate, tissueBankUpdate_DTO.CreditCardNumber, tissueBankUpdate_DTO.CustomerProfileId, tissueBankUpdate_DTO.CustomerPaymentProfileIds, tissueBankUpdate_DTO.BillingAddress, tissueBankUpdate_DTO.BillingCityId, tissueBankUpdate_DTO.BillingZipCode, tissueBankUpdate_DTO.BillingFaxNumber, tissueBankUpdate_DTO.BillingEmailId, tissueBankUpdate_DTO.BillingContactNumber, tissueBankUpdate_DTO.UserId, tissueBankUpdate_DTO.TissueBankId, tissueBankUpdate_DTO.TransactionId, tissueBankUpdate_DTO.AuthTransactionId, tissueBankUpdate_DTO.AuthCode, tissueBankUpdate_DTO.StatusId, tissueBankUpdate_DTO.TransactionCompleteDate, tissueBankUpdate_DTO.ResponseBody, tissueBankUpdate_DTO.OperationType, out transaction))
            {
                // if response is not null then only save tissue bank detail in database and update transaction too.
                if (tissueBankUpdate_DTO.OperationType == "UpdateTissueBankDetail")
                {
                    AuthResponse = UpdateCustomerProfile(tissueBankUpdate_DTO);
                }
                else
                {
                    AuthResponse = UpdateCustomerPaymentProfile(tissueBankUpdate_DTO);
                }

                if (AuthResponse == true)
                {
                    //get status from database for Success
                    status = statusBusinessService.GetStatusByStatusName("Success");

                    tissueBankUpdate_DTO.CreditCardNumber = tissueBankUpdate_DTO.CreditCardNumber.Substring(tissueBankUpdate_DTO.CreditCardNumber.Length - 4);
                    tissueBankUpdate_DTO.CreditCardType   = 0;
                    tissueBankUpdate_DTO.CardCode         = "";
                    tissueBankUpdate_DTO.ExpiryDate       = "";

                    //update tissue bank
                    tissueBankBusinessService.TissueBank_Update(tissueBankUpdate_DTO.TissueBankName, tissueBankUpdate_DTO.ContactPersonFirstName, tissueBankUpdate_DTO.ContactPersonLastName, tissueBankUpdate_DTO.ContactPersonNumber, tissueBankUpdate_DTO.ContactPersonEmailId, tissueBankUpdate_DTO.FaxNumber, tissueBankUpdate_DTO.TissueBankEmailId, tissueBankUpdate_DTO.BusinessURL, tissueBankUpdate_DTO.TissueBankAddress, tissueBankUpdate_DTO.CityId, tissueBankUpdate_DTO.ZipCode, tissueBankUpdate_DTO.CustomerServiceLandLineNumber, tissueBankUpdate_DTO.TaxPayerId, tissueBankUpdate_DTO.TissueBankStateLicense, tissueBankUpdate_DTO.AATBLicenseNumber, tissueBankUpdate_DTO.AATBExpirationDate, tissueBankUpdate_DTO.AATBAccredationDate, tissueBankUpdate_DTO.CreditCardNumber, tissueBankUpdate_DTO.CustomerProfileId, tissueBankUpdate_DTO.CustomerPaymentProfileIds, tissueBankUpdate_DTO.BillingAddress, tissueBankUpdate_DTO.BillingCityId, tissueBankUpdate_DTO.BillingZipCode, tissueBankUpdate_DTO.BillingFaxNumber, tissueBankUpdate_DTO.BillingEmailId, tissueBankUpdate_DTO.BillingContactNumber, tissueBankUpdate_DTO.UserId, tissueBankUpdate_DTO.TissueBankId, tissueBankUpdate_DTO.TransactionId, tissueBankUpdate_DTO.AuthTransactionId, tissueBankUpdate_DTO.AuthCode, tissueBankUpdate_DTO.StatusId, tissueBankUpdate_DTO.TransactionCompleteDate, tissueBankUpdate_DTO.ResponseBody, tissueBankUpdate_DTO.OperationType, out transaction);

                    tbApiModel.ReturnMessage = transaction.ReturnMessage;
                    tbApiModel.ReturnStatus  = transaction.ReturnStatus;
                }
                else
                {
                    tbApiModel.ReturnStatus = transaction.ReturnStatus = false;
                    tbApiModel.ReturnMessage.Add("Authorize .Net operation failed.");
                }
            }
            else
            {
                tbApiModel.ReturnStatus  = transaction.ReturnStatus = false;
                tbApiModel.ReturnMessage = transaction.ReturnMessage;
            }

            if (transaction.ReturnStatus == false)
            {
                tbApiModel.ValidationErrors = transaction.ValidationErrors;
                return(Request.CreateResponse <TissueBankApiModel>(HttpStatusCode.BadRequest, tbApiModel));
            }
            else
            {
                return(Request.CreateResponse <TissueBankApiModel>(HttpStatusCode.OK, tbApiModel));
            }
        }