Example #1
0
        public void ShouldReturnFCAChargesWhenUnitsConsumedForSlab4()
        {
            FCAChargesBilled result   = fcaController.Calculation(301);
            double           actual   = result.FcaChargesTotal;
            double           expected = 39.13;

            Assert.AreEqual(expected, actual);
        }
        public FCAChargesBilled Calculation(int units)
        {
            FCAChargesBilled fcabilled = new FCAChargesBilled();

            fcabilled.fcacharges = units * 0.13;

            return(fcabilled);
        }
Example #3
0
        public FCAChargesBilled GetFcaSlabCharges()
        {
            string strResponseContent;

            using (StreamReader reader = new StreamReader(fFilePath))
            {
                strResponseContent = reader.ReadToEnd();
            }
            FCAChargesBilled fcaSlab = JsonConvert.DeserializeObject <FCAChargesBilled>(strResponseContent);

            return(fcaSlab);
        }
Example #4
0
        public bool SetFcaSlabCharges(FCAChargesBilled model)
        {
            bool dutySlabAdded = false;
            var  json          = System.IO.File.ReadAllText(fFilePath);
            var  fcaSlabList   = JsonConvert.DeserializeObject <List <FCAChargesBilled> >(json);

            if (model != null)
            {
                fcaSlabList.Add(model);
                System.IO.File.WriteAllText(fFilePath, JsonConvert.SerializeObject(fcaSlabList, Formatting.Indented));
                dutySlabAdded = true;
            }
            return(dutySlabAdded);
        }
Example #5
0
        public DutyFcaBilled DutyChargesCalculation1(int units)
        {
            DutyFcaBilled     dutyModel = new DutyFcaBilled();
            DutyChargesBilled dtySlab   = GetDutySlabCharges();
            FCAChargesBilled  fcaSlab   = GetFcaSlabCharges();

            dutyModel.DutyChargesBilled = new DutyChargesBilled();
            dutyModel.FCAChargesBilled  = new FCAChargesBilled();

            if (units == 0)
            {
                dutyModel.DutyChargesBilled.SlabDutyCharges  = 0;
                dutyModel.DutyChargesBilled.FcaDutyCharges   = 0;
                dutyModel.DutyChargesBilled.TotalDutyCharges = 0;
            }
            else if (units >= (int)slab1range.min && units <= (int)slab1range.max)
            {
                dutyModel.DutyChargesBilled.SlabDutyCharges = units * dtySlab.Slab1Rate;
                dutyModel.DutyChargesBilled.FcaDutyCharges  =
                    Math.Round((dutyModel.DutyChargesBilled.SlabDutyCharges * fcaSlab.Slab1Rate), 3);
            }
            else if (units >= (int)slab2range.min && units <= (int)slab2range.max)
            {
                dutyModel.DutyChargesBilled.SlabDutyCharges = (50 * dtySlab.Slab1Rate)
                                                              + ((units - 50) * dtySlab.Slab2Rate);
                dutyModel.DutyChargesBilled.FcaDutyCharges =
                    Math.Round((dutyModel.DutyChargesBilled.SlabDutyCharges * fcaSlab.Slab2Rate), 3);
            }
            else if (units >= (int)slab3range.min && units <= (int)slab3range.max)
            {
                dutyModel.DutyChargesBilled.SlabDutyCharges = (50 * dtySlab.Slab1Rate)
                                                              + (100 * dtySlab.Slab2Rate) + ((units - 150) * dtySlab.Slab3Rate);
                dutyModel.DutyChargesBilled.FcaDutyCharges =
                    Math.Round((dutyModel.DutyChargesBilled.SlabDutyCharges * fcaSlab.Slab3Rate), 3);
            }
            else if (units >= (int)slab4range.min)
            {
                dutyModel.DutyChargesBilled.SlabDutyCharges =
                    (50 * dtySlab.Slab1Rate) + (100 * dtySlab.Slab2Rate)
                    + (150 * dtySlab.Slab3Rate) + (units - 300) * dtySlab.Slab1Rate;
                dutyModel.DutyChargesBilled.FcaDutyCharges =
                    Math.Round((dutyModel.DutyChargesBilled.SlabDutyCharges * fcaSlab.Slab4Rate), 3);
            }
            dutyModel.DutyChargesBilled.SlabDutyCharges  = Math.Round(dutyModel.DutyChargesBilled.SlabDutyCharges, 3);
            dutyModel.DutyChargesBilled.TotalDutyCharges = Math.Round((dutyModel.DutyChargesBilled.SlabDutyCharges + dutyModel.DutyChargesBilled.FcaDutyCharges), 3);
            return(dutyModel);
        }
        public FCAChargesBilled callwebapi(string parameters)
        {
            using (var httpClient = new HttpClient())
            {
                using (var response = httpClient.GetAsync(parameters).Result)
                {
                    if (response.IsSuccessStatusCode)
                    {
                        //string apiResponse = response.Content.ReadAsStringAsync().Result;
                        //expectedresult = Convert.ToDouble(apiResponse);

                        string apiResponse = response.Content.ReadAsStringAsync().Result;
                        expectedresult = JsonConvert.DeserializeObject <FCAChargesBilled>(apiResponse);
                        fcacharges     = expectedresult.fcacharges;
                    }
                }
            }
            return(expectedresult);
        }
Example #7
0
        public FCAChargesBilled FcaChargesCalculation(int units)
        {
            FCAChargesBilled fcaSlabRate = GetFcaSlabCharges();
            FCAChargesBilled fcaModel    = new FCAChargesBilled();

            if (units == 0)
            {
                fcaModel.FcaChargesTotal = 0;
            }
            else if (units >= (int)slab1range.min && units <= (int)slab1range.max)
            {
                fcaModel.Slab1FcaCharges = units * fcaSlabRate.Slab1Rate;
                fcaModel.FcaChargesTotal = fcaModel.Slab1FcaCharges;
            }
            else if (units >= (int)slab2range.min && units <= (int)slab2range.max)
            {
                fcaModel.Slab1FcaCharges = (50 * fcaSlabRate.Slab1Rate);
                fcaModel.Slab2FcaCharges = ((units - 50) * fcaSlabRate.Slab2Rate);
                fcaModel.FcaChargesTotal = (fcaModel.Slab1FcaCharges + fcaModel.Slab2FcaCharges);
            }
            else if (units >= (int)slab3range.min && units <= (int)slab3range.max)
            {
                fcaModel.Slab1FcaCharges = (50 * fcaSlabRate.Slab1Rate);
                fcaModel.Slab2FcaCharges = (100 * fcaSlabRate.Slab2Rate);
                fcaModel.Slab3FcaCharges = ((units - 150) * fcaSlabRate.Slab3Rate);
                fcaModel.FcaChargesTotal = (fcaModel.Slab1FcaCharges + fcaModel.Slab2FcaCharges + fcaModel.Slab3FcaCharges);
            }
            else if (units >= (int)slab4range.min)
            {
                fcaModel.Slab1FcaCharges = (50 * fcaSlabRate.Slab1Rate);
                fcaModel.Slab2FcaCharges = (100 * fcaSlabRate.Slab2Rate);
                fcaModel.Slab3FcaCharges = (150 * fcaSlabRate.Slab3Rate);
                fcaModel.Slab4FcaCharges = ((units - 300) * fcaSlabRate.Slab4Rate);
                fcaModel.FcaChargesTotal = (fcaModel.Slab1FcaCharges + fcaModel.Slab2FcaCharges + fcaModel.Slab3FcaCharges + fcaModel.Slab4FcaCharges);
            }
            fcaModel.FcaChargesTotal = Math.Round((fcaModel.FcaChargesTotal), 3);
            return(fcaModel);
        }
Example #8
0
 public bool SetCharges([FromBody] FCAChargesBilled fModel)
 {
     return(fcaCharges.SetFcaSlabCharges(fModel));
 }
Example #9
0
        public FCAChargesBilled Calculation(int units)
        {
            FCAChargesBilled fcaModel = fcaCharges.FcaChargesCalculation(units);

            return(fcaModel);
        }
 public void WhenTheStateMOGElectricityBillGetsGenerated()
 {
     //   webapi = webapi + "FCACalculation?units=" + Units;
     expectedresult = callwebapi(webapi);
 }
Example #11
0
 public void WhenTheStateXOZElectricityBillGetsGenerated()
 {
     expectedresult  = JsonConvert.DeserializeObject <FCAChargesBilled>(apiResponse);
     fcachargestotal = expectedresult.FcaChargesTotal;
 }