Beispiel #1
0
        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);
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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();
            }
        }
Beispiel #4
0
        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);
        }