예제 #1
0
        public async Task <UserSimpleQuery> InserirAsync(UserSimpleQuery query)
        {
            query.QueryId    = Guid.NewGuid().ToString();
            query.CreateDate = DateTime.Now;

            string jsonStr = JsonConvert.SerializeObject(query);

            using (SqlConnection conn = connectionFactory.GetConnection(Connections.PESQUISAANALYTICS))
            {
                string queryQueue = @"INSERT INTO [TB_PESQUISA_ANALYTICS]
                                            ([CD_PESQUISA_ANALYTICS]
                                            ,[JSON_PESQUISA]
                                            ,[DT_CADASTRO]
                                            ,[ST_INATIVO]
                                            ,[DT_ALTERACAO])
                                            VALUES
                                            (@QueryId
                                            ,@jsonStr
                                            ,GETDATE()
                                            ,0
                                            ,GETDATE())";

                await conn.ExecuteAsync(queryQueue, new { QueryId = query.QueryId, jsonStr = jsonStr });
            }

            return(query);
        }
예제 #2
0
        public async Task <IResponse> InsertAsync(UserSimpleQuery query)
        {
            // 1 - Valida se campos estão preenchidos
            if (string.IsNullOrWhiteSpace(query.Name) && query.QueryType == 1)
            {
                return(Response
                       .CreateErrorResponse(ValidationMessageHelper
                                            .Create(ValidationMessages.REQUIRED_FIELD_NAME)));
            }

            // 2 - Pesquisa a existência de pesquisa com o mesmo nome
            var pesquisas = await queryRepository.SearchByUserAsync(query.UserId);

            if (pesquisas.Where(e => e.Name == query.Name).Count() > 0)
            {
                return(Response
                       .CreateErrorResponse(ValidationMessageHelper
                                            .Create(ValidationMessages.DUPLICATE_NAME_SEARCH)));
            }

            // 3 - Caso pesquisa seja automática, enfileira a indexação da pesquisa
            //if (query.QueryType == 2) return Response.CreateResponse(await queryQueueRepository.InserirAsync(query));

            // 4 - Salva as informações da pesquisa
            var response = await queryRepository.InsertAsync(query);

            return(Response.CreateResponse(response));
        }
예제 #3
0
        public async Task UpdateAsync(UserSimpleQuery entidade)
        {
            ElasticClient client = factory.NewClient();

            entidade.ModifyDate = DateTime.Now;

            await client.IndexAsync(entidade, i => i.Id(entidade.QueryId).Index(PESQUISA_INDICE).Type(PESQUISA_TIPO));
        }
예제 #4
0
        public async Task <IResponse> DeleteAsync(UserSimpleQuery query)
        {
            var userQuery = await queryRepository.SearchByUserAsync(query.UserId);

            if (!userQuery.Any(e => e.QueryId == query.QueryId))
            {
                return(Response.CreateErrorResponse(ValidationMessageHelper.Create(ValidationMessages.QUERY_NOT_FOUND)));
            }

            await queryRepository.DeleteAsync(query.QueryId);

            return(Response.CreateResponse());
        }
예제 #5
0
        public async Task <UserSimpleQuery> InsertAsync(UserSimpleQuery pesquisa)
        {
            ElasticClient client = factory.NewClient();

            pesquisa.QueryId    = Guid.NewGuid().ToString();
            pesquisa.CreateDate = DateTime.Now;

            var response = await client.CreateAsync(pesquisa, i => i
                                                    .Id(pesquisa.QueryId)
                                                    .Index(PESQUISA_INDICE)
                                                    .Type(PESQUISA_TIPO));

            return(pesquisa);
        }