public PurposeResponse PutPurpose(int purposeId, PurposeInfo purpose)
 {
     return(_gateway.Retrieve(client =>
     {
         var request = new RestRequest($"purposes/{purposeId}");
         request.AddSnakeCaseJsonParameter(purpose);
         return client.Put <PurposeResponse>(request);
     }));
 }
        public void test_fetching_purposes()
        {
            var service = new PurposesService(_gateway);

            var filter = new PurposesFilter
            {
                PageSize      = 10,
                PageNumber    = 1,
                EnabledFilter = true,
                //NameFilter = ""
            };

            var purposes = service.GetPurposes(filter);

            var newPurpose = new PurposeInfo
            {
                Name        = "My new purpose",
                Description = "My new purpose created via the Aplos API",
                IsEnabled   = true,
            };

            newPurpose.IncomeAccount.AccountNumber = 4000;
            newPurpose.Fund.Id = 173676;

            var postResult = service.PostPurpose(newPurpose);

            postResult.Data.Purpose.Name.Should().Be(newPurpose.Name);

            newPurpose.Name = "My renamed purpose";

            var putResult = service.PutPurpose(postResult.Data.Purpose.Id, newPurpose);

            putResult.Data.Purpose.Name.Should().Be(newPurpose.Name);

            var updatedPurpose = service.GetPurpose(putResult.Data.Purpose.Id);

            updatedPurpose.Data.Purpose.Name.Should().Be(newPurpose.Name);

            var deleteResult = service.DeletePurpose(postResult.Data.Purpose.Id);

            deleteResult.Message.Should().Contain(postResult.Data.Purpose.Id.ToString());

            var deletedPurpose = service.GetPurpose(putResult.Data.Purpose.Id);

            deletedPurpose.Data.Purpose.Should().BeNull();
            deletedPurpose.Meta.ResourceCount.Should().Be(0);
        }
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PurposeInfo obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }