public IActionResult SearchOffers([FromBody] SearchParamaters searchParamaters) { IActionResult response = BadRequest(); try { if (searchParamaters == null) { BadRequest("Invalid search parameters"); } else { HttpContext.Session.SetString(GlobalConstants.SearchParamtersSessionkey, JsonConvert.SerializeObject(searchParamaters)); response = NoContent(); } } catch (Exception ex) { _logger.LogDebug(null, ex, "Unexpected Issue."); response = StatusCode((int)HttpStatusCode.InternalServerError); } return(response); }
private async void btnStart_Click(object sender, EventArgs e) { btnStart.Enabled = false; progressBar.Visible = true; var startParamaters = new SearchParamaters { Extension = txtExtension.Text, OutputPath = txtOutputPath.Text, StartPath = txtStartPath.Text, OutputRelative = checkIsRelative.Checked, Prefix = txtPrefix.Text, Suffix = txtSuffix.Text, OpenWhenDone = checkOpenWhenDone.Checked, }; try { await Task.Run(() => { DoWork(startParamaters); }); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } btnStart.Enabled = true; progressBar.Visible = false; }
private void DoWork(SearchParamaters info) { if (string.IsNullOrWhiteSpace(info.StartPath) || string.IsNullOrWhiteSpace(info.Extension) || string.IsNullOrWhiteSpace(info.OutputPath) ) { return; } var startNode = new DirectoryInfo(info.StartPath); var folderStack = new Stack <DirectoryInfo>(); folderStack.Push(startNode); var filesPaths = new List <string>(); while (folderStack.Count > 0) { var node = folderStack.Pop(); foreach (var subNodes in node.GetDirectories()) { folderStack.Push(subNodes); } filesPaths.AddRange(from file in node.GetFiles() where file.Extension.Equals(info.Extension) select file.FullName); } using (var fileWriter = new StreamWriter(info.OutputPath)) { foreach (var filePath in filesPaths) { var path = info.OutputRelative ? filePath.Replace(info.StartPath, "") : filePath; var finalName = $"{info.Prefix}\"{path}\"{info.Suffix}"; fileWriter.WriteLine(finalName); } } if (info.OpenWhenDone) { var procStartInfo = new ProcessStartInfo(info.OutputPath); var process = new Process { StartInfo = procStartInfo }; process.Start(); } }
private async Task <IQueryable <Offer> > BuildOfferSearchQuery(SearchParamaters lastSearchParameters) { var offerQuery = _database.Offer .Where(o => o.Status == (int)GlobalConstants.OfferStatus.Active); if (!string.IsNullOrWhiteSpace(lastSearchParameters.OfferType)) { offerQuery = offerQuery.Where(o => o.OfferType == lastSearchParameters.OfferType); } if (lastSearchParameters.Furnished) { offerQuery = offerQuery.Where(o => o.Furnished == true); } if (lastSearchParameters.Pets) { offerQuery = offerQuery.Where(o => o.Pets == true); } if (lastSearchParameters.Cellar) { offerQuery = offerQuery.Where(o => o.Cellar == true); } if (lastSearchParameters.Parking) { offerQuery = offerQuery.Where(o => o.Parking == true); } if (lastSearchParameters.Elevator) { offerQuery = offerQuery.Where(o => o.Elevator == true); } if (lastSearchParameters.Accessibility) { offerQuery = offerQuery.Where(o => o.Accessability == true); } if (lastSearchParameters.Dryer) { offerQuery = offerQuery.Where(o => o.Dryer == true); } if (lastSearchParameters.Washingmachine) { offerQuery = offerQuery.Where(o => o.WashingMachine == true); } if (lastSearchParameters.Television) { offerQuery = offerQuery.Where(o => (o.Television != "No") && (o.Television != null) && (o.Television != "")); } if (lastSearchParameters.Wlan) { offerQuery = offerQuery.Where(o => o.Wlan == true); } if (lastSearchParameters.Lan) { offerQuery = offerQuery.Where(o => o.Lan == true); } if (lastSearchParameters.Telephone) { offerQuery = offerQuery.Where(o => o.Telephone == true); } if (lastSearchParameters.UniDistance != null) { if (lastSearchParameters.UniDistance.Gte != null) { offerQuery = offerQuery.Where(o => o.UniDistance > lastSearchParameters.UniDistance.Gte); } if (lastSearchParameters.UniDistance.Lte != null) { offerQuery = offerQuery.Where(o => o.UniDistance < lastSearchParameters.UniDistance.Lte); } } if (lastSearchParameters.Rent != null) { if (lastSearchParameters.Rent.Gte != null) { offerQuery = offerQuery.Where(o => o.Rent > lastSearchParameters.Rent.Gte); } if (lastSearchParameters.Rent.Lte != null) { offerQuery = offerQuery.Where(o => o.Rent < lastSearchParameters.Rent.Lte); } } if (lastSearchParameters.Size != null) { if (lastSearchParameters.Size.Gte != null) { offerQuery = offerQuery.Where(o => o.Size > lastSearchParameters.Size.Gte); } if (lastSearchParameters.Size.Lte != null) { offerQuery = offerQuery.Where(o => o.Size < lastSearchParameters.Size.Lte); } } if (lastSearchParameters.Rooms != null) { if (lastSearchParameters.Rooms.Gte != null) { offerQuery = offerQuery.Where(o => o.Rooms > lastSearchParameters.Rooms.Gte); } if (lastSearchParameters.Rooms.Lte != null) { offerQuery = offerQuery.Where(o => o.Rooms < lastSearchParameters.Rooms.Lte); } } if (lastSearchParameters.Internetspeed != null) { if (lastSearchParameters.Internetspeed.Gte != null) { offerQuery = offerQuery.Where(o => o.InternetSpeed > lastSearchParameters.Internetspeed.Gte); } if (lastSearchParameters.Internetspeed.Lte != null) { offerQuery = offerQuery.Where(o => o.InternetSpeed < lastSearchParameters.Internetspeed.Lte); } } if ((lastSearchParameters.Tags != null) && (lastSearchParameters.Tags.Count > 0)) { //var tags = // await // _database.Tag.Where(t => lastSearchParameters.Tags.Contains(t.Title) && (t.OfferId != null)) // .ToListAsync(); //var offerTagMapping = new Dictionary<int, List<string>>(); //foreach (var tag in tags) //{ // if (tag.OfferId != null) // { // if (offerTagMapping.ContainsKey((int) tag.OfferId)) // { // offerTagMapping[(int) tag.OfferId].Add(tag.Title); // } // else // { // offerTagMapping.Add((int) tag.OfferId, new List<string> {tag.Title}); // } // } //} //IEnumerable<int> offerIds = // offerTagMapping.Where( // m => // { // return (lastSearchParameters.Tags.Count() <= m.Value.Count()) && // lastSearchParameters.Tags.All(t => m.Value.Contains(t)); // }) // .Select(m => m.Key) // .ToList(); //offerQuery = offerIds.Any() ? offerQuery.Where(o => offerIds.Contains(o.Id)) : null; var offerIds = await _database.Tag.Where(t => lastSearchParameters.Tags.Contains(t.Title) && (t.OfferId != null)) .Select(t => (int)t.OfferId) .ToListAsync(); offerQuery = offerIds.Any() ? offerQuery.Where(o => offerIds.Contains(o.Id)) : null; } return(offerQuery); }