internal CostEstimate GetCostEstimateFor(Carrier carrier, Invoice invoice, Dimensions dimensions, float[] parcelWeights)
        {
            int numParcels = parcelWeights.Length;
            CostEstimate estimate = new CostEstimate();

            double weightTotal = 0.0f, sizeTotal = 0.0f;

            string new_temp_city = invoice.InvoiceCustomer.City;
            int parcelNumber = 1;

            //int numSizeWeights = txtBox_input_dimensions.Text == "" ? 0 : txtBox_input_dimensions.Text.Split('/').Length;

            // Split the weights and do separate checks for each
            foreach (float weight in parcelWeights)
            {
                if (weight > MAXIMUM_WEIGHT)
                {
                    throw new PricingException($"Parcel weight is larger than {MAXIMUM_WEIGHT}KGs!");
                }

                Parcel p = new Parcel(weight, parcelNumber, 0.0d, numParcels);
                p.Size = dimensions;

                API.InvoicesAPI.AddParcelToInvoice(invoice, p);

                float sizeWeight = p.getSizeWeight() * carrier.DimensionWeightRate;

                weightTotal += GetCostEstimate(carrier, p, invoice);
                sizeTotal += sizeWeight == 0 ? 0.0f : GetCostEstimateByWeight(sizeWeight, carrier, p, invoice);

                parcelNumber++;
            }

            return estimate;
        }
        public IActionResult Create([FromBody] CostEstimate costEstimate)
        {
            var res = _costEstimate.add(costEstimate);

            if (res == true)
            {
                return(CreatedAtRoute("CostEstimateById", new { Controller = "CostEstimate", id = costEstimate.CostEstimateId }, costEstimate));
            }
            return(StatusCode(500));
        }
Exemple #3
0
 public bool add(CostEstimate costEstimate)
 {
     try
     {
         _context.CostEstimates.Add(costEstimate);
         _context.SaveChanges();
     }
     catch (Exception e)
     {
         Console.WriteLine(e.StackTrace);
         return(false);
     }
     return(true);
 }
Exemple #4
0
 public bool update(int id, CostEstimate costEstimate)
 {
     costEstimate.CostEstimateId = id;
     try
     {
         _context.CostEstimates.Update(costEstimate);
         _context.SaveChanges();
     }
     catch (Exception e)
     {
         Console.WriteLine(e.StackTrace);
         return(false);
     }
     return(true);
 }
Exemple #5
0
        private async Task GetCostEstimate(BasicGeoposition start, BasicGeoposition end, LyftConstants.RideType rideType)
        {
            var costEstimates = await AppConstants.ShyftClient.RetrieveRideEstimates(start.Latitude, start.Longitude,
                                                                                     end.Latitude, end.Longitude,
                                                                                     rideType);

            foreach (var costEstimate in costEstimates)
            {
                if (costEstimate.RideType == rideType)
                {
                    currentCostEstimate = costEstimate;
                    costTextBlock.Text  = string.Empty;
                    if (!costEstimate.IsValidEstimate)
                    {
                        costTextBlock.Text = "Unknown cost!\n";
                    }
                    else
                    {
                        costTextBlock.Text = $"${costEstimate.EstimatedCostCentsMin / 100f}";
                        if (costEstimate.EstimatedCostCentsMin != costEstimate.EstimatedCostCentsMax)
                        {
                            costTextBlock.Text += $" - ${costEstimate.EstimatedCostCentsMax / 100f}";
                        }
                    }

                    if (costEstimate.PrimetimePercentage != "0%")
                    {
                        costTextBlock.Text += $"\nPrimetime: {costEstimate.PrimetimePercentage}";
                    }

                    TimeSpan timeEstimate = TimeSpan.FromSeconds(costEstimate.EstimatedDurationSeconds);
                    costTextBlock.Text += $"\n{Math.Round(timeEstimate.TotalMinutes)} min";
                    costTextBlock.Text += $"\n{costEstimate.EstimatedDistanceMiles} miles";
                    break;
                }
            }
        }
 public IActionResult Update(int id, [FromBody] CostEstimate costEstimate)
 {
     return(_costEstimate.update(id, costEstimate) ? new NoContentResult() : StatusCode(500));
 }