Exemplo n.º 1
0
        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;
            //}
        }