Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        // 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));
        }
Exemplo n.º 5
0
        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));
        }