public void GetGeoCode(Classmate entity) { if (entity != null && entity.HomeAddress == string.Empty) { entity.Lat = string.Empty; entity.Lng = string.Empty; return; } System.Threading.Thread.Sleep(200); // wait a bit to avoid over limit error try { IGeocoder geocoder = new GoogleGeocoder(); IEnumerable<Address> addresses = geocoder.Geocode(entity.HomeAddress); if (addresses.Count() > 0) { entity.Lat = addresses.First().Coordinates.Latitude.ToString(); entity.Lng = addresses.First().Coordinates.Longitude.ToString(); } } catch (Exception ex) { throw ex; } }
public void AddOrUpdateClassmate(Classmate entity) { Helper.Guard.New().IsAuthentic(); if (entity != null) { entity.PartitionKey = entity.ClassId; entity.RowKey = entity.Name; entity.ModifiedDate = DateTime.Now.ToShortDateString(); entity.ModifiedUser = User.Identity.Name; var map = new GoogleMap(); map.GetGeoCode(entity); op.AddorUpdateEntity(entity); } }
public HttpResponseMessage vcard(Classmate entity) { Helper.Guard.New().IsAuthentic(); var response = new HttpResponseMessage(HttpStatusCode.OK); string filepath = HttpContext.Current.Server.MapPath("~/Image/" + entity.PhotoId); var bytes = op.GenerateVcard(entity, filepath); Stream stream = new MemoryStream(bytes); response.Content = new StreamContent(stream); response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("content-disposition"); response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("text/x-vcard"); response.Content.Headers.ContentDisposition.FileName = "contact.vcf"; return response; }
public void ImportData(string filepath, string user = "******") { //try //{ FileStream stream = File.Open(filepath, FileMode.Open, FileAccess.Read); //1. Reading from a OpenXml Excel file (2007 format; *.xlsx) IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); //2. DataSet - Create column names from first row excelReader.IsFirstRowAsColumnNames = true; DataSet result = excelReader.AsDataSet(); var list = new List<Classmate>(); var table = result.Tables[0]; var columns = table.Columns; //3. Data Reader methods foreach (DataRow row in table.Rows) { if (row[columns["ClassId"]].ToString() != string.Empty && row[columns["Name"]].ToString() != string.Empty) { var item = new Classmate(); item.PartitionKey = row[columns["ClassId"]].ToString(); item.RowKey = row[columns["Name"]].ToString(); item.ClassId = row[columns["ClassId"]].ToString(); item.Name = row[columns["Name"]].ToString(); item.EnglishName = row[columns["EnglishName"]].ToString(); item.Birthday = row[columns["Birthday"]].ToString(); item.CellPhone = row[columns["CellPhone"]].ToString(); item.Company = row[columns["Company"]].ToString(); item.Email = row[columns["Email"]].ToString(); item.FaceBookAccount = row[columns["FaceBookAccount"]].ToString(); item.Gender = row[columns["Gender"]].ToString(); item.HomeAddress = row[columns["HomeAddress"]].ToString(); item.HomePhone = row[columns["HomePhone"]].ToString(); item.LineAccount = row[columns["LineAccount"]].ToString(); item.Notes = row[columns["Notes"]].ToString(); item.ModifiedUser = user; item.ModifiedDate = DateTime.Now.ToShortDateString(); item.OfficeAddrss = row[columns["OfficeAddrss"]].ToString(); item.OfficePhone = row[columns["OfficePhone"]].ToString(); item.Position = row[columns["Position"]].ToString(); item.SeatNumber = row[columns["SeatNumber"]].ToString(); item.Status = row[columns["Status"]].ToString().Trim(); map.GetGeoCode(item); list.Add(item); } } //4. Free resources (IExcelDataReader is IDisposable) excelReader.Close(); if (list.Count() > 0) { //remove previous data op.DeleteEntityBySingleKey(list[0].PartitionKey); //insert new data op.AddorUpdateEntityList(list); } //} //catch (Exception ex) //{ // throw ex; //} }