internal async Task <IEnumerable <Fuel> > GetCompanyCityFuelPrice(string company, string city) { ReadCSV cachedCSV = new ReadCSV(); var cachedFuel = cachedCSV.Read(); // cachedFuel.ForEach(x => System.Console.WriteLine(x.City)); if (cachedFuel.Count > 0 && cachedFuel.First().EffectiveDate.AddDays(1) > DateTime.Today) { if (city != null) { return(cachedFuel.Where(f => f.City == city).ToList().OrderBy(o => o.City)); } return(cachedFuel.OrderBy(o => o.City)); } else { using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var result = await client.PostAsync("https://www.bharatpetroleum.com/AjaxSmartFleetMap.aspx/SetSmartFleetMap", new StringContent("", Encoding.UTF8, "application/json")); var responseString = await result.Content.ReadAsStringAsync(); JObject rss = JObject.Parse(responseString); JArray jArray = (JArray)rss.SelectToken("d"); List <Fuel> fuel = jArray.Select(a => new Fuel { Company = "Bharat Petroleum", City = a.SelectToken("city").Value <string>(), EffectiveDate = DateTime.ParseExact(a.SelectToken("effDate").Value <string>().Replace(" Hrs", ""), "dd-MM-yyyy hh:mm", CultureInfo.InvariantCulture), FuelType = ((JArray)a.SelectToken("productList")).Select(f => new FuelType { Type = f.SelectToken("name").Value <string>(), Price = f.SelectToken("rsp").Value <decimal?>() }).ToList() }) .ToList(); if (city != null) { fuel = fuel.Where(f => f.City == city).ToList(); } WriteCSV csv = new WriteCSV(); csv.Write(fuel); return(fuel.OrderBy(o => o.City)); } } }
private void Export() { try { WriteCSV writeCSV = new WriteCSV(); writeCSV = _plcServices.FillCSV(plc, data); var param = _plcServices.GetCSVData((uint)writeCSV.Meters, (ushort)writeCSV.FabricationOrder, (uint)writeCSV.ActualRPM, (ushort)writeCSV.CreelPosition, (uint)writeCSV.ActualTPM, (ushort)writeCSV.Mmin, (uint)writeCSV.Hores, (uint)writeCSV.Minutes); _plcServices.SaveCSV(param, path); } catch (Exception) { ShowDialog(" PLC connection not found "); } }
private void buttonLuoExcel_Click(object sender, RoutedEventArgs e) { labelFileCreated.Content = ""; if (DatePickerStart.SelectedDate >= DatePickerEnd.SelectedDate) { labelEndDateTooLow.Content = "Loppu pvm pitää olla suurempi kuin alku pvm"; } else if (listBoxPlaces.Items.Count == 0) { labelNoPlacesError.Content = "Vähintään yksi paikka pitää olla annettu"; } else if (labelTotalDays.Content.ToString() != "" || DatePickerStart.SelectedDate == null || DatePickerEnd.SelectedDate == null) { labelNoPlacesError.Content = "Tarkista päivämäärät"; } else { labelEndDateTooLow.Content = ""; labelNoPlacesError.Content = ""; labelFileCreated.Content = "Luodaan tiedostoa..."; string[] places = new string[listBoxPlaces.Items.Count]; for (int i = 0; i < listBoxPlaces.Items.Count; i++) { places[i] = listBoxPlaces.Items.GetItemAt(i).ToString(); } string file = FileDialog.AskFile(places, Convert.ToDateTime(DatePickerStart.SelectedDate), Convert.ToDateTime(DatePickerEnd.SelectedDate)); string[] urls = ParseUrl.GetUrl(textBoxAPIKey.Text, Convert.ToDateTime(DatePickerStart.SelectedDate), Convert.ToDateTime(DatePickerEnd.SelectedDate), places, textBoxTimeStep.Text); List <Temperature> measurements = new List <Temperature>(); //measurements = ReadData.ReadTemperature(measurements, urls); ReadData.ReadTemperature(measurements, urls); WriteCSV.Write(measurements, file); labelFileCreated.Content = "Tiedosto luotu"; } }
public WriteCSV FillCSV(Plc plc, RDBTeufelberger data) { WriteCSV model = new WriteCSV(); PLCMethods _plcMethods = new PLCMethods(); model.FabricationOrder = _plcMethods.FillInt(plc, data.CodeOrder); model.CreelPosition = _plcMethods.FillInt(plc, data.CodePosition); model.Meters = _plcMethods.FillInt(plc, data.CodeMeters); model.ActualRPM = _plcMethods.FillFloat(plc, data.CodeRPM); model.ActualTPM = _plcMethods.FillFloat(plc, data.CodeTPM); model.Cartoiculo = _plcMethods.FillString(plc, data.ArticleDB, data.ArticlePosition, data.ArticleLenght); model.Minutes = _plcMethods.FillDoule(plc, data.CodeMinutes); model.Hores = _plcMethods.FillDoule(plc, data.CodeHours); return(model); }
private void Save_Click(object sender, EventArgs e) { string[] msg; WriteCSV escritor = new WriteCSV(); if (ssl.Checked == true) { msg = new string[] { Server.Text + ";" + lSMTP.Text + ";" + pSMTP.Text + ";" + lPOP.Text + ";" + pPOP.Text + ";Y;" } } ; else { msg = new string[] { Server.Text + ";" + lSMTP.Text + ";" + pSMTP.Text + ";" + lPOP.Text + ";" + pPOP.Text + ";N;" } }; escritor.WriteToCSV(msg); }
public void TestMethodVersion1Dat() { ArrayList exoplanetArray = null; ReadCSV.Read(Constant.UnitTestDATFolder + "Version1.dat"); exoplanetArray = ReadXML.Read(Constant.UnitTestDATFolder + "Version1.xml", true); WriteCSV.Write(Constant.UnitTestDATFolder + "Version1TestResults.dat", exoplanetArray, Constant.Version2); ArrayList exoplanetArray2 = null; ReadCSV.Read(Constant.UnitTestDATFolder + "Version1TestResults.dat"); exoplanetArray2 = ReadXML.Read(Constant.UnitTestDATFolder + "Version1TestResults.xml", true); Assert.IsNotNull(exoplanetArray); Assert.IsNotNull(exoplanetArray2); Assert.AreEqual(exoplanetArray.Count, exoplanetArray2.Count); Assert.AreEqual(Exoplanets.AreEqual(exoplanetArray, exoplanetArray2), true); }
public static Solution newPackAlternate(List <Item> items, Container container, List <PotentialPoint> potentialPointsSx, List <PotentialPoint> potentialPointsDx) { List <Item> res = new List <Item>(); List <Item> retry = new List <Item>(); PotentialPoint cp = new PotentialPoint(0, 0, 0, container.getWidth(), container.getHeight(), container.getDepth()); PotentialPoint.addPointToPotentialPoints(cp, potentialPointsSx); PotentialPoint cp2 = new PotentialPoint(container.getWidth(), 0, 0, container.getWidth(), container.getHeight(), container.getDepth()); PotentialPoint.addPointToPotentialPoints(cp2, potentialPointsDx); double minHeight = Functions.getSmallestHeight(items); /*Add this method somewhere else, or make GroupItems work properly so you don't need this calculation here*/ List <Item> zeroPriorityList = new List <Item>(); List <Item> onePriorityList = new List <Item>(); List <Item> otherPriorityList = new List <Item>(); int countZeroPriority = 0, countOnePriority = 0, countOtherPriority = 0, loadedCount = 0; foreach (Item i in items) { if (i.getPriority() == 0) { zeroPriorityList.Add(i); countZeroPriority++; } else if (i.getPriority() == 1) { onePriorityList.Add(i); countOnePriority++; } else { otherPriorityList.Add(i); countOtherPriority++; } } zeroPriorityList = zeroPriorityList .OrderBy(i => i.getCustomer()) .ThenByDescending(i => i.getTaxability()) .ToList(); onePriorityList = onePriorityList .OrderBy(i => i.getCustomer()) .ThenByDescending(i => i.getTaxability()) .ToList(); foreach (Item i in zeroPriorityList) { double r = StaticRandom.NextDouble(); if (r < 0.5) { if (container.checkAddItemRevisited(i, potentialPointsSx, minHeight)) { container.addItem(i); res.Add(i); loadedCount += 1; } else { retry.Add(i); } } else { if (container.checkAddItemRevisitedRight(i, potentialPointsDx, minHeight)) { container.addItem(i); res.Add(i); loadedCount += 1; } else { retry.Add(i); } } } WriteCSV.WriteList(items); foreach (Item i in onePriorityList) { double r = StaticRandom.NextDouble(); if (r < 0.5) { if (!(res.Contains(i)) && !(i.checkSlimItem()) && (container.checkAddItemRevisited(i, potentialPointsSx, minHeight))) { container.addItem(i); res.Add(i); } else { retry.Add(i); } } else { if (!(res.Contains(i)) && !(i.checkSlimItem()) && (container.checkAddItemRevisitedRight(i, potentialPointsDx, minHeight))) { container.addItem(i); res.Add(i); } else { retry.Add(i); } } } foreach (Item i in retry) { if (!(res.Contains(i)) && (container.checkAddItemRevisited(i, potentialPointsSx, minHeight))) { container.addItem(i); res.Add(i); } } foreach (Item i in otherPriorityList) { double r = StaticRandom.NextDouble(); if (r < 0.5) { if (!(res.Contains(i)) && !(i.checkSlimItem()) && (container.checkAddItemRevisited(i, potentialPointsSx, minHeight))) { container.addItem(i); res.Add(i); } else { retry.Add(i); } } else { if (!(res.Contains(i)) && !(i.checkSlimItem()) && (container.checkAddItemRevisitedRight(i, potentialPointsDx, minHeight))) { container.addItem(i); res.Add(i); } else { retry.Add(i); } } } // IMPORTANT for feasbility check // container.loadedItemsInZone(res); List <PotentialPoint> potentialPoints = potentialPointsSx; foreach (PotentialPoint s in potentialPointsDx) { potentialPoints.Add(s); } Solution sol = new Solution(res, container, potentialPoints); /*Print for test best solution*/ double myResult, upperBound; myResult = Functions.objFunction(res); upperBound = Functions.objFunction(items); /* System.err.println("ALT: Result: " + (int)((myResult/upperBound)*100) + "%, " + "" + sol.zoneWeightFeasibility(container) + * ", obstacles: " + sol.checkUnloadingOrderFeasibilityWithCounter() + * ", taxability: " + sol.getTotalTaxability() + * ", Weight: " + sol.getLoadedWeight() + ", Vol: " + sol.getVolumeOccupied() + * ", x deviation: " + Utils.Functions.dev_x(res, container));*/ return(sol); }
/** * * @param items * @param container * @param potentialPoints * @return * @throws IOException */ public static Solution divideEtPack(List <Item> items, Container container, List <PotentialPoint> potentialPoints) { List <Item> res = new List <Item>(); List <Item> retry = new List <Item>(); PotentialPoint cp = new PotentialPoint(0, 0, 0, container.getWidth(), container.getHeight(), container.getDepth()); PotentialPoint.addPointToPotentialPoints(cp, potentialPoints); PotentialPoint cp2 = new PotentialPoint(container.getWidth(), 0, 0, container.getWidth(), container.getHeight(), container.getDepth()); PotentialPoint.addPointToPotentialPoints(cp2, potentialPoints); double minHeight = Functions.getSmallestHeight(items); /*Add this method somewhere else, or make GroupItems work properly so you don't need this calculation here*/ List <Item> itemPriorityZero = new List <Item>(); foreach (Item i in items) { if (i.getPriority() == 0) { itemPriorityZero.Add(i); } } int sizePriorityZero = itemPriorityZero.Count; int count = 0; itemPriorityZero.Sort((x, y) => { if (x.getVolume() > y.getVolume()) { return(1); } else if (x.getVolume() == y.getVolume()) { return(0); } return(-1); }); foreach (Item i in itemPriorityZero) { if (container.checkAddItemRevisited(i, potentialPoints, minHeight)) { container.addItem(i); res.Add(i); count += 1; } else { retry.Add(i); } } WriteCSV.WriteList(items); double rnd = StaticRandom.NextDouble(); if (rnd > 0.5) { items.Sort((x, y) => { if (x.getTaxability() > y.getTaxability()) { return(-1); } else if (x.getTaxability() == y.getTaxability()) { return(0); } return(1); }); } else { items.Sort((x, y) => { if (x.getVolume() > y.getVolume()) { return(-1); } else if (x.getVolume() == y.getVolume()) { return(0); } return(1); }); } double nRnd = StaticRandom.NextDouble(); if (nRnd < 0.3) { items = Functions.taxabilityRandomization(items); } else if (nRnd >= 0.3 && nRnd < 0.6) { //items = Functions.sweetRandomization(items); items = Functions.probWeightRandomization(items); } else if (nRnd >= 6) { items = Functions.similarityVolumeRandomization(items); } items = Functions.sweetRandomization(items); // items = Functions.taxabilityRandomization(items); items = Functions.probWeightRandomization(items); // items = Functions.similarityVolumeRandomization(items); foreach (Item i in items) { if (!(res.Contains(i)) && !(i.checkSlimItem()) && (container.checkAddItemRevisited(i, potentialPoints, minHeight))) { container.addItem(i); res.Add(i); } else { retry.Add(i); } } foreach (Item i in retry) { double mRnd = StaticRandom.NextDouble(); if (mRnd < 0.3) { potentialPoints.Sort((x, y) => { if (x.getX() > y.getX()) { return(-1); } else if (x.getX() == y.getX()) { return(0); } return(1); }); } else if (mRnd >= 0.3 && nRnd < 0.6) { potentialPoints.Sort((x, y) => { if (x.getZ() > y.getZ()) { return(1); } else if (x.getZ() == y.getZ()) { return(0); } return(-1); }); } else if (mRnd >= 6) { // potentialPoints.sort(Comparator.comparing(PotentialPoint::getY)); potentialPoints.Sort((x, y) => { if (x.getUsableSpace() > y.getUsableSpace()) { return(1); } else if (x.getUsableSpace() == y.getUsableSpace()) { return(0); } return(-1); }); } if (!(res.Contains(i)) && (container.checkAddItemRevisited(i, potentialPoints, minHeight))) { container.addItem(i); res.Add(i); } } // IMPORTANT for feasbility check // container.loadedItemsInZone(res); Solution sol = new Solution(res, container, potentialPoints); /*Print for test best solution*/ double myResult, upperBound; myResult = Functions.objFunction(res); upperBound = Functions.objFunction(items); Console.WriteLine("N: Result: " + (int)((myResult / upperBound) * 100) + "%, " + "" + sol.zoneWeightFeasibility(container) + ", items obstacling: " + sol.checkUnloadingOrderFeasibilityWithCounter() + ", Weight: " + sol.getLoadedWeight() + ", Vol: " + sol.getVolumeOccupied()); return(sol); }
/** * * @param items * @param container * @param potentialPointsSx * @param potentialPointsDx * @return * @throws IOException * @throws ParseException */ public static Solution[] multiRunSolution(List <Item> items, Container container, List <PotentialPoint> potentialPointsSx, List <PotentialPoint> potentialPointsDx) { List <Solution> solutions = new List <Solution>(); Solution[] results = new Solution[4]; int times = Configuration.TIMES_MULTIRUN; int reading_method = Configuration.READING_MULTIITEM_METHOD; for (int i = 0; i < times; i++) { if (reading_method == 0) { items = ReadCSV.readFromCSV(); } else { items = ReadCSV.readFromCSVNoMultipleItems(); } potentialPointsSx = new List <PotentialPoint>(); potentialPointsDx = new List <PotentialPoint>(); container = new Container(Configuration.CONTAINER_WIDTH, Configuration.CONTAINER_HEIGHT, Configuration.CONTAINER_DEPTH, Configuration.CONTAINER_MAX_WEIGHT, Configuration.CONTAINER_UNLOADABLE_FROM_SIDE); if (packingMethod == 1) { solutions.Add(divideEtPack(items, container, potentialPointsSx)); } else if (packingMethod == 2) { solutions.Add(divideEtPackAlternate(items, container, potentialPointsSx, potentialPointsDx)); } else if (packingMethod == 3) { solutions.Add(newPackAlternate(items, container, potentialPointsSx, potentialPointsDx)); } } WriteCSV.WriteAllSol(solutions); solutions.Sort((x, y) => { if (y.getTotalTaxability() > x.getTotalTaxability()) { return(1); } else if (y.getTotalTaxability() == x.getTotalTaxability()) { return(0); } return(-1); }); List <Solution> paretSolTax = Functions.paretoFrontTaxabilityObstacles(solutions); // WriteCSV.writePareto(paretSolTax); bestTaxability = solutions[0]; results[0] = bestTaxability; foreach (Solution s in paretSolTax) { container.unloadEverything(); container.loadedItemsInZone(s.getItemsPacked()); // System.err.println(s.getItemsPacked().size()); if ((s.getTotalTaxability() >= bestTaxability.getTotalTaxability()) && s.zoneWeightFeasibility(container)) { bestTaxability = new Solution(s.getItemsPacked(), container, s.getPotentialPoints()); results[0] = bestTaxability; } } res = solutions[0]; lessObstacles = solutions[0]; return(results); }
/** * * @param items * @param container * @param potentialPointsSx * @param potentialPointsDx * @return * @throws IOException */ public static Solution divideEtPackAlternate(List <Item> items, Container container, List <PotentialPoint> potentialPointsSx, List <PotentialPoint> potentialPointsDx) { List <Item> res = new List <Item>(); List <Item> retry = new List <Item>(); PotentialPoint cp = new PotentialPoint(0, 0, 0, container.getWidth(), container.getHeight(), container.getDepth()); PotentialPoint.addPointToPotentialPoints(cp, potentialPointsSx); PotentialPoint cp2 = new PotentialPoint(container.getWidth(), 0, 0, container.getWidth(), container.getHeight(), container.getDepth()); PotentialPoint.addPointToPotentialPoints(cp2, potentialPointsDx); double minHeight = Functions.getSmallestHeight(items); /*Add this method somewhere else, or make GroupItems work properly so you don't need this calculation here*/ List <Item> itemPriorityZero = new List <Item>(); foreach (Item i in items) { if (i.getPriority() == 0) { itemPriorityZero.Add(i); } } int sizePriorityZero = itemPriorityZero.Count; int count = 0; itemPriorityZero.Sort((x, y) => { if (x.getVolume() > y.getVolume()) { return(1); } else if (x.getVolume() > y.getVolume()) { return(0); } return(-1); }); foreach (Item i in itemPriorityZero) { double r = StaticRandom.NextDouble(); if (r < 0.5) { if (container.checkAddItemRevisited(i, potentialPointsSx, minHeight)) { container.addItem(i); res.Add(i); count += 1; } else { retry.Add(i); } } else { if (container.checkAddItemRevisitedRight(i, potentialPointsDx, minHeight)) { container.addItem(i); res.Add(i); count += 1; } else { retry.Add(i); } } } WriteCSV.WriteList(items); double rnd = StaticRandom.NextDouble(); //double rnd = 0.6; if (rnd > 0.5) { items = items.OrderByDescending(i => i.getTaxability()) .ThenBy(i => i.getPriority()) .ThenBy(i => i.getId()) .ToList(); } else { items = items .OrderByDescending(i => i.getVolume()) .ToList(); } double nRnd = StaticRandom.NextDouble(); //double nRnd = 0.5; if (nRnd < 0.3) { items = Functions.taxabilityRandomization(items); } else if (nRnd >= 0.3 && nRnd < 0.6) { //items = Functions.sweetRandomization(items); items = Functions.probWeightRandomization(items); } else if (nRnd >= 6) { items = Functions.similarityVolumeRandomization(items); } foreach (Item i in items) { double r = StaticRandom.NextDouble(); //double r = 0.4; if (r < 0.5) { if (!(res.Contains(i)) && !(i.checkSlimItem()) && (container.checkAddItemRevisited(i, potentialPointsSx, minHeight))) { container.addItem(i); res.Add(i); } else { retry.Add(i); } } else { if (!(res.Contains(i)) && !(i.checkSlimItem()) && (container.checkAddItemRevisitedRight(i, potentialPointsDx, minHeight))) { container.addItem(i); res.Add(i); } else { retry.Add(i); } } } foreach (Item i in retry) { if (!(res.Contains(i)) && (container.checkAddItemRevisited(i, potentialPointsSx, minHeight))) { container.addItem(i); res.Add(i); } } List <PotentialPoint> potentialPoints = potentialPointsSx; foreach (PotentialPoint s in potentialPointsDx) { potentialPoints.Add(s); } Solution sol = new Solution(res, container, potentialPoints); /*Print for test best solution*/ double myResult, upperBound; myResult = Functions.objFunction(res); upperBound = Functions.objFunction(items); /* * System.err.println("ALT: Result: " + (int)((myResult/upperBound)*100) + "%, " + "" + sol.zoneWeightFeasibility(container) + * ", obstacles: " + sol.checkUnloadingOrderFeasibilityWithCounter() + * ", Weight: " + sol.getLoadedWeight() + ", Vol: " + sol.getVolumeOccupied() + * ", x deviation: " + Utils.Functions.dev_x(res, container)); */ if (count < sizePriorityZero) { //System.err.println("Not all p0 packed!"); List <Item> i = new List <Item>(); Solution s = new Solution(i, container, potentialPoints); return(s); } else { return(sol); } }
public void Ported() { int reading_method = Configuration.READING_MULTIITEM_METHOD; List <Item> items; if (reading_method == 0) { items = ReadCSV.readFromCSV(); } else { items = ReadCSV.readFromCSVNoMultipleItems(); } List <Item> comparison; List <PotentialPoint> potentialpointsSx = new List <PotentialPoint>(); List <PotentialPoint> potentialpointsDx = new List <PotentialPoint>(); WriteCSV.WriteFullItemListWithID(items); /*TO CREATE NEW INSTANCES*/ // InstanceCreator.writeInstance(); double upper_bound; upper_bound = Functions.objFunction(items); //Console.WriteLine(upper_bound); //WriteCSV.writeList(items); // furgonato Container c = new Container(Configuration.CONTAINER_WIDTH, Configuration.CONTAINER_HEIGHT, Configuration.CONTAINER_DEPTH, Configuration.CONTAINER_MAX_WEIGHT, Configuration.CONTAINER_UNLOADABLE_FROM_SIDE); List <Item> items1; Solution[] solution = Solver.multiRunSolution(items, c, potentialpointsSx, potentialpointsDx); //Console.WriteLine(solution.Length); Solution sol = solution[0]; items1 = sol.getItemsPacked(); WriteCSV.WriteItemPositionForVisualization(items1); WriteCSV.WriteOutpoutDescription(items1); double myResult; myResult = Functions.objFunction(items1); double x, y, z; x = Functions.dev_x(items1, c); y = Functions.dev_y(items1, c); // z = Util.Functions.dev_z(items1, c); c.loadedItemsInZone(items1); double weightMax; weightMax = Functions.totalWeightOfItems(items); List <Item> unpackedItems = Functions.getUnpackedItems(items, items1); int priority1leftUnpacked = Functions.itemsPriorityOneUnpacked(unpackedItems); int priority0leftUnpacked = Functions.itemsPriorityZeroUnpacked(unpackedItems); bool feasible = sol.zoneWeightFeasibility(c); double companyBound = ReadCSV.getCompanyBound(); double companyTotVol = ReadCSV.getCompanyTotVol(); double companyTotWeight = ReadCSV.getCompanyTotWeight(); int companyItemsPacked = ReadCSV.getCompanyItemsPacked(); /* System.err.println("Company bound: " + companyBound); * System.err.println("My_bound: " + myResult); * System.err.println("---------------------------------");*/ Console.WriteLine("Performance : " + Functions.round((myResult / companyBound * (100)), 2) + " %"); //Console.WriteLine("Read: " + StopwatchTimer.GetElapsedMillisecondsAndReset("read")); //Console.WriteLine("Write: " + StopwatchTimer.GetElapsedMillisecondsAndReset("write")); //Console.WriteLine("Sort: " + StopwatchTimer.GetElapsedMillisecondsAndReset("sort")); //Console.WriteLine("Add: " + StopwatchTimer.GetElapsedMillisecondsAndReset("add")); //Console.WriteLine("Pack: " + StopwatchTimer.GetElapsedMillisecondsAndReset("pack")); }