AssetManager.Controllers.ChargesController.Post C# (CSharp) Method

Post() public method

Create a new charge and store in the DB POST api/charges
public Post ( Charge value, int assetID ) : Object
value AssetManager.Model.Charge
assetID int
return Object
        public Object Post(Charge value, int assetID)
        {
            var owner = ObtainCurrentOwner();
            var asset = GetAsset(assetID,owner);
            value.Id = asset.GenerateChargeId();

            if (asset.Charges == null)
            {
                asset.Charges = new List<Charge>();
            }

            asset.Charges.Add(value);

            return GetResponse(value, asset, true);
        }

Usage Example

        public void Post_Test_NewCharge()
        {
            ChargesController controler = new ChargesController();
            controler.RavenSession = RavenSession;

            RavenSession.Store(new Owner { Email = "*****@*****.**", Id = 1, Name = "Tester", UserName = "******" });
            RavenSession.Store(new Asset { OwnerId = 1, Id = 1, Name = "Asset1" });

            RavenSession.SaveChanges();

            var newCharge = new Charge
            {
                AccountNumber = "1234",
                Amount = 500,
                Automatic = false,
                Counterparty = "Counterparty",
                Name = "Name",
                Notes = "Notes",
                PaymentDay = 1,
                Unit = 2,

            };
            controler.RavenSession = RavenSession;
            var result = controler.Post(newCharge, 1);

            RavenSession.SaveChanges();

            var charge = RavenSession.Load<Asset>(1).Charges.First();
            Assert.AreEqual(charge.Id, 1);
            Assert.AreEqual(charge.Name, "Name");
            Assert.AreEqual(charge.Notes, "Notes");
            Assert.AreEqual(charge.PaymentDay, 1);
            Assert.AreEqual(charge.Unit, 2);
            Assert.AreEqual(charge.Amount, 500);
        }