public ActionResult Search(ModelSearch search) { if (search.Date != null && search.Date.Value.Date < DateTime.Now.Date) { ViewBag.Message = "Необходимо ввести корректные данные для поиска"; return(RedirectToAction("Index", "Home")); } if (search.Date != null && search.Time != null) { DateTime dateTimeSearch = DateTime.Now; dateTimeSearch = (DateTime)(search.Date + search.Time); if (dateTimeSearch.AddMinutes(5) <= DateTime.Now) { ViewBag.Message = "Необходимо ввести корректные данные для поиска"; return(RedirectToAction("Index", "Home")); } } if (search.Time != null && search.Date == null) { ViewBag.Message = "Необходимо ввести корректные данные для поиска"; return(RedirectToAction("Index", "Home")); } //Заполнен город if (search.Place != null && search.TextSearch == null) { return(RedirectToAction("ResultRestaurants", search)); } //заполнено поле текста для поиска else if (search.TextSearch != null) { switch (search.SearchTarget) { case "Object Name": { return(RedirectToAction("ResultRestaurants", search)); } case "Dish Name": { return(RedirectToAction("ResultDishes", search)); } case "Ingredient": { return(RedirectToAction("ResultDishes", search)); } default: break; } } //ничего не заполнено else { ViewBag.Message = "Необходимо ввести корректные данные для поиска"; } return(RedirectToAction("Index", "Home")); }
private void IDSearch(object obj) { ModelSearch modelSearch = new ModelSearch(this); modelSearch.Owner = App.Current.MainWindow; modelSearch.Show(); }
public ActionResult <IEnumerable <ModelSHow> > Get([FromQuery] ModelSearch query) { try { return(Ok(_getS.Execute(query))); } catch (Exception e) { Console.WriteLine(e.Message); return(StatusCode(500)); } }
public int Search(ModelSearch model, out List <CategoryViewModel> data) { CategoryViewModel item = new CategoryViewModel(); List <CategoryViewModel> list = new List <CategoryViewModel>(); data = new List <CategoryViewModel>(); int results = 0; data = new List <CategoryViewModel>(); try { string strQuery = "SELECT cate.`id`, cate.`code`, cate.`name`, cate.`description`,cate_parent.`id` as parent_id,cate_parent.`name` as parent_name"; strQuery += " FROM product_category cate LEFT JOIN(SELECT `id`, `name` FROM `product_category`) cate_parent"; strQuery += " ON cate.`parent_id` = cate_parent.`id`"; //string strQuery = "SELECT * FROM `product_category`"; data = _db.Query <CategoryViewModel>(strQuery, new { parent_id = model.parent_id }).ToList(); if (!Utilities.isNullOrEmpty(model.parent_id)) { list = data.Where(x => x.parent_id == model.parent_id).ToList(); data = list; } if (model.Child_id != (int)Common.ReturnCode.Succeed && !Utilities.isNullOrEmpty(model.Child_id)) { list = data.Where(x => x.id == model.Child_id).ToList(); data = list; } if (!Utilities.isNullOrEmpty(model.code)) { list = data.Where(x => x.code == model.code).ToList(); data = list; } if (!Utilities.isNullOrEmpty(model.name)) { list = data.Where(x => x.name == model.name).ToList(); data = list; } if (!Utilities.isNullOrEmpty(model.parent_id) && Utilities.isNullOrEmpty(model.code) && Utilities.isNullOrEmpty(model.name)) { strQuery += " WHERE cate_parent.`id` = @id"; var itemparent = _db.Query <CategoryViewModel>(strQuery, new { id = model.parent_id }).FirstOrDefault(); list.Add(itemparent); data = list; } return(results); } catch (Exception ex) { data = null; } return(results); }
public EFModelExplorer(EFModelExplorerToolWindowBase serviceProvider) : this((IServiceProvider)serviceProvider) { SuspendLayout(); searchControl = new ModelSearch { Dock = DockStyle.Top }; Controls.Add(searchControl); Controls.SetChildIndex(searchControl, 0); ResumeLayout(false); PerformLayout(); }
public IEnumerable <ModelSHow> Execute(ModelSearch request) { var models = Context.Models.AsQueryable(); if (request.Name != null) { models.Where(m => m.Name.ToLower() == request.Name.ToLower()); } return(models.Select(m => new ModelSHow { Id = m.Id, Name = m.Name })); }
public PageResponse <ModelDto> Execute(ModelSearch request) { var query = Context.Modeli.Include(m => m.Marka).AsQueryable().Skip((request.PageNumber - 1) * request.PerPage).Take(request.PerPage); var totalRecords = query.Count(); var pagesCount = (int)Math.Ceiling((double)totalRecords / request.PerPage); if (request != null) { if (request.Keyword != null) { query = query.Where(m => m.Model .ToLower() .Contains(request.Keyword.ToLower())); } totalRecords = query.Count(); var response = new PageResponse <ModelDto> { CurrentPage = request.PageNumber, TotalCount = totalRecords, PagesCount = pagesCount, Data = query.Select(m => new ModelDto { Id = m.Id, Model = m.Model, Marka = m.Marka.MarkaAutomobila, DateCreated = m.DateCreated, DateModified = m.DateModified }) }; return(response); } else { return(new PageResponse <ModelDto> { CurrentPage = request.PageNumber, TotalCount = totalRecords, PagesCount = pagesCount, Data = query.Select(m => new ModelDto { Id = m.Id, Model = m.Model, DateCreated = m.DateCreated, DateModified = m.DateModified }) }); } }
public ActionResult Index(ModelSearch model, int?page) { var pagenumber = page ?? 1; List <CategoryViewModel> List = new List <CategoryViewModel>(); int result = _categoryBL.Search(model, out List); if (List != null) { var ListPage = List.ToPagedList(pagenumber, 20); ViewBag.ListSearch = List.OrderByDescending(x => x.id); return(View(new Tuple <ModelSearch, IPagedList <CategoryViewModel> >(model, ListPage))); } return(View()); }
public IActionResult Get([FromQuery] ModelSearch search) { try { var model = _getModelsCommand.Execute(search); return(Ok(model)); } catch (EntityNotFoundException e) { if (e.Message == "Model doesn't exist.") { return(NotFound(e.Message)); } return(UnprocessableEntity(e.Message)); } }
private static List <Restaurant> FindRestaurantsByCityDate(ModelSearch search) { List <Restaurant> restaurants; int dayWeekSearch = (int)search.Date.Value.DayOfWeek; var WorkMinutIdRest = (from ws in db.WorkSchedules join r in db.Restaurants on ws.RestaurantId equals r.Id where (ws.DayOfWeek == 8 || ws.DayOfWeek == 3) && r.Address.City == search.Place group ws by ws.RestaurantId into g let amount = g.Sum(s => s.WorkMinutes) select new { IDRest = g.Key, SumWorkDay = amount }).ToList(); var BookMinutTableIdRestId = (from ot in db.OrderTables.ToList() join t in db.Tables on ot.TableId equals t.Id join r in db.Restaurants on t.RestaurantId equals r.Id where ot.OrderTimeFrom.Date == DateTime.Parse(search.Date.Value.Date.ToString("MM/dd/yyyy")) && r.Address.City == search.Place group ot by new { ot.Order.RestaurantId, ot.TableId, } into g let amount = g.Sum(s => s.BookingMinutes) select new { IDRest = g.Key.RestaurantId, IDTable = g.Key.TableId, BookTimeTable = amount }).ToList(); var idRestFreeTableOnDate = (from WorkMinutIdRestItem in WorkMinutIdRest join BookMinutTableItem in BookMinutTableIdRestId on WorkMinutIdRestItem.IDRest equals BookMinutTableItem.IDRest into ps from BookMinutTableItem in ps.DefaultIfEmpty() let FreeTableTime = WorkMinutIdRestItem.SumWorkDay - (BookMinutTableItem == null ? 0 : BookMinutTableItem.BookTimeTable) where FreeTableTime == null || FreeTableTime >= 30 select WorkMinutIdRestItem.IDRest ).Distinct().ToList(); restaurants = (db.Restaurants.Where(r => idRestFreeTableOnDate.Contains(r.Id))).ToList(); return(restaurants); }
public ActionResult ShowAllTable(int id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Restaurant restaurant = db.Restaurants.Find(id); if (restaurant == null) { return(HttpNotFound()); } RestaurantDetailsSearchViewModel model = new RestaurantDetailsSearchViewModel(); ModelSearch search = new ModelSearch(); model.Search = search; model.Restaurant = restaurant; model.TablesBySearch = restaurant.Tables.ToList(); return(View("~/Views/Search/ViewDetailsSearchRestaurant.cshtml", model)); }
public static void SetFolderFbxType() { Object[] folds = Selection.objects; for (int iii = 0; iii < folds.Length; iii++) { string relatepath = AssetDatabase.GetAssetPath(folds[iii]); string folderpath = Path.GetFullPath(relatepath); AssetsSearch assetSearch = new ModelSearch(folderpath.Replace("\\", "/").Replace(Application.dataPath, "Assets")); assetSearch.Search(); for (int i = 0; i < assetSearch.Assets.Count; i++) { string filepath = assetSearch.Assets[i]; if (!Path.GetExtension(filepath).Equals(".FBX")) { continue; } ModelImporter assets = AssetImporter.GetAtPath(filepath) as ModelImporter; if (assets == null) { Debug.LogError("assetimport is null" + filepath); continue; } if (filepath.Contains("@")) { assets.isReadable = false; assets.importMaterials = false; assets.animationCompression = ModelImporterAnimationCompression.Optimal; } else { assets.importAnimation = false; assets.isReadable = false; } assets.SaveAndReimport(); } } AssetDatabase.Refresh(); }
public ActionResult Index(int?page) { ModelSearch ModelSearch = new ModelSearch(); ModelSearch.code = Request.Form["code"]; ModelSearch.name = Request.Form["name"]; int Out; bool checkparent = int.TryParse(Request.Form["parent"], out Out); if (checkparent == true) { ModelSearch.parent_id = int.Parse(Request.Form["parent"]); } bool checkchild = int.TryParse(Request.Form["child"], out Out); if (checkchild == true) { ModelSearch.Child_id = int.Parse(Request.Form["child"]); } ModelSearch.parent_id = 0; var pageNumber = page ?? 1; List <CategoryViewModel> model = new List <CategoryViewModel>(); if (ModelSearch.name == null && ModelSearch.code == null && ModelSearch.parent_id == 0) { model = _categoryBL.GetAll(); } else { int result = _categoryBL.Search(ModelSearch, out model); } var List = model.ToPagedList(pageNumber, 13); ViewBag.ListSearch = model.OrderByDescending(x => x.id); return(View(new Tuple <ModelSearch, IPagedList <CategoryViewModel> >(ModelSearch, List))); }
private static void ParseArgs(string[] args) { var structuredArgs = StructuredArguments.FromStrings(args); void BatchSimulation() { var fromSeed = structuredArgs.AsIntOrDefault("From", 1); var toSeed = structuredArgs.AsIntOrDefault("To", 10); var td = BatchSimulator.LinesFromSeedRange(fromSeed, toSeed); var outFilename = $"results_from_{fromSeed}_to_{toSeed}.bin"; TrainingDataPersistence.SaveToDisk(td, outFilename); } void BatchSimulationOptimizationBased() { var td = OptimizationBasedGenerator.BatchGenerateTrainingData(100, 100); TrainingDataPersistence.SaveToDisk(td, $"new_results.bin"); } void TrainNetwork() { var td = TrainingDataPersistence.LoadFromDisk(structuredArgs.AsString("Filename")); var tvd = MlUtils.Split(td, 0.5f, false); var model = NetworkTrainer.TrainNetworkWithData(tvd.Training, tvd.Validation); model.Save("model.hdf5"); } void TrainNetworkOrthogonalSampling() { var td = TrainingDataPersistence.ParseCsv(structuredArgs.AsString("Filename")); var tvd = MlUtils.Split(td, 0.999f, true); var model = NetworkTrainer.TrainNetworkWithData(tvd.Training, tvd.Validation); model.Save("modelOrtho.hdf5"); } void JobGeneration() { JobGenerator.GenerateJobs(); } void MergeResults() { var mergedData = MergeResultFiles.MergeDataInPath(".", ".bin"); TrainingDataPersistence.SaveToDisk(mergedData, "merged.bin"); } void PrintData() { var maxCount = structuredArgs.AsIntOrDefault("NumRows", int.MaxValue); var samples = TrainingDataPersistence.LoadFromDisk(structuredArgs.AsString("Filename")).Samples; Console.WriteLine( $"Overall number of samples is {samples.Count}. Now showing up to {maxCount} samples..."); var ctr = 0; foreach (var sample in samples) { Console.WriteLine(sample); if (ctr++ >= maxCount) { break; } } } void Optimize() { var methodName = structuredArgs.AsStringOrDefault("Method", "LocalSolver"); var problem = ProblemInstanceGenerator.Generate(23); BaseProductionRatePredictor predictor = null; //predictor = new KerasNeuralProductionRatePredictor(ModelPersistence.LoadFromDisk("model.hdf5")); predictor = new OnnxNeuralProductionRatePredictor("converted.onnx"); //predictor = new MlProductionRatePredictor("model.zip"); MilkrunBufferAllocationSolution sol = null; switch (methodName) { case "SimulatedAnnealing": sol = SimAnnealOptimizer.Solve(problem, predictor, 1000, 1.0f); break; case "LocalSolver": //var evaluator = new SimulationEvaluator(problem); var evaluator = new PredictorBasedEvaluator(problem, predictor); sol = LocalSolverOptimizer.Solve(problem, evaluator); break; } Console.WriteLine("Solution of optimization = {0}", sol); Console.WriteLine("Production rate from predictor = {0}", predictor.Predict(sol.ToSample(problem.ProcessingRates))); Console.WriteLine("Production rate from simulation = {0}", SimulationRunner.ProductionRateForConfiguration(sol.ToFlowlineConfiguration(problem.ProcessingRates))); Console.WriteLine("Minimum production rate = {0}", problem.MinProductionRate); } void TrainForest() { var td = TrainingDataPersistence.LoadFromDisk(structuredArgs.AsString("Filename")); var tvd = MlUtils.Split(td, 0.999f, true); MLContext context = new MLContext(23); var transformer = ModelTrainer.TrainModelWithData(context, tvd.Training, tvd.Validation, out var schema); context.Model.Save(transformer, schema, "model.zip"); } void AutoMl() { var td = TrainingDataPersistence.LoadFromDisk(structuredArgs.AsString("Filename")); var tvd = MlUtils.Split(td, 1.0f, true); MLContext context = new MLContext(23); ModelSearch.AutoMlOnDataset(context, tvd.Training, tvd.Validation); } void DumpPredictionErrors() { var td = TrainingDataPersistence.LoadFromDisk(structuredArgs.AsString("Filename")); var tvd = MlUtils.Split(td, 0.5f, false); var dnn = new OnnxNeuralProductionRatePredictor("converted.onnx"); PredictionSample Predict(Sample sample) { var predictedRate = dnn.Predict(sample); float deviation = predictedRate - sample.ProductionRate; return(new PredictionSample(sample, deviation)); } var psamples = tvd.Validation.Samples.Take(100).Select(Predict).ToList(); File.WriteAllText("deviations.csv", CsvSerializer.SerializeToCsv(psamples)); } void TestExhaustiveGenerator() { int numMachines = 6; int numBuffers = numMachines - 1; var features = new List <FeatureDescription> { new FeatureDescription { IsDiscrete = false, LowerBound = 30, UpperBound = 120, Name = DefaultFeatures.MilkRunCycleLength.ToString() } }; features.AddRange(Enumerable.Range(0, numMachines).Select(i => new FeatureDescription { IsDiscrete = false, LowerBound = 0.8, UpperBound = 1.2, Name = DefaultFeatures.ProcessingRate + $"{i+1}" })); features.AddRange(Enumerable.Range(0, numMachines).Select(i => new FeatureDescription { IsDiscrete = false, LowerBound = 0.5, UpperBound = 1.5, Name = DefaultFeatures.MaterialRatio + $"{i+1}" })); features.AddRange(Enumerable.Range(0, numBuffers).Select(i => new FeatureDescription { IsDiscrete = true, LowerBound = 0, UpperBound = 80, Name = DefaultFeatures.BufferSize + $"{i+1}" })); // Big ortho experiment //int targetSampleCount = 2000000; //int subCubeSplitFactor = 2; // Small latin only experiment int targetSampleCount = 2000000; int subCubeSplitFactor = 1; int numCubes = Utils.Pow(subCubeSplitFactor, features.Count); int numValues = (int)Math.Ceiling(targetSampleCount / (double)numCubes) * numCubes; var samples = OrthoLatinHyperCube.PickSamples(features.ToArray(), numValues, subCubeSplitFactor); var lines = new List <string> { string.Join(",", samples.First().ColumnNames()) }; lines.AddRange(samples.Select(sample => string.Join(",", sample.ToFloats()))); File.WriteAllText("ortholatinhypercube.csv", string.Join("\n", lines)); Console.WriteLine("\nDistinct values"); for (int i = 0; i < numMachines; i++) { if (i < numBuffers) { Console.WriteLine($"Distinct buffer {i+1} sizes = {samples.Select(s => s.BufferSizes[i]).Distinct().Count()}"); } Console.WriteLine($"Distinct order up to levels {i+1} = {samples.Select(s => s.OrderUpToLevels[i]).Distinct().Count()}"); Console.WriteLine($"Distinct processing rates {i+1} = {samples.Select(s => s.ProcessingRates[i]).Distinct().Count()}"); } Console.WriteLine($"Distinct milk run cycle lengths = {samples.Select(s => s.MilkrunCycleLength).Distinct().Count()}"); } void GenerateInstance() { int seed = structuredArgs.AsInt("Seed"); string filename = structuredArgs.AsStringOrDefault("Filename", "instance.json"); var flowLineConfig = InstanceGenerator.Generate(seed); Utils.SaveObjectAsJson(flowLineConfig, filename); } var availableActions = new List <Action> { BatchSimulation, TrainNetwork, TrainNetworkOrthogonalSampling, JobGeneration, MergeResults, PrintData, Optimize, TrainForest, AutoMl, BatchSimulationOptimizationBased, DumpPredictionErrors, TestExhaustiveGenerator, GenerateInstance }; var actionMappings = availableActions.ToDictionary(action => Utils.NameOfLocalActionFunction("ParseArgs", action), action => action); if (args.Length >= 1) { var action = structuredArgs.GetAction(); if (actionMappings.ContainsKey(action)) { actionMappings[action](); return; } } ShowUsage(actionMappings); }
public async System.Threading.Tasks.Task <ActionResult> ResultRestaurants(ModelSearch search) { IList <Restaurant> restaurants = null; RestaurantResultSearchViewModel model = new RestaurantResultSearchViewModel { Restaurants = restaurants, ModelSearch = search }; model.NationalCuisines = db.NationalCuisines.ToList(); model.TargetAudiences = db.TargetAudiences.ToList(); model.TypeFoods = db.TypeFoods.ToList(); model.Attributes = db.Attributes.ToList(); //Заполнен город if (search.Place != null && search.TextSearch == null) { //введен только город для поиска (время/дата == null) if (search.Date == null && search.Time == null) { if (search.NumberPersons == null || search.NumberPersons == 0) { //возвращаем рестораны только по городу (все) model.Restaurants = (from t in db.Restaurants // определяем каждый объект из teams как t where (t.Address.City.ToUpper() == search.Place.ToUpper()) //фильтрация по критерию orderby t.AverageCheckRestaurant // упорядочиваем по возрастанию select t).ToList(); // выбираем объект model.TypeSearch = "City"; } else { //возвращаем рестораны по городу и числу персон model.Restaurants = (from t in db.Restaurants // определяем каждый объект из teams как t where (t.Address.City.ToUpper() == search.Place.ToUpper() && t.Tables.Any(m => m.MaxNumberPeople >= search.NumberPersons && search.NumberPersons >= m.MinNumberPeople)) //фильтрация по критерию orderby t.AverageCheckRestaurant // упорядочиваем по возрастанию select t).ToList(); // выбираем объект model.TypeSearch = "CityPerson"; } } //введен город, время, дата и число персон else if (search.Date != null && search.Time != null) { int dayWeekSearch = (int)search.Date.Value.DayOfWeek; DateTime dateTimeSearch = (DateTime)(search.Date + search.Time); if (search.NumberPersons == null || search.NumberPersons == 0) { model.Restaurants = (from r in db.Restaurants.ToList() join ws in db.WorkSchedules on r.Id equals ws.RestaurantId join t in db.Tables on r.Id equals t.RestaurantId where (r.Address.City.ToUpper() == search.Place.ToUpper() && (ws.DayOfWeek == 8 || ws.DayOfWeek == dayWeekSearch) && (ws.TimeFrom <= search.Time && ws.TimeTo >= search.Time)) select r).Distinct().Intersect((from r in db.Restaurants.ToList() join tt in db.Tables on r.Id equals tt.RestaurantId where !(from t in db.Tables.ToList() join ot in db.OrderTables on t.Id equals ot.TableId where ot.OrderTimeFrom <= dateTimeSearch && ot.OrderTimeTo > dateTimeSearch select t.Id).Contains(tt.Id) select r).Distinct()).ToList(); model.TypeSearch = "CityDateTime"; } else { model.Restaurants = (from r in db.Restaurants.ToList() join ws in db.WorkSchedules on r.Id equals ws.RestaurantId join t in db.Tables on r.Id equals t.RestaurantId where (r.Address.City.ToUpper() == search.Place.ToUpper() && (ws.DayOfWeek == 8 || ws.DayOfWeek == dayWeekSearch) && (ws.TimeFrom <= search.Time && ws.TimeTo >= search.Time) && (t.MinNumberPeople <= search.NumberPersons && t.MaxNumberPeople >= search.NumberPersons)) select r).Distinct().Intersect((from r in db.Restaurants.ToList() join tt in db.Tables on r.Id equals tt.RestaurantId where !(from t in db.Tables.ToList() join ot in db.OrderTables on t.Id equals ot.TableId where ot.OrderTimeFrom <= dateTimeSearch && ot.OrderTimeTo > dateTimeSearch select t.Id).Contains(tt.Id) select r).Distinct()).ToList(); model.TypeSearch = "CityDateTimePerson"; } } //введен город и дата (время == null) else if (search.Date != null && search.Time == null) { int dayWeekSearch = (int)search.Date.Value.DayOfWeek; if (search.NumberPersons == null || search.NumberPersons == 0) { model.Restaurants = FindRestaurantsByCityDate(search); model.TypeSearch = "CityDate"; } else { var WorkMinutIdRest = (from ws in db.WorkSchedules join r in db.Restaurants on ws.RestaurantId equals r.Id join t in db.Tables on r.Id equals t.RestaurantId where (ws.DayOfWeek == 8 || ws.DayOfWeek == dayWeekSearch) && r.Address.City.ToUpper() == search.Place.ToUpper() && (t.MinNumberPeople <= search.NumberPersons && t.MaxNumberPeople >= search.NumberPersons) group ws by ws.RestaurantId into g let amount = g.Sum(s => s.WorkMinutes) select new { IDRest = g.Key, SumWorkDay = amount }).ToList(); var BookMinutTableIdRestId = (from ot in db.OrderTables.ToList() join t in db.Tables on ot.TableId equals t.Id join r in db.Restaurants on t.RestaurantId equals r.Id where ot.OrderTimeFrom.Date == DateTime.Parse(search.Date.Value.Date.ToString("dd/MM/yyyy")) && r.Address.City.ToUpper() == search.Place.ToUpper() && (t.MinNumberPeople <= search.NumberPersons && t.MaxNumberPeople >= search.NumberPersons) group ot by new { ot.Order.RestaurantId, ot.TableId, } into g let amount = g.Sum(s => s.BookingMinutes) select new { IDRest = g.Key.RestaurantId, IDTable = g.Key.TableId, BookTimeTable = amount }).ToList(); var idRestFreeTableOnDate = (from WorkMinutIdRestItem in WorkMinutIdRest join BookMinutTableItem in BookMinutTableIdRestId on WorkMinutIdRestItem.IDRest equals BookMinutTableItem.IDRest into ps from BookMinutTableItem in ps.DefaultIfEmpty() let FreeTableTime = WorkMinutIdRestItem.SumWorkDay - (BookMinutTableItem == null ? 0 : BookMinutTableItem.BookTimeTable) where FreeTableTime == null || FreeTableTime >= 30 select WorkMinutIdRestItem.IDRest ).Distinct().ToList(); model.Restaurants = (db.Restaurants.Where(r => idRestFreeTableOnDate.Contains(r.Id))).ToList(); model.TypeSearch = "CityDatePerson"; } } else { ViewBag.Message = "Необходимо ввести данные для поиска"; } } //заполнено только поле текста для поиска else if (search.Place == null && search.TextSearch != null) { switch (search.SearchTarget) { case "Object Name": { //выведем все рестораны if (search.NumberPersons == null || search.NumberPersons == 0) { model.Restaurants = (from t in db.Restaurants // определяем каждый объект из teams как t where (t.Name.ToUpper() == search.TextSearch.ToUpper() || t.Name.ToUpper().Contains(search.TextSearch.ToUpper())) //фильтрация по критерию orderby t.AverageCheckRestaurant // упорядочиваем по возрастанию select t).ToList(); // выбираем объект model.TypeSearch = "Object"; } else { model.Restaurants = (from t in db.Restaurants // определяем каждый объект из teams как t where (t.Name.ToUpper() == search.TextSearch.ToUpper() || t.Name.ToUpper().Contains(search.TextSearch.ToUpper()) && t.Tables.Any(m => m.MaxNumberPeople <= search.NumberPersons && search.NumberPersons >= m.MinNumberPeople)) //фильтрация по критерию orderby t.AverageCheckRestaurant // упорядочиваем по возрастанию select t).ToList(); // выбираем объект model.TypeSearch = "ObjectPerson"; } } break; default: break; } } //заролнен город и поле для текста поиска else if (search.Place != null && search.TextSearch != null) { switch (search.SearchTarget) { case "Object Name": { //выведем все рестораны if (search.NumberPersons == null || search.NumberPersons == 0) { model.Restaurants = (from t in db.Restaurants // определяем каждый объект из teams как t where (t.Address.City.ToUpper() == search.Place.ToUpper() && t.Name.ToUpper() == search.TextSearch.ToUpper() || t.Name.ToUpper().Contains(search.TextSearch.ToUpper())) //фильтрация по критерию orderby t.AverageCheckRestaurant // упорядочиваем по возрастанию select t).ToList(); // выбираем объект model.TypeSearch = "CityObject"; } else { model.Restaurants = (from t in db.Restaurants // определяем каждый объект из teams как t where (t.Address.City.ToUpper() == search.Place.ToUpper() && (t.Name.ToUpper() == search.TextSearch.ToUpper() || t.Name.ToUpper().Contains(search.TextSearch.ToUpper()) && t.Tables.Any(m => m.MaxNumberPeople <= search.NumberPersons && search.NumberPersons >= m.MinNumberPeople))) //фильтрация по критерию orderby t.AverageCheckRestaurant // упорядочиваем по возрастанию select t).ToList(); // выбираем объект model.TypeSearch = "CityObjectPerson"; } } break; default: break; } } //ничего не заполнено else { ViewBag.Message = "Необходимо ввести данные для поиска"; } await UpdateReviewForRestaurantsAsync(model.Restaurants); return(View(model)); }
private void IDSearch(object obj) { ModelSearch modelSearch = new ModelSearch(this); modelSearch.Show(); }
public int Search(ModelSearch model, out List <CategoryViewModel> data) { return(_categoryDAO.Search(model, out data)); }
private void Awake() { instance = this; }
// IdRest = item.Id, Search = Model.ModelSearch, TypeSearch = Model.TypeSearch //public ActionResult ViewDetailsSearch (int IdRest, ModelSearch Search, string TypeSearch) public ActionResult ViewDetailsSearchRestaurant(ViewDetailsSearchModel model) { Restaurant restaurant = db.Restaurants.Find(model.IdRest); IList <Table> tables = null; int dayWeekSearch = -1; string date = String.Empty; DateTime dateTimeSearch = DateTime.Now; if (model.Date != null) { dayWeekSearch = (int)model.Date.Value.DayOfWeek; date = model.Date.Value.Date.ToString("dd/MM/yyyy"); //date = model.Date.Value.Date.ToString("MM/dd/yyyy"); if (model.Time != null) { dateTimeSearch = (DateTime)(model.Date + model.Time); } } if (restaurant == null) { return(HttpNotFound()); } switch (model.TypeSearch) { case "City": case "Object": case "CityObject": { return(RedirectToAction("Details", "Restaurant", new { id = model.IdRest })); } case "CityPerson": case "ObjectPerson": case "CityObjectPerson": { tables = restaurant.Tables.Where(t => t.MaxNumberPeople >= model.NumberPersons && t.MinNumberPeople <= model.NumberPersons && t.Availability == true).ToList(); } break; case "CityDateTime": { // where ot.OrderTimeFrom <= dateTimeSearch && ot.OrderTimeTo > dateTimeSearch tables = restaurant.Tables.Where(t => !(t.OrderTables.Where(ot => ot.OrderTimeFrom <= dateTimeSearch && ot.OrderTimeTo > dateTimeSearch).Select(s => s.TableId)).Contains(t.Id) && t.Availability == true).ToList(); } break; case "CityDate": { int workMinute = restaurant.WorkSchedules.Where(ws => ws.DayOfWeek == 8 || ws.DayOfWeek == dayWeekSearch).Sum(s => s.WorkMinutes); tables = restaurant.Tables.Where(t => (workMinute - t.OrderTables.Where(ot => ot.OrderTimeFrom.Date == model.Date.Value.Date).Sum(m => m.BookingMinutes)) > 30 && t.Availability == true).ToList(); } break; case "CityDatePerson": { int workMinute = restaurant.WorkSchedules.Where(ws => ws.DayOfWeek == 8 || ws.DayOfWeek == dayWeekSearch).Sum(s => s.WorkMinutes); tables = restaurant.Tables.Where(t => (workMinute - t.OrderTables.Where(ot => ot.OrderTimeFrom.Date == model.Date.Value.Date).Sum(m => m.BookingMinutes)) > 30 && t.Availability == true && t.MaxNumberPeople >= model.NumberPersons && t.MinNumberPeople <= model.NumberPersons).ToList(); } break; case "CityDateTimePerson": { tables = restaurant.Tables.Where(t => !(t.OrderTables.Where(ot => ot.OrderTimeFrom <= dateTimeSearch && ot.OrderTimeTo > dateTimeSearch).Select(s => s.TableId)).Contains(t.Id) && t.MaxNumberPeople >= model.NumberPersons && t.MinNumberPeople <= model.NumberPersons && t.Availability == true).ToList(); } break; default: break; } ModelSearch search = new ModelSearch() { Place = model.Place, Date = model.Date, Time = model.Time, NumberPersons = model.NumberPersons }; RestaurantDetailsSearchViewModel restaurantDetailsSearchViewModel = new RestaurantDetailsSearchViewModel() { Restaurant = restaurant, Search = search, TablesBySearch = tables }; return(View(restaurantDetailsSearchViewModel)); }
public ActionResult ResultDishes(ModelSearch search) { DishResultSearchViewModel model = new DishResultSearchViewModel(); model.ModelSearch = search; switch (search.SearchTarget) { case "Object Name": { return(RedirectToAction("ResultRestaurants", search)); } case "Dish Name": { if (search.Place == null) { IList <Dish> dishes = (from t in db.Dishes // определяем каждый объект из teams как t where (t.Name.ToUpper() == search.TextSearch.ToUpper() || t.Name.ToUpper().Contains(search.TextSearch.ToUpper())) //фильтрация по критерию orderby t.Price // упорядочиваем по возрастанию select t).ToList(); // выбираем объект model.Dishes = dishes; model.TypeSearch = "Dish"; } else { IList <Dish> dishes = (from t in db.Dishes // определяем каждый объект из teams как t where ((t.Restaurant.Address.City == search.Place) && (t.Name.ToUpper() == search.TextSearch.ToUpper() || t.Name.ToUpper().Contains(search.TextSearch.ToUpper()))) //фильтрация по критерию orderby t.Price // упорядочиваем по возрастанию select t).ToList(); // выбираем объект model.Dishes = dishes; model.TypeSearch = "DishCity"; } } break; case "Ingredient": { if (search.Place == null) { IList <Dish> dishes = (from t in db.Dishes // определяем каждый объект из teams как t where (t.IngredientTypes.Any(item => item.Type.ToUpper() == search.TextSearch.ToUpper() || item.Type.ToUpper().Contains(search.TextSearch.ToUpper()))) //фильтрация по критерию orderby t.Price // упорядочиваем по возрастанию select t).ToList(); // выбираем объект model.Dishes = dishes; model.TypeSearch = "Ingredient"; } else { IList <Dish> dishes = (from t in db.Dishes // определяем каждый объект из teams как t where ((t.Restaurant.Address.City == search.Place) && (t.IngredientTypes.Any(item => item.Type.ToUpper() == search.TextSearch.ToUpper() || item.Type.ToUpper().Contains(search.TextSearch.ToUpper())))) //фильтрация по критерию orderby t.Price // упорядочиваем по возрастанию select t).ToList(); // выбираем объект model.Dishes = dishes; model.TypeSearch = "IngredientCity"; } } break; default: break; } return(View(model)); }
public SearchController() { _modelSearch = new ModelSearch(); }