public ElasticResult <ElasticUser> Login(string login, string password) { var searchDescriptor = new SearchDescriptor <ElasticUser>().Query( q => q.Bool( b => b.Must( m => m.Term(fields => fields.Field(f => f.Login).Value(login)) && m.Term(fields => fields.Field(f => f.Password).Value(password))))) .Index(_elasticRepository.EsIndex) .Type(EsType); var response = _elasticRepository.ExecuteSearchRequest(searchDescriptor); return(_entityRepository.GetEntityIfOnlyOneEntityInElasticResponse(response)); }
public ElasticResult <T> Get <T>(string esType, string guid) where T : class, IGuidedEntity { var searchDescriptor = new SearchDescriptor <T>().Query( q => q.Term(t => t.Field(f => f.Guid).Value(guid))).Index(_elasticRepository.EsIndex).Type(esType); var response = _elasticRepository.ExecuteSearchRequest(searchDescriptor); return(GetEntityIfOnlyOneEntityInElasticResponse(response)); }
public ElasticResult <ElasticChatUser> Get(string chatGuid, string userGuid) { var searchDescriptor = new SearchDescriptor <ElasticChatUser>().Query(q => q .Bool(b => b .Must( m => m.Term(t => t.Field(f => f.UserGuid).Value(userGuid)), m => m.Term(t => t.Field(f => f.ChatGuid).Value(chatGuid)) )) ) .Index(_elasticRepository.EsIndex) .Type(EsType); var response = _elasticRepository.ExecuteSearchRequest(searchDescriptor); return(response.Success ? _entityRepository.GetEntityIfOnlyOneEntityInElasticResponse(response) : ElasticResult <ElasticChatUser> .FailResult(response.Message)); }
// Check Chat Is Unique private ElasticResult <ElasticChat> CheckChat(ElasticChat chat) { var searchDescriptor = new SearchDescriptor <ElasticChat>().Query( q => q.Term(t => t.Field(f => f.Guid).Value(chat.Guid))).Index(_elasticRepository.EsIndex).Type(EsType); var response = _elasticRepository.ExecuteSearchRequest(searchDescriptor); // If request well executed. And user is unique. if (response.Success && !response.Response.Hits.Any()) { return(ElasticResult <ElasticChat> .SuccessResult(chat)); } return(response.Success ? ElasticResult <ElasticChat> .FailResult("Server Error") : ElasticResult <ElasticChat> .FailResult(response.Message)); }
public ElasticResult <ElasticMessage[]> GetAllByChatGuid(string guid, DateTime lastSendTime, int count) { var searchDescriptor = new SearchDescriptor <ElasticMessage>().Query( q => q.Bool( b => b.Must( m => m.Term(fields => fields.Field(f => f.ChatGuid).Value(guid)) && m.DateRange(fields => fields.Field(f => f.SendTime).LessThan(lastSendTime))))) .Index(_elasticRepository.EsIndex) .Type(EsType) .Size(count) .Sort(s => s.Field(sf => sf.Field(f => f.SendTime).Descending())); var response = _elasticRepository.ExecuteSearchRequest(searchDescriptor); return(_entityRepository.GetEntitiesFromElasticResponse(response)); }