Esempio n. 1
0
        public SettlementResponse Post(SettlementRequest req)
        {
            SettlementResponse response;
            string             defaultProtocol    = FondyConfig.Protocol;
            string             defaultContentType = FondyConfig.ContentType;

            FondyConfig.ContentType = "json";
            FondyConfig.Protocol    = "2.0";
            req.merchant_id         = FondyConfig.MerchantId;
            req.order_type          = "settlement";
            try
            {
                response = Client.Invoke <SettlementRequest, SettlementResponse>(req, req.ActionUrl);
            }
            catch (ClientException c)
            {
                response = new SettlementResponse {
                    Error = c
                };
            }

            if (response.data != null && FondyConfig.Protocol == "2.0")
            {
                FondyConfig.Protocol    = defaultProtocol;
                FondyConfig.ContentType = defaultContentType;
                return(JsonFormatter.ConvertFromJson <SettlementResponse>(response.data, true, "order"));
            }

            return(response);
        }
        public async Task<SettlementResponse> GetSettlement(String accessToken,
                                                            Guid estateId,
                                                            Guid? merchantId,
                                                            Guid settlementId,
                                                            CancellationToken cancellationToken)
        {
            SettlementResponse response = null;

            String requestUri = this.BuildRequestUrl($"/api/estates/{estateId}/settlements/{settlementId}?merchantId={merchantId}");

            try
            {
                // Add the access token to the client headers
                this.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

                // Make the Http Call here
                HttpResponseMessage httpResponse = await this.HttpClient.GetAsync(requestUri, cancellationToken);

                // Process the response
                String content = await this.HandleResponse(httpResponse, cancellationToken);

                // call was successful so now deserialise the body to the response object
                response = JsonConvert.DeserializeObject<SettlementResponse>(content);
            }
            catch(Exception ex)
            {
                // An exception has occurred, add some additional information to the message
                Exception exception = new Exception($"Error getting settlement id {settlementId} for estate [{estateId}]");

                throw exception;
            }

            return response;
        }
        public async Task <SettlementResponse> GetSettlementAsync(int id)
        {
            SettlementResponse settlement = new SettlementResponse();

            var sData = await _Context.Settlement.SingleOrDefaultAsync(c => c.SettlementId == id);

            settlement.Id = sData.SettlementId;
            var Pname = await _Context.User.SingleOrDefaultAsync(c => c.UserId == sData.PayerId);

            settlement.Payer = Pname.UserName;
            var Rname = await _Context.User.SingleOrDefaultAsync(c => c.UserId == sData.SharedMemberId);

            settlement.Receiver = Rname.UserName;

            if (sData.GroupId != null)
            {
                var Gname = await _Context.Group.SingleOrDefaultAsync(c => c.GroupId == sData.GroupId);

                settlement.GroupName = Gname.GroupName;
            }

            settlement.Amount = sData.TotalAmount;

            return(settlement);
        }
Esempio n. 4
0
        private int InsertDummySettlement()
        {
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            SettlementResponse   settlementResponse   = new SettlementResponse();
            //Test insert
            Settlement settlement = new Settlement();

            settlement.CicleId           = 1; //Assume we have a cicle with ID 1
            settlement.ProducerId        = 1; //Assume we have a producer with ID 1
            settlement.CashAdvancesTotal = 1000;
            settlement.Date               = DateTime.Now;
            settlement.CreditsTotal       = 2000;
            settlement.Paid               = false;
            settlement.WeightTicketsTotal = 2500;
            settlement.Total              = 5000;
            settlement.User               = "******"; //Assume we have a user with this ID
            settlement.WeightTicketsIds   = new System.Collections.ObjectModel.Collection <int>()
            {
                1
            };
            string     jsonSettlement = javaScriptSerializer.Serialize(settlement);
            HttpClient client         = new HttpClient();

            client.BaseAddress = new Uri(baseUrl);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token);
            HttpResponseMessage response = client.PostAsJsonAsync(insertAction, settlement).Result;

            Assert.IsTrue(response.IsSuccessStatusCode);
            settlementResponse = response.Content.ReadAsAsync <SettlementResponse>().Result;
            Assert.IsTrue(settlementResponse.Success);
            return(settlementResponse.Settlement.Id);
        }
Esempio n. 5
0
        public IHttpActionResult Add(Settlement settlement)
        {
            SettlementResponse response = new SettlementResponse();

            try
            {
                settlement.User = CurrentUserId;
                Settlement settlementSaved = settlementBL.InsertSettlement(settlement);
                response.Settlement = settlementSaved;
                response.Success    = true;
            }
            catch (SettlementException ex)
            {
                response.ErrorCode    = ex.Error;
                response.ErrorMessage = "Error. " + ex.Error.ToString();
                response.Settlement   = null;
                response.Success      = false;
            }
            catch (Exception ex)
            {
                response.ErrorMessage = "Error. " + ex.Message;
                response.Settlement   = null;
                response.Success      = false;
            }
            return(Ok(response));
        }
Esempio n. 6
0
        public void Create_Instant_Wallet_Settlement()
        {
            var request = new CreateInstantWalletSettlementRequest();

            SettlementResponse response = _craftgateClient.Settlement().CreateInstantWalletSettlement(request);

            Assert.NotNull(response.SettlementResultStatus);
        }
Esempio n. 7
0
        public void ModelFactory_ConvertFrom_SettlementModel_ModelIsNull_ModelConverted()
        {
            ModelFactory       factory  = new ModelFactory();
            SettlementModel    model    = null;
            SettlementResponse response = factory.ConvertFrom(model);

            response.ShouldBeNull();
        }
Esempio n. 8
0
        public void TestAddAndRemovePayment()
        {
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            SettlementPayment    payment = new SettlementPayment();
            int settlementId             = InsertDummySettlement();

            payment.SettlementId   = settlementId;
            payment.Description    = "Test description";
            payment.CheckOrVoucher = "101";
            payment.Date           = DateTime.Now;
            payment.PaymentType    = PaymentType.Cash;
            payment.Total          = 100;
            payment.User           = "******"; //Assume we have a user with this ID
            string     jsonSettlement = javaScriptSerializer.Serialize(payment);
            HttpClient client         = new HttpClient();

            client.BaseAddress = new Uri(baseUrl);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token);
            SettlementPaymentResponse settlementPaymentResponse = new SettlementPaymentResponse();
            //Add payment
            HttpResponseMessage response = client.PostAsJsonAsync(insertPaymentAction, payment).Result;

            Assert.IsTrue(response.IsSuccessStatusCode);
            settlementPaymentResponse = response.Content.ReadAsAsync <SettlementPaymentResponse>().Result;
            Assert.IsTrue(settlementPaymentResponse.Success);
            Assert.IsTrue(settlementPaymentResponse.Payment.Id > 0);
            //Get payments for settlement
            GetSettlementPaymentResponse getSettlementPaymentResponse = new GetSettlementPaymentResponse();
            string getAction = string.Format("{0}?settlementId={1}", getPaymentsAction, settlementId);

            response = client.GetAsync(getAction).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            getSettlementPaymentResponse = response.Content.ReadAsAsync <GetSettlementPaymentResponse>().Result;
            Assert.IsTrue(getSettlementPaymentResponse.Success);
            Assert.IsTrue(getSettlementPaymentResponse.Payments.Count > 0);
            //Remove all payments
            //Test delete
            response = client.PostAsJsonAsync(removePaymentsAction, new IdModel(settlementId)).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            settlementPaymentResponse = response.Content.ReadAsAsync <SettlementPaymentResponse>().Result;
            Assert.IsTrue(settlementPaymentResponse.Success);
            //Get payments, expecting 0
            getSettlementPaymentResponse = new GetSettlementPaymentResponse();
            response = client.GetAsync(getAction).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            getSettlementPaymentResponse = response.Content.ReadAsAsync <GetSettlementPaymentResponse>().Result;
            Assert.IsTrue(getSettlementPaymentResponse.Success);
            Assert.IsTrue(getSettlementPaymentResponse.Payments.Count == 0);
            //delete the dummy settlement
            response = client.PostAsJsonAsync(deleteAction, new IdModel(settlementId)).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            SettlementResponse settlementResponse = response.Content.ReadAsAsync <SettlementResponse>().Result;

            Assert.IsTrue(response.IsSuccessStatusCode);
        }
Esempio n. 9
0
        public void ModelFactory_ConvertFrom_SettlementModel_ModelConverted()
        {
            ModelFactory       factory  = new ModelFactory();
            SettlementResponse response = factory.ConvertFrom(TestData.SettlementModel);

            response.ShouldSatisfyAllConditions(r => r.SettlementDate.ShouldBe(TestData.SettlementModel.SettlementDate),
                                                r => r.SettlementId.ShouldBe(TestData.SettlementModel.SettlementId),
                                                r => r.NumberOfFeesSettled.ShouldBe(TestData.SettlementModel.NumberOfFeesSettled),
                                                r => r.ValueOfFeesSettled.ShouldBe(TestData.SettlementModel.ValueOfFeesSettled),
                                                r => r.IsCompleted.ShouldBe(TestData.SettlementModel.IsCompleted),
                                                r => r.SettlementFees.Count.ShouldBe(TestData.SettlementModel.SettlementFees.Count));
        }
Esempio n. 10
0
        private void DoRequest(SettlementRequest req)
        {
            var resp = new Settlement().Post(req);

            if (resp.Error != null)
            {
                DataError = resp.Error.ErrorMessage;
                RequestId = resp.Error.RequestId;
            }
            else
            {
                Data = resp;
            }
        }
Esempio n. 11
0
        public async Task <List <SettlementResponse> > GetGroupSettlementAsync(int Groupid)
        {
            List <SettlementResponse> settlements = new List <SettlementResponse>();
            var sData = await _Context.Settlement.Where(c => c.GroupId == Groupid).ToListAsync();

            for (var i = 0; i < sData.Count; i++)
            {
                var settle = new SettlementResponse();
                settle = await GetSettlementAsync(sData[i].SettlementId);

                settlements.Add(settle);
            }
            return(settlements);
        }
Esempio n. 12
0
        public async Task <List <SettlementResponse> > GetAllSettlementAsync(int id)
        {
            List <SettlementResponse> settlements = new List <SettlementResponse>();
            var sData = await _Context.Settlement.Where(c => c.PayerId == id || c.SharedMemberId == id).ToListAsync();

            for (var i = 0; i < sData.Count; i++)
            {
                var settle = new SettlementResponse();
                settle = await GetSettlementAsync(sData[i].SettlementId);

                settlements.Add(settle);
            }
            return(settlements);
        }
        public void TestClient()
        {
            SettlementResponse newResponse = new SettlementResponse();

            newResponse.SettlementId = "ABCD1234";
            newResponse.OrderId      = "DEFG5678";
            newResponse.CreatedAt    = "2038-01-19T03:14:07.000Z";
            newResponse.ExpiresAt    = "2038-01-27T03:14:07.000Z";
            VirtualCardSettlement casted = newResponse;

            Assert.True(casted.SettlementId.Equals("ABCD1234"));
            Assert.True(casted.OrderId.Equals("DEFG5678"));
            Assert.True(casted.CreatedAt.Equals("2038-01-19T03:14:07.000Z"));
            Assert.True(casted.ExpiresAt.Equals("2038-01-27T03:14:07.000Z"));
        }
        public async Task <List <SettlementResponse> > GetSettlementAsync(int Userid, int Friendid)
        {
            //return await _Context.Settlement.Where(c => (c.PayerId == Userid && c.SharedMemberId == Friendid)||(c.PayerId == Friendid && c.SharedMemberId == Userid)).ToListAsync();

            List <SettlementResponse> settlements = new List <SettlementResponse>();
            var sData = await _Context.Settlement.Where(c => (c.PayerId == Userid && c.SharedMemberId == Friendid) || (c.PayerId == Friendid && c.SharedMemberId == Userid)).ToListAsync();

            for (var i = 0; i < sData.Count; i++)
            {
                var settle = new SettlementResponse();
                settle = await GetSettlementAsync(sData[i].SettlementId);

                settlements.Add(settle);
            }

            return(settlements);
        }
Esempio n. 15
0
        public SettlementResponse ConvertFrom(SettlementModel model)
        {
            if (model == null)
            {
                return(null);
            }

            SettlementResponse response = new SettlementResponse
            {
                SettlementDate      = model.SettlementDate,
                IsCompleted         = model.IsCompleted,
                NumberOfFeesSettled = model.NumberOfFeesSettled,
                SettlementId        = model.SettlementId,
                ValueOfFeesSettled  = model.ValueOfFeesSettled,
            };

            model.SettlementFees.ForEach(f => response.SettlementFees.Add(this.ConvertFrom(f)));

            return(response);
        }
Esempio n. 16
0
        public IHttpActionResult Delete(IdModel id)
        {
            SettlementResponse response = new SettlementResponse();

            try
            {
                bool success = settlementBL.DeleteSettlement(id.Id);
                response.Success = success;
            }
            catch (SettlementException ex)
            {
                response.ErrorCode    = ex.Error;
                response.ErrorMessage = "Error. " + ex.Error.ToString();
                response.Settlement   = null;
                response.Success      = false;
            }
            catch (Exception ex)
            {
                response.ErrorMessage = "Error. " + ex.Message;
                response.Settlement   = null;
                response.Success      = false;
            }
            return(Ok(response));
        }
Esempio n. 17
0
        public void TestInsertUpdateGetAndDeleteSettlement()
        {
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            SettlementResponse   settlementResponse   = new SettlementResponse();
            //Test insert
            Settlement settlement = new Settlement();

            settlement.CicleId           = 1; //Assume we have a cicle with ID 1
            settlement.ProducerId        = 1; //Assume we have a producer with ID 1
            settlement.CashAdvancesTotal = 1000;
            settlement.Date               = DateTime.Now;
            settlement.CreditsTotal       = 2000;
            settlement.Paid               = false;
            settlement.WeightTicketsTotal = 2500;
            settlement.Total              = 5000;
            settlement.User               = "******"; //Assume we have a user with this ID
            settlement.WeightTicketsIds   = new System.Collections.ObjectModel.Collection <int>()
            {
                1
            };
            string     jsonSettlement = javaScriptSerializer.Serialize(settlement);
            HttpClient client         = new HttpClient();

            client.BaseAddress = new Uri(baseUrl);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token);
            HttpResponseMessage response = client.PostAsJsonAsync(insertAction, settlement).Result;

            Assert.IsTrue(response.IsSuccessStatusCode);
            settlementResponse = response.Content.ReadAsAsync <SettlementResponse>().Result;
            Assert.IsTrue(settlementResponse.Success);
            //Test update
            settlement      = settlementResponse.Settlement;
            settlement.Paid = true;
            response        = client.PostAsJsonAsync(updateAction, settlement).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            settlementResponse = response.Content.ReadAsAsync <SettlementResponse>().Result;
            Assert.IsTrue(settlementResponse.Success);
            //TODO VERIFY TICKETS CHANGED PAID STATUS
            //Test get all
            GetSettlementResponse getSettlementResponse = new GetSettlementResponse();

            response = client.GetAsync(getAllAction).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            getSettlementResponse = response.Content.ReadAsAsync <GetSettlementResponse>().Result;
            Assert.IsTrue(getSettlementResponse.Success);
            Assert.IsTrue(getSettlementResponse.Settlements.Count > 0);
            //Test get by Id
            string getByIdUrl = string.Format("{0}?id={1}", getByIdAction, settlement.Id.ToString());

            response = client.GetAsync(getByIdUrl).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            getSettlementResponse = response.Content.ReadAsAsync <GetSettlementResponse>().Result;
            Assert.IsTrue(getSettlementResponse.Success);
            Assert.IsTrue(getSettlementResponse.Settlements.Count > 0);
            //Test delete
            response = client.PostAsJsonAsync(deleteAction, new IdModel(settlementResponse.Settlement.Id)).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            settlementResponse = response.Content.ReadAsAsync <SettlementResponse>().Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
        }