public static List <Practice_Doctors_Model> Get_Doctors_for_PracticeIDList(Practice_Parameter parameter, SessionSecurityTicket securityTicket) { //opdoc tenant var TenantID = securityTicket.TenantID.ToString(); var serializer = new JsonNetSerializer(); var connection = Elastic_Utils.ElsaticConnection(); string queryS = string.Empty; string elasticType = "user"; List <Practice_Doctors_Model> modelForSendL = new List <Practice_Doctors_Model>(); if (Elastic_Utils.IfIndexOrTypeExists(TenantID, connection) && Elastic_Utils.IfIndexOrTypeExists(TenantID + "/" + elasticType, connection)) { var query = new QueryBuilder <Practice_Doctors_Model>() .From(parameter.start_row_index) .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type) .Value("doctor")) .Term(term2 => term2.Field(id => id.practice_for_doctor_id) .Value(parameter.practice_id.ToString()))))))) .Sort(s => s .Field(parameter.sortfield, parameter.ascending ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc) .Field("name_untouched", parameter.ascending ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc)); queryS = query.BuildBeautified(); string searchCommand_Doctors_PracticeID = Commands.Search(TenantID, elasticType).Pretty(); string result = connection.Post(searchCommand_Doctors_PracticeID, queryS); var foundResults_Doctors = serializer.ToSearchResult <Practice_Doctors_Model>(result); foreach (var item in foundResults_Doctors.Documents) { if (parameter.sortfield.Equals("bank_untouched")) { item.group_name = string.IsNullOrEmpty(item.bank) ? "-" : item.bank; } else if (parameter.sortfield.Equals("type")) { item.group_name = item.type.Equals("Doctor") ? "Arzt" : "Praxis"; } else if (parameter.sortfield.Equals("account_status")) { item.group_name = item.account_status; } else if (parameter.sortfield.Equals("contract")) { item.group_name = item.contract.ToString(); } else { item.group_name = string.IsNullOrEmpty(item.name_untouched) ? "-" : item.name_untouched.Substring(0, 1).ToUpper(); } modelForSendL.Add(item); } } return(modelForSendL); }
public static List <Practice_Doctors_Model> Get_AC_Doctors_and_Practices(Practice_Parameter parameter, SessionSecurityTicket securityTicket) { var TenantID = securityTicket.TenantID.ToString(); var serializer = new JsonNetSerializer(); var connection = Elastic_Utils.ElsaticConnection(); string queryS = string.Empty; List <Practice_Doctors_Model> modelForSendL = new List <Practice_Doctors_Model>(); if (Elastic_Utils.IfIndexOrTypeExists(TenantID, connection) && Elastic_Utils.IfIndexOrTypeExists(TenantID + "/" + elasticType, connection)) { var query = new QueryBuilder <Practice_Doctors_Model>() .Query(q => q .Bool(b => b .Should(sh => sh.Bool(tb => tb.Should(s => s.Bool(tbt => tbt.Must(m => m .Term(tr => tr.Field("practice_for_doctor_id").Value(parameter.practice_id.ToString())) .Term(tr => tr.Field("account_status").Value("temp")) )).Bool(ab => ab.Must(mm => mm.Term(tt => tt.Field("account_status").Value("aktiv")))) ).MinimumNumberShouldMatch(1)) .Match(m => m .Field("name") .Query(parameter.search_criteria.ToLower()).Operator(PlainElastic.Net.Operator.AND) ) .Match(m => m .Field("bsnr_lanr") .Query(parameter.search_criteria.ToLower()).Operator(PlainElastic.Net.Operator.AND) ) ).MinimumNumberShouldMatch(2) ) ).Sort(s => s.Field(sr => sr.type, PlainElastic.Net.SortDirection.asc) .Field(parameter.sortfield, parameter.ascending ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc)) .From(0) .Size(100); queryS = query.BuildBeautified(); string searchCommand_Doc_Practices = Commands.Search(TenantID, elasticType).Pretty(); string result = connection.Post(searchCommand_Doc_Practices, queryS); Dictionary <string, int> PracticeDoctorsCount = new Dictionary <string, int>(); var foundResults_Doctors = serializer.ToSearchResult <Practice_Doctors_Model>(result); try { foreach (var item in foundResults_Doctors.Documents) { item.type = item.type.Equals("Practice") ? "LABEL_PRACTICES" : "LABEL_DOCTORS"; } modelForSendL = foundResults_Doctors.Documents.ToList(); } catch (Exception ex) { var a = ex.StackTrace; } } return(modelForSendL); }
public HttpResponseMessage GetDoctorsforPracticeID(Practice_Parameter Parameter) { TransactionalInformation transaction = new TransactionalInformation(); List <Practice_Doctors_Model> data = docDataService.GetDoctorsForPracticeID(Parameter, connectionString, SessionToken, out transaction); if (transaction.ReturnStatus) { return(Request.CreateResponse(HttpStatusCode.OK, data)); } return(Request.CreateResponse(HttpStatusCode.BadRequest)); }
public static List <Practice_Doctors_Model> Get_Doctors_That_Work_In_Practice_for_PracticeID(Practice_Parameter parameter, SessionSecurityTicket userSecurityTicket) { //opdoc tenant var TenantID = userSecurityTicket.TenantID.ToString(); var serializer = new JsonNetSerializer(); var connection = Elastic_Utils.ElsaticConnection(); string queryS = string.Empty; string elasticType = "user"; List <Practice_Doctors_Model> modelForSendL = new List <Practice_Doctors_Model>(); if (Elastic_Utils.IfIndexOrTypeExists(TenantID, connection) && Elastic_Utils.IfIndexOrTypeExists(TenantID + "/" + elasticType, connection)) { if (string.IsNullOrEmpty(parameter.role)) { if (parameter.account_status.HasValue) { var status = parameter.account_status.Value ? "aktiv" : "inaktiv"; var query = new QueryBuilder <Practice_Doctors_Model>() .From(0) .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type) .Value("doctor")) .Term(term2 => term2.Field(id => id.practice_for_doctor_id) .Value(parameter.practice_id.ToString())) .Term(term2 => term2.Field(st => st.account_status) .Value(status))))))); queryS = query.BuildBeautified(); } else { var query = new QueryBuilder <Practice_Doctors_Model>() .From(0) .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type) .Value("doctor")) .Term(term2 => term2.Field(id => id.practice_for_doctor_id) .Value(parameter.practice_id.ToString()))))))); queryS = query.BuildBeautified(); } } else { if (!string.IsNullOrEmpty(parameter.search_criteria)) { var query = new QueryBuilder <Practice_Doctors_Model>() .From(0) .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type) .Value("doctor")) .Term(term2 => term2.Field(id => id.practice_for_doctor_id) .Value(parameter.practice_id.ToString())) .Term(term2 => term2.Field(role => role.role) .Value(parameter.role))) .Should(s => s.Term(term => term.Field(name => name.name).Value(parameter.search_criteria.ToLower()))))))) .Sort(s => s .Field(parameter.sortfield, parameter.ascending ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc)); queryS = query.BuildBeautified(); } else { var query = new QueryBuilder <Practice_Doctors_Model>() .From(0) .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type) .Value("doctor")) .Term(term2 => term2.Field(id => id.practice_for_doctor_id) .Value(parameter.practice_id.ToString())) .Term(term2 => term2.Field(role => role.role) .Value(parameter.role))))))) .Sort(s => s .Field(parameter.sortfield, parameter.ascending ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc)); queryS = query.BuildBeautified(); } } string searchCommand_Doctors_PracticeID = Commands.Search(TenantID, elasticType).Pretty(); string result = connection.Post(searchCommand_Doctors_PracticeID, queryS); var foundResults_Doctors = serializer.ToSearchResult <Practice_Doctors_Model>(result); modelForSendL = foundResults_Doctors.Documents.ToList(); } return(modelForSendL); }
public static List <Practice_Doctors_Model> Get_Doctors_for_PracticeID_with_Bank_Account_Inheritance(Practice_Parameter parameter, SessionSecurityTicket userSecurityTicket) { //opdoc tenant var TenantID = userSecurityTicket.TenantID.ToString(); var serializer = new JsonNetSerializer(); var connection = Elastic_Utils.ElsaticConnection(); string queryS = string.Empty; var query = new QueryBuilder <Practice_Doctors_Model>() .From(0) .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type) .Value("doctor")) .Term(term2 => term2.Field(id => id.practice_for_doctor_id) .Value(parameter.practice_id.ToString())) .Term(term3 => term3.Field(ia => ia.bank_info_inherited) .Value(true.ToString())) .Term(term4 => term4.Field(fi => fi.bank_id).Value(parameter.practice_bank_account_id))))))); queryS = query.BuildBeautified(); string searchCommand_Doctors_PracticeID = Commands.Search(TenantID, "user").Pretty(); string result = connection.Post(searchCommand_Doctors_PracticeID, queryS); var foundResults_Doctors = serializer.ToSearchResult <Practice_Doctors_Model>(result); return(foundResults_Doctors.Documents.ToList()); }