Ejemplo n.º 1
0
        public ActionResult GetImageByte(int id)
        {
            tTravelDetail _TravelDetail = db.tTravelDetail.Find(id);

            byte[] img = _TravelDetail.fTD_Image;
            return(File(img, "image/jpeg"));
        }
Ejemplo n.º 2
0
        public ActionResult CreateDetail(tTravelDetail _TravelDetail, HttpPostedFileBase fImage, string fTD_site)
        {
            if (ModelState.IsValid)
            {
                if (fImage != null && fImage.ContentLength > 0)
                {
                    tMessageCode _MCode = new tMessageCode();
                    db.tMessageCode.Add(_MCode);
                    db.SaveChanges();

                    //將上傳的圖轉成二進位
                    var    imgSize = fImage.ContentLength;
                    byte[] imgByte = new byte[imgSize];
                    fImage.InputStream.Read(imgByte, 0, imgSize);
                    _TravelDetail.fTD_Image = imgByte;

                    //將tTD_side地址轉座標
                    var requestUri = string.Format("http://maps.googleapis.com/maps/api/geocode/xml?address={0}", Uri.EscapeDataString(fTD_site));
                    var request    = WebRequest.Create(requestUri);
                    var response   = request.GetResponse();
                    var xdoc       = XDocument.Load(response.GetResponseStream());

                    var result          = xdoc.Element("GeocodeResponse").Element("result");
                    var locationElement = result.Element("geometry").Element("location");
                    var lat             = locationElement.Element("lat");
                    var lng             = locationElement.Element("lng");

                    double latitude = Double.Parse(lat.Value);
                    double lngitude = Double.Parse(lng.Value);
                    _TravelDetail.fTD_site = String.Format("{0},{1}", Convert.ToString(latitude), Convert.ToString(lngitude));
                    _TravelDetail.fMC_ID   = db.tMessageCode.AsEnumerable().Last().fMC_ID;
                    db.tTravelDetail.Add(_TravelDetail);
                    db.SaveChanges();

                    return(RedirectToAction("Index", "TravelMapHome"));
                }
                else
                {
                    ViewBag.message = "請選擇圖檔!!";
                }
            }

            return(View());
        }
Ejemplo n.º 3
0
        //評分系統
        public ActionResult GetScore(tDetailScore _DScore, int id, string _starScore = "")
        {
            if (_starScore != "")
            {
                string epCode = Request.Cookies["account"].Value;
                int    epID   = db.tEmployee.Where(q => q.fEp_Code == epCode).Single().fEp_ID;

                //檢查此客戶過去是否已經有評分
                var userScore = from s in db.tDetailScore
                                where (s.fTD_ID == id && s.fEP_ID == epID)
                                select s;
                int uss = userScore.Count();
                //沒有評過分則新增
                if (uss == 0)
                {
                    _DScore.fTD_ID    = id;
                    _DScore.fEP_ID    = epID;
                    _DScore.fDS_Score = _starScore;
                    db.tDetailScore.Add(_DScore);
                    db.SaveChanges();
                }
                //若有評過分則修改之前的評分
                else
                {
                    _DScore                 = db.tDetailScore.Find(userScore.Single().fDS_ID);
                    _DScore.fDS_Score       = _starScore;
                    db.Entry(_DScore).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                }
            }

            //計算推薦地方的平均分數
            db.tDetailScore.Where(s => s.fTD_ID == id);
            var a = from s in db.tDetailScore
                    where (s.fTD_ID == id)
                    select s.fDS_Score;

            double ScoreCount = a.Count();
            double sum        = 0;

            foreach (var scoreall in a)
            {
                sum += Convert.ToDouble(scoreall);
            }
            if (ScoreCount == 0)
            {
                ViewBag.ScoreAvg = "0";
            }
            else
            {
                ViewBag.ScoreAvg = (sum / ScoreCount).ToString("#0.0");
            }

            //將平均分數記錄到資料庫中,方便做排序
            tTravelDetail TD = db.tTravelDetail.Find(id);

            TD.fTD_Score       = ViewBag.ScoreAvg;
            db.Entry(TD).State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();

            return(PartialView());
        }