public RecommendResponse Recommend(RecommendRequest request) { Dictionary <int, int> recomended = _pool.DictionaryOfIntByInt.Get(); _context.Interests.Recommend( request.Id, recomended, _context, request.Country.IsActive ? _storage.Countries.Get(request.Country.Country) : (short)0, request.City.IsActive ? _storage.Cities.Get(request.City.City) : (short)0); var comparer = _pool.RecommendComparer.Get(); comparer.Init( _context, recomended, _context.Birth.Get(request.Id).Seconds); var response = _pool.RecommendResponse.Get(); response.Limit = request.Limit; response.Ids.AddRange(recomended.Keys.TakeMax(comparer, request.Limit)); _pool.DictionaryOfIntByInt.Return(recomended); _pool.RecommendComparer.Return(comparer); return(response); }
private bool CountryEq(RecommendRequest request, StringValues value) { if (String.IsNullOrEmpty(value)) { return(false); } request.Country.IsActive = true; request.Country.Country = value; return(true); }
public IHttpActionResult Recommend(RecommendRequest request) { DateTime appointmentTime; if (DateTime.TryParse(request.ApointmentTime, out appointmentTime)) { return(Ok(request.CallerName + " made an appointment for " + request.PatientName + " at " + appointmentTime.Hour + " O'Clock on " + appointmentTime.DayOfWeek + " " + appointmentTime.Month + " " + appointmentTime.Day)); } else { return(BadRequest("Could not parse date time")); } }
public IHttpActionResult Recommend(RecommendRequest request) { try { if (request == null) { return(BadRequest("The request body is null")); } if (string.IsNullOrEmpty(request.ApointmentTime)) { return(BadRequest("No apointment set")); } if (string.IsNullOrEmpty(request.CallerName)) { return(BadRequest("No caller name set")); } if (string.IsNullOrEmpty(request.PatientName)) { return(BadRequest("No patient name set")); } DateTime appointmentTime; if (DateTime.TryParse(request.ApointmentTime, out appointmentTime)) { using (MySqlRepository repository = new MySqlRepository()) { var results = repository.GetVaccines(request.CallerName); return(Ok(results)); } } else { return(BadRequest("Could not parse date time")); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public bool Process(int id, HttpResponse httpResponse, IQueryCollection query) { if (DataConfig.DataUpdates) { return(false); } RecommendRequest request = _pool.RecommendRequest.Get(); request.Id = id; foreach (var filter in query) { bool res = true; switch (filter.Key) { case "query_id": break; case "limit": uint limit; if (!uint.TryParse(filter.Value, out limit)) { res = false; } else { if (limit == 0) { res = false; } request.Limit = (int)limit; } break; case "country": res = CountryEq(request, filter.Value); break; case "city": res = CityEq(request, filter.Value); break; default: res = false; break; } if (!res) { Free(request); return(false); } } var result = _processor.Recommend(request); httpResponse.StatusCode = 200; httpResponse.ContentType = "application/json"; var buffer = _pool.WriteBuffer.Get(); int contentLength = 0; using (var bufferStream = new MemoryStream(buffer)) { _printer.Write(result, bufferStream); httpResponse.ContentLength = contentLength = (int)bufferStream.Position; } httpResponse.Body.Write(buffer, 0, contentLength); _pool.WriteBuffer.Return(buffer); _pool.RecommendResponse.Return(result); Free(request); return(true); }
private void Free(RecommendRequest request) { _pool.RecommendRequest.Return(request); }