public IHttpActionResult PutBillModel(int id, BillModel billModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != billModel.id)
            {
                return(BadRequest());
            }

            BillModel billToChange = billService.UpdateBill(id, billModel);

            if (billToChange == null)
            {
                return(NotFound());
            }

            // The following two clauses are from the third iteration:
            if (billToChange.paymentMade)
            {
                // TODO vouchersService.CreateVoucher(updatedBill);
                VoucherModel newVoucher = voucherService.CreateVoucherAfterBillPayment(billToChange);

                emailsService.SendEmail(newVoucher);
            }

            if (billToChange.paymentCancelled)
            {
                // The service method I didn't know it's function
                offerService.UpdateOffer(billToChange.offerModel, false);
            }

            return(Ok(billToChange));
        }