public IActionResult Index(LookAttrViewModel model) { var sql = GenerateSql(model); if (string.IsNullOrEmpty(sql)) { return(RedirectToAction("Index")); } var result = _flights.GetAllView(sql); ViewBag.models = result; return(View(model)); }
private string GenerateSql(LookAttrViewModel model) { var sql = ""; if (!string.IsNullOrEmpty(model.CompanyCountry)) { sql += "AND ac.country IN (" + MakeForMySql(model.CompanyCountry) + ") "; } if (!string.IsNullOrEmpty(model.CompanyName)) { sql += "AND ac.companyname IN (" + MakeForMySql(model.CompanyName) + ") "; } if (!string.IsNullOrEmpty(model.AirportCountryFrom)) { sql += "AND ha.country IN (" + MakeForMySql(model.AirportCountryFrom) + ") "; } if (!string.IsNullOrEmpty(model.AirportCountryTo)) { sql += "AND da.country IN (" + MakeForMySql(model.AirportCountryTo) + ") "; } if (!string.IsNullOrEmpty(model.PlaneModel)) { sql += "AND p.model IN (" + MakeForMySql(model.PlaneModel) + ") "; } if (model.PlaneSeatsFrom != 0) { sql += "AND p.seats >=" + model.PlaneSeatsFrom + " "; } if (model.PlaneSeatsTo != 0) { sql += "AND p.seats <=" + model.PlaneSeatsTo + " "; } if (model.FlightDate != DateTime.Parse("01.01.0001 00:00:00")) { sql += "AND fd.departure >= '" + model.FlightDate.ToString("yyyy-MM-dd HH:mm:ss") + "' AND fd.departure <= '" + model.FlightDate.Date.ToString(@"yyyy-MM-dd") + " 23:59:59' "; } if (!string.IsNullOrEmpty(model.MustBeWord)) { sql += "AND (MATCH(ha.name) AGAINST ('+" + model.MustBeWord + "' IN BOOLEAN MODE) OR MATCH(da.name) AGAINST ('+" + model.MustBeWord + "' IN BOOLEAN MODE)) "; } if (!string.IsNullOrEmpty(model.NoWord)) { sql += "AND (NOT MATCH(ha.name) AGAINST ('+" + model.NoWord + "' IN BOOLEAN MODE) AND NOT MATCH(da.name) AGAINST ('+" + model.NoWord + "' IN BOOLEAN MODE)) "; } return(sql); }