public JsonResult Delete(int id)
        {
            var oResult = new Object();

            try
            {
                var settings = new ConnectionConfiguration(new Uri("http://localhost:9200/"))
                               .RequestTimeout(TimeSpan.FromMinutes(2));

                var lowlevelClient = new ElasticLowLevelClient(settings);

                var searchResponse = lowlevelClient.Delete <string>("user", "guest", id.ToString());

                bool successful = searchResponse.Success;

                oResult = new
                {
                    Bresult = successful,
                    Notice  = successful ? "删除成功!" : "删除失败!"
                };

                var responseJson = searchResponse.Body;

                return(Json(oResult, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                oResult = new
                {
                    Bresult = false,
                    Notice  = String.Format("删除失败!异常:{0}", ex.Message)
                };
                return(Json(oResult, JsonRequestBehavior.AllowGet));
            }
        }
        /// <summary>
        /// 删除文档
        /// </summary>
        /// <param name="index"></param>
        /// <param name="type"></param>
        /// <param name="id"></param>
        public bool DeleteDocument(string index, string type, string id)
        {
            bool flag = false;

            StringResponse resStr = null;

            try
            {
                resStr = client.Delete <StringResponse>(index, type, id);
                var resObj = JObject.Parse(resStr.Body);
                if ((int)resObj["_shards"]["total"] == 0 || (int)resObj["_shards"]["successful"] > 0)
                {
                    flag = true;
                }
                else
                {
                    LogUtil.LogInfo(logger, resStr.DebugInformation, nodeId);
                }
            }
            catch (Exception ex)
            {
                if (resStr != null)
                {
                    LogUtil.LogInfo(logger, resStr.DebugInformation, nodeId);
                }
                LogUtil.LogError(logger, ex.ToString(), nodeId);
            }

            return(flag);
        }
        /// <summary>
        /// Delete specified document from Elasticsearch.
        /// It is ok to try to delete a document that is not in the index.
        /// </summary>
        /// <param name="type">Type name.</param>
        /// <param name="documentId">Type name.</param>
        protected void DeleteDocument(String type, String documentId)
        {
            Boolean succeeded;
            ElasticsearchResponse <DynamicResponse> response;

            succeeded = false;
            while (!succeeded)
            {
                try
                {
                    response = _client.Delete <DynamicResponse>(IndexName, type, documentId);
                    if (response.HttpStatusCode == 404)
                    {
                        succeeded = true;
                    }
                    else
                    {
                        CheckResponse(response);
                        succeeded = true;
                    }
                }
                catch (Exception)
                {
                    // Maybe Elasticsearch is to busy. Try again after a minute.
                    Thread.Sleep(60000);
                    succeeded = false;
                }
            }
        }
        public async Task <IActionResult> GetResponseByFeedbackId(string feedbackId)
        {
            /*_equipmentGroup.*/
            //get questionId from feedbackId
            List <Question>              listQuestion      = _questionRepository.GetAll().ToList <Question>();
            List <Question>              listQuestionForFb = new List <Question>();
            List <string>                listQuestionId    = new List <string>();
            List <ResponseModel>         listResponse      = new List <ResponseModel>();
            List <Response>              listTmp           = new List <Response>();
            List <ResponseModel>         listResForOneQues = new List <ResponseModel>();
            List <List <ResponseModel> > listResult        = new List <List <ResponseModel> >();

            foreach (Question que in listQuestion)
            {
                if (que.FeedbackId.Equals(feedbackId))
                {
                    listQuestionId.Add(que.QuestionId);
                    listQuestionForFb.Add(que);
                }
            }
            //get all response from QuestionID
            for (int questionIndex = 0; questionIndex < listQuestionId.Count; questionIndex++)
            {
                listTmp = _responseRepository.GetResponseByQuestionId(listQuestionId[questionIndex]).ToList();
                foreach (Response r in listTmp)
                {
                    String        tmpResponseDetail  = r.ResponseDetail;
                    List <string> listResponseDetail = new List <string>();
                    //TypeOfQuestion 1: Emotion
                    if (r.Question.TypeOfQuestion == 1)
                    {
                        switch (tmpResponseDetail)
                        {
                        case "1":
                            tmpResponseDetail = "Thất vọng";
                            break;

                        case "2":
                            tmpResponseDetail = "Tạm ổn";
                            break;

                        case "3":
                            tmpResponseDetail = "Tốt";
                            break;

                        case "4":
                            tmpResponseDetail = "Tuyệt vời";
                            break;

                        case "5":
                            tmpResponseDetail = "Yêu thích";
                            break;
                        }
                    }
                    //TypeOfQuestion 2: Rating star
                    else if (r.Question.TypeOfQuestion == 2)
                    {
                        tmpResponseDetail = r.ResponseDetail.Substring(0, 1) + " sao";
                    }
                    else if (r.Question.TypeOfQuestion == 3)
                    {
                        listResponseDetail = getResponseDetail(r.ResponseDetail);
                        foreach (string detail in listResponseDetail)
                        {
                            ResponseModel resModelForMultichoice = new ResponseModel
                            {
                                equipmentId    = r.EquipmentId,
                                questionId     = questionIndex + "",
                                responseDetail = detail,
                                typeOfQuestion = r.Question.TypeOfQuestion + "",
                                responseTime   = r.ResponseTime
                            };
                            listResponse.Add(resModelForMultichoice);
                        }
                    }
                    //TypeOfQuestion 4: one choice
                    else if (r.Question.TypeOfQuestion == 4)
                    {
                        tmpResponseDetail = r.ResponseDetail;
                    }

                    if (r.Question.TypeOfQuestion != 3)
                    {
                        ResponseModel resModel = new ResponseModel
                        {
                            equipmentId    = r.EquipmentId,
                            questionId     = questionIndex + "",
                            responseDetail = tmpResponseDetail,
                            typeOfQuestion = r.Question.TypeOfQuestion + "",
                            responseTime   = r.ResponseTime
                        };
                        listResponse.Add(resModel);
                        if (questionIndex == 0)
                        {
                            listResForOneQues.Add(resModel);
                        }
                    }
                }
                listResult.Add(listResponse);
            }

            var settings = new ConnectionConfiguration(new Uri("http://localhost:9200"))
                           .RequestTimeout(TimeSpan.FromMinutes(2));
            var lowlevelClient = new ElasticLowLevelClient(settings);
            //push data on elastic for count response of feedback
            int i = 0;
            int checkIdOfIndexExist = 0;

            if (HttpContext.Session.GetInt32("TotalIdIndexOfCountRes") != null)
            {
                checkIdOfIndexExist = (int)HttpContext.Session.GetInt32("TotalIdIndexOfCountRes");
                if (checkIdOfIndexExist != 0)
                {
                    //Clear all data in index
                    for (int j = 1; j <= checkIdOfIndexExist; j++)
                    {
                        lowlevelClient.Delete <StringResponse>("countresponseforfb", Convert.ToString(j));
                    }
                    HttpContext.Session.Remove("TotalIdIndexOfCountRes");
                }
            }
            foreach (ResponseModel res in listResForOneQues)
            {
                lowlevelClient.Index <StringResponse>("countresponseforfb", Convert.ToString(++i), PostData.Serializable(res));
            }
            HttpContext.Session.SetInt32("TotalIdIndexOfCountRes", i);


            //Id cho tung object trong index
            #region push response on elastic
            i = 0;
            checkIdOfIndexExist = 0;
            if (HttpContext.Session.GetInt32("TotalIdIndex") != null)
            {
                checkIdOfIndexExist = (int)HttpContext.Session.GetInt32("TotalIdIndex");
                if (checkIdOfIndexExist != 0)
                {
                    //Clear all data in index
                    for (int j = 1; j <= checkIdOfIndexExist; j++)
                    {
                        lowlevelClient.Delete <StringResponse>("testresponse", Convert.ToString(j));
                    }
                    HttpContext.Session.Remove("TotalIdIndex");
                }
            }

            foreach (ResponseModel res in listResponse)
            {
                lowlevelClient.Index <StringResponse>("testresponse", Convert.ToString(++i), PostData.Serializable(res));
            }

            HttpContext.Session.SetInt32("TotalIdIndex", i);
            #endregion

            ViewBag.countResponse = listResForOneQues.Count;
            ViewBag.listQuestion  = listQuestionForFb;
            ViewBag.feedbackId    = feedbackId;
            getFeedbackIDByBrandId();
            getEquipmentGroupId();

            await HttpContext.Session.LoadAsync();

            HttpContext.Session.SetString("feedbackId", feedbackId);
            await HttpContext.Session.CommitAsync();

            EquipmentGroup e = new EquipmentGroup {
                EquipmentGroupId = HttpContext.Session.GetString("equipmentGroupId")
            };
            await GetListFeedbackByEquipmentGroupId(e);

            return(View("Admin"));
        }
Exemple #5
0
 public virtual void Remove(string indexName, string type, int id)
 {
     var removeResponse = Client.Delete <BytesResponse>(indexName, type, id.ToString());
 }
Exemple #6
0
        protected override void Execute(CodeActivityContext context)
        {
            {
                String Error   = "";
                bool   Res     = false;
                bool   Success = false;
                String Resp    = "";

                try
                {
                    //var lowlevelClient = new ElasticLowLevelClient();


                    var node = new Uri(URL.Get(context));
                    ConnectionConfiguration config;

                    if (AuthenticationRequired.Get(context) == true)
                    {
                        config = new ConnectionConfiguration(node).BasicAuthentication(UserName.Get(context), Password.Get(context));
                    }
                    else
                    {
                        config = new ConnectionConfiguration(node);
                    }

                    var lowlevelClient = new ElasticLowLevelClient(config);

                    var deleteData = lowlevelClient.Delete <BytesResponse>(Index.Get(context), Type.Get(context), ID.Get(context));

                    var responseBytes = deleteData.Body;
                    if (responseBytes == null)
                    {
                        responseBytes = deleteData.ResponseBodyInBytes;
                    }

                    Resp = Encoding.UTF8.GetString(responseBytes, 0, responseBytes.Length);

                    Success = deleteData.Success;

                    if (Success == true)
                    {
                        Error = "";
                        Res   = true;

                        ErrorMessage.Set(context, Error);
                        Response.Set(context, Resp);
                        Result.Set(context, Res);
                    }
                    else
                    {
                        throw deleteData.OriginalException;
                        //ErrorMessage = insertData.OriginalException.ToString();
                        //Result = false;
                    }
                }
                catch (Exception ex)
                {
                    Error = "Failed to delete data from ElasticSearch. " + ex.Message;
                    Res   = false;

                    ErrorMessage.Set(context, Error);
                    Response.Set(context, Resp);
                    Result.Set(context, Res);
                }
            }
        }