public IHttpActionResult PutBilling_Rules(int id, Billing_Rules billing_Rules)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

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

            

            try
            {
                _Billing_RulesService.Update(billing_Rules);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!_Billing_RulesService.Exists(id) )
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }
        public IHttpActionResult Post(Billing_Rules Billing_Rules)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            _Billing_RulesService.Create (Billing_Rules);
             

            return Created(Billing_Rules);
        }
        public async Task<ActionResult> Index(int? Id)
        {
            Billing_Rules billing_rules = new Billing_Rules();
            if (Id != null)
                billing_rules =await _Billing_RuleRepository.GetById(Id.Value.ToString ());

            await GetType(billing_rules);
            var list =await _Billing_RuleRepository.GetAll();

            Billing_RulesViewModel model = new Billing_RulesViewModel { List = list, Billing_Rule = billing_rules };
            return View(model);
        }
        public IHttpActionResult PostBilling_Rules(Billing_Rules billing_Rules)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            _Billing_RulesService.Create(billing_Rules);
        

            return CreatedAtRoute("DefaultApi", new { id = billing_Rules.Id }, billing_Rules);
        }
 private async Task GetType(Billing_Rules billing_Rules)
 {
     ViewBag.ApplyAtId = new SelectList(await _ApplyAtRepository.GetAllEnabled(), "Id", "Name", billing_Rules.ApplyAtId);
     ViewBag.ChargesId = new SelectList(await _ChargeRepository.GetAllEnabled(), "Id", "Name", billing_Rules.ChargesId);
     ViewBag.ChargesTypeId = new SelectList(await _ChargesTypeRepository.GetAllEnabled(), "Id", "Name", billing_Rules.ChargesTypeId);
 }