public async Task <cPostCodeDistance> GetCalculatedistanceAsync(string origin, string destination) { //string origin, destination; //origin = "600113"; //destination = "605008"; cPostCodeDistance distance = new cPostCodeDistance(); string uri; uri = "http://maps.googleapis.com/maps/api/distancematrix/json?origins=" + origin + ",india&destinations=" + destination + ",india&mode=driving&language=en-EN&sensor=false"; try { var client = new RestClient(uri); var request = new RestRequest(Method.GET); IRestResponse <cPostCodeDistance> asyncHandle = await client.ExecutePostTaskAsync <cPostCodeDistance>(request); distance = (cPostCodeDistance)asyncHandle.Data; return(distance); } catch (Exception ex) { distance.status = "failed"; return(distance); } }
public async Task <List <cServiceProvider> > ServicesbySearchv1_3(int userid, string userType, string SEARCH) { List <cServiceProvider> spCollctionlist = new List <cServiceProvider>(); List <cPartialSender> ServiceProviders = new List <cPartialSender>(); //List<cPartialSender> SendersList = new List<cPartialSender>(); string retvalue = "1", userPostcode = ""; try { string constr = ConfigurationManager.ConnectionStrings["MyAbDbContext"].ConnectionString; using (SqlConnection con = new SqlConnection(constr)) { SqlCommand cmd = new SqlCommand("sp_listServiceProviderforSearch", con); cmd.CommandType = CommandType.StoredProcedure; SqlDataReader reader; SqlParameter paramsearch = new SqlParameter(); paramsearch.ParameterName = "@search"; paramsearch.Value = SEARCH; cmd.Parameters.Add(paramsearch); SqlParameter paramuserid = new SqlParameter(); paramuserid.ParameterName = "@userID"; paramuserid.Value = userid; cmd.Parameters.Add(paramuserid); SqlParameter paramuserType = new SqlParameter(); paramuserType.ParameterName = "@userType"; paramuserType.Value = userType; cmd.Parameters.Add(paramuserType); /* cmd.Parameters.Add("@Result", SqlDbType.Int); * cmd.Parameters["@Result"].Direction = ParameterDirection.Output;*/ con.Open(); reader = cmd.ExecuteReader(); //retvalue = cmd.Parameters["@Result"].Value.ToString(); while (reader.Read()) { cPartialSender c = new cPartialSender(); c.SenderID = (int)reader["SenderID"]; c.SenderName = reader["SenderName"].ToString().Trim(); c.SenderContactNo_1 = reader["SenderContactNo_1"].ToString().Trim(); c.SenderContactNo_2 = reader["SenderContactNo_2"].ToString().Trim(); c.ContactHide = (Int16)reader["ContactHide"]; c.cServiceType = reader["cServiceType"].ToString().Trim(); c.ServiceDesc = reader["ServiceDesc"].ToString().Trim(); c.postcode = reader["POSTCODE"].ToString().Trim(); if (reader["logopath"] != null) { if (reader["logopath"].ToString().Length > 0) { c.logopath = reader["logopath"].ToString().Trim(); } } c.subscribeonoff = reader["subscribeonoff"].ToString().Trim(); c.ReviewReceived = (int)reader["ReviewReceived"]; c.msgCommentsReceived = (int)reader["msgCommentsReceived"]; c.msgLikeReceived = (int)reader["msgLikeReceived"]; c.msgTotpublished = (int)reader["msgTotpublished"]; c.msgReadBy = (int)reader["msgReadBy"]; c.isFCMActive = reader["isFCMActive"].ToString().Trim(); ServiceProviders.Add(c); //} // } // } while (reader.Read() && sp.cServiceCategory.Equals(reader["cServiceType"].ToString().Trim())); } } } catch (Exception ex) { retvalue = ex.Message.ToString(); } //return Ok(retvalue);*/ try { string constr = ConfigurationManager.ConnectionStrings["MyAbDbContext"].ConnectionString; using (SqlConnection con = new SqlConnection(constr)) { SqlCommand cmd = new SqlCommand("sp_getPostcode", con); cmd.CommandType = CommandType.StoredProcedure; SqlParameter paramuserType = new SqlParameter(); paramuserType.ParameterName = "@userType"; paramuserType.Value = userType; cmd.Parameters.Add(paramuserType); SqlParameter paramuserid = new SqlParameter(); paramuserid.ParameterName = "@userID"; paramuserid.Value = userid; cmd.Parameters.Add(paramuserid); cmd.Parameters.Add("@postcode", SqlDbType.NVarChar, 6); cmd.Parameters["@postcode"].Direction = ParameterDirection.Output; con.Open(); cmd.ExecuteNonQuery(); con.Close(); userPostcode = cmd.Parameters["@postcode"].Value.ToString(); } } catch (Exception e) { } SendNotificationController s = new SendNotificationController(); cPostCodeDistance distance = new cPostCodeDistance(); foreach (cPartialSender snd in ServiceProviders) { if (!userPostcode.Equals(snd.postcode)) { distance = await s.GetCalculatedistanceAsync(userPostcode, snd.postcode); if (distance.rows[0].elements[0].status.Contains("OK")) { snd.postcode = distance.rows[0].elements[0].distance.text; ////the value in KMS. eg 2,435 KM snd.ReviewReceived = int.Parse(distance.rows[0].elements[0].distance.value); /// the value in meters. eg 2435675 } } else { snd.postcode = "LOCAL"; snd.ReviewReceived = 0; } } for (int i = 0; i < ServiceProviders.Count; i++) { for (int j = 0; j < ServiceProviders.Count; j++) { cPartialSender swp = new cPartialSender(); if (ServiceProviders[i].ReviewReceived < ServiceProviders[j].ReviewReceived) { swp = ServiceProviders[j]; ServiceProviders[j] = ServiceProviders[i]; ServiceProviders[i] = swp; } } } cServiceProvider spprov = new cServiceProvider(); spprov.providers = ServiceProviders; spprov.cCount = ServiceProviders.Count; spprov.cServiceCategory = "Results Found"; spprov.cSvcDesc = SEARCH; spCollctionlist.Add(spprov); //return ServiceProviders; CreateEnquiries(userid, userType, spCollctionlist); return(spCollctionlist); }