public void When() { using (var session = OpenSession()) { DateTimeProvider.Now = () => new DateTime(2012, 10, 11); var query = new TweedehandsQuery(Guid.NewGuid(), "Carzzz", "Category", "*****@*****.**"); query.ChangeStatus(Status.Confirmed); session.Store(query); _querId = query.Id; var queryCollection1 = new QueryResultCollection(query.Id, new List<QueryResult>() { new QueryResult(new DateTime(2010, 10, 10), "Test 1", "http://www.test.be/1"), new QueryResult(new DateTime(2010, 10, 11), "Test 2", "http://www.test.be/2"), }); var queryCollection2 = new QueryResultCollection(query.Id, new List<QueryResult>() { new QueryResult(new DateTime(2010, 10, 12), "Test 3", "http://www.test.be/3"), new QueryResult(new DateTime(2010, 10, 13), "Test 4", "http://www.test.be/4"), }); session.Store(queryCollection1); session.Store(queryCollection2); _collectionId1 = queryCollection1.Id; _collectionId2 = queryCollection2.Id; session.SaveChanges(); } DateTimeProvider.Now = () => new DateTime(2012, 10, 12); _mailGun = new Mock<IMailGun>(); var mailJob = new AlertJob(_mailGun.Object); mailJob.Execute(new Mock<IJobExecutionContext>().Object); }
/// <summary> /// Query the freedb server to see if there is information on this cd /// </summary> /// <param name="querystring"></param> /// <param name="queryResult"></param> /// <param name="queryResultsColl"></param> /// <returns></returns> public string Query(string querystring, out QueryResult queryResult, out QueryResultCollection queryResultsColl) { queryResult = null; queryResultsColl = null; StringCollection coll = null; StringBuilder builder = new StringBuilder(FreedbHelper.Commands.CMD_QUERY); builder.Append("+"); builder.Append(querystring); //make call try { coll = Call(builder.ToString()); } catch (Exception ex) { string msg = "Unable to perform cddb query."; Exception newex = new Exception(msg, ex); throw newex; } // check if results came back if (coll.Count < 0) { string msg = "No results returned from cddb query."; Exception ex = new Exception(msg, null); throw ex; } string code = GetCode(coll[0]); if (code == ResponseCodes.CODE_INVALID) { string msg = "Unable to process results returned for query: Data returned: " + coll[0]; Exception ex = new Exception(msg, null); throw ex; } switch (code) { case ResponseCodes.CODE_500: return(ResponseCodes.CODE_500); // Multiple results were returned // Put them into a queryResultCollection object case ResponseCodes.CODE_211: case ResponseCodes.CODE_210: { queryResultsColl = new QueryResultCollection(); //remove the 210 or 211 coll.RemoveAt(0); foreach (string line in coll) { QueryResult result = new QueryResult(line, true); queryResultsColl.Add(result); } return(ResponseCodes.CODE_211); } // exact match case ResponseCodes.CODE_200: { queryResult = new QueryResult(coll[0]); return(ResponseCodes.CODE_200); } //not found case ResponseCodes.CODE_202: return(ResponseCodes.CODE_202); //Database entry is corrupt case ResponseCodes.CODE_403: return(ResponseCodes.CODE_403); //no handshake case ResponseCodes.CODE_409: return(ResponseCodes.CODE_409); default: return(ResponseCodes.CODE_500); } // end of switch }
private void Query(string queryId) { try { using (var session = DocumentStore.OpenSession()) { var query = session.Load<Documents.TweedehandsQuery>(queryId); //TODO: Change document to have region property var queryResults = _queryService.Query("belgium", query.Category, query.Value); var resultsMinTimestamp = query.LastQueriedOn ?? query.CreatedOn; var newResults = queryResults.Items .Where(x => x.DateTime.Value > resultsMinTimestamp) .Select(x => new Documents.QueryResult(x.DateTime.Value, x.Title.Value, x.Url)); if (newResults.Any()) { var queryResultCollection = new QueryResultCollection(query.Id, new List<Documents.QueryResult>(newResults)); session.Store(queryResultCollection); } query.UpdateLastQueriedOn(); session.SaveChanges(); } Logger.Debug("Query", "Query " + queryId); } catch (Exception ex) { Logger.Error(GetType().ToString(), string.Format("Something went wrong querying queryId {0}.", queryId), ex); } }