コード例 #1
0
        public string FeelGood(string target)
        {
            if (Session["member"] != null)
            {
                var       loginMember = (tMember)Session["member"];
                int       select      = Convert.ToInt32(target);
                tActivity theTarget   = db.tActivity.FirstOrDefault(x => x.f活動編號 == select);
                int       index       = -1;
                if (!string.IsNullOrEmpty(theTarget.f活動按過讚的會員編號))
                {
                    var past = theTarget.f活動按過讚的會員編號.Split(',');               //將按過讚得會員編號 字串 切割 成陣列

                    index = Array.IndexOf(past, loginMember.f會員編號.ToString()); //透過查詢值在陣列內的索引值(不存在則回傳-1)
                    //查看是否會員編號包含在陣列內
                }

                if (index == -1) //陣列起始為0,因此只要pos>=0則表示該編號已存在,反之index=-1表示該編號不存在,可執行
                {
                    theTarget.f活動讚數        = (theTarget.f活動讚數 + 1);
                    theTarget.f活動按過讚的會員編號 += "," + loginMember.f會員編號;
                    db.SaveChanges();
                }
                else
                {
                    return("0");
                }
            }

            return("1");
        }
コード例 #2
0
        public string FeelGood(int memberID, int actID)
        {
            tActivity theTarget = db.tActivity.FirstOrDefault(x => x.f活動編號 == actID);
            int       index     = -1;

            if (!string.IsNullOrEmpty(theTarget.f活動按過讚的會員編號))
            {
                var past = theTarget.f活動按過讚的會員編號.Split(',');      //將按過讚得會員編號 字串 切割 成陣列

                index = Array.IndexOf(past, memberID.ToString()); //透過查詢值在陣列內的索引值(不存在則回傳-1)
                                                                  //查看是否會員編號包含在陣列內
            }

            if (index == -1)//陣列起始為0,因此只要pos>=0則表示該編號已存在,反之index=-1表示該編號不存在,可執行
            {
                theTarget.f活動讚數        = (theTarget.f活動讚數 + 1);
                theTarget.f活動按過讚的會員編號 += "," + memberID;
                db.SaveChanges();
                return(null);
            }
            else
            {
                return("0");
            }
        }
コード例 #3
0
        public async Task <IHttpActionResult> PuttActivity(int id, tActivity Activity)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != Activity.ID)
            {
                return(BadRequest());
            }

            db.Entry(Activity).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!tActivityExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #4
0
        public CGetMore ReadMore(int memberID, int actID)
        {
            AddViewCounts(actID);

            var       loginMember = db.tMember.Where(t => t.f會員編號 == memberID).FirstOrDefault();
            tActivity targetAct   = db.tActivity.Where(t => t.f活動編號 == actID).FirstOrDefault();

            if (targetAct.tMember.f會員評分 == null)
            {
                targetAct.tMember.f會員評分 = 0.0;
            }
            CGetMore result = new CGetMore();

            int index = -1;

            if (!string.IsNullOrEmpty(loginMember.f會員收藏的活動編號))
            {
                var analyze = loginMember.f會員收藏的活動編號.Split(',');
                index = Array.IndexOf(analyze, actID.ToString());
            }
            result.MemberLike = index > -1;

            string[] blackList = { };
            if (!string.IsNullOrEmpty(loginMember.f會員黑名單))
            {
                blackList = loginMember.f會員黑名單.Split(',');
            }
            result.BlackList   = blackList;
            result.TargetAct   = targetAct;
            result.LoginMember = loginMember;
            return(result);
        }
コード例 #5
0
        public ActionResult check_statusname()
        {
            DateTime nowdate = DateTime.Now;

            Session["today"] = nowdate.ToString("yyyy/MM/dd");
            var acvdates = from t in db.tActivity
                           select t;

            foreach (tActivity item in acvdates)
            {
                tActivity x = db.tActivity.FirstOrDefault(m => m.fId == item.fId);
                if (string.Compare(item.fActivityDate, nowdate.ToString("yyyy/MM/dd H:mm:ss")) > 0)
                {
                    x.fActTypeId = 1;
                }
                else if (string.Compare(item.fActivityDate, nowdate.ToString("yyyy/MM/dd H:mm:ss")) < 0 && string.Compare(item.fActivityEndDate, nowdate.ToString("yyyy/MM/dd")) > 0)
                {
                    x.fActTypeId = 2;
                }
                else if (string.Compare(item.fActivityDate, nowdate.ToString("yyyy/MM/dd H:mm:ss")) < 0)
                {
                    x.fActTypeId = 3;
                }
            }
            db.SaveChanges();
            return(RedirectToAction("ActivityList"));
        }
コード例 #6
0
        public ActionResult get_ajax_readmore(int act_id)
        {
            ViewCounts(act_id);
            tActivity target_act = db.tActivity.Where(t => t.f活動編號 == act_id).FirstOrDefault();

            return(View(target_act));
        }
コード例 #7
0
        public ActionResult ActivityDetailsEdit(tActivity t)
        {
            tActivity A = db.tActivity.FirstOrDefault(m => m.fId == t.fId);

            if (A != null)
            {
                A.fActName      = t.fActName;
                A.fCreatDate    = t.fCreatDate;
                A.fActivityDate = t.fActivityDate;
                A.fIntroduction = t.fIntroduction;
                A.fMaxLimit     = t.fMaxLimit;
                A.fMinLimit     = t.fMinLimit;
                A.fActLocation  = t.fActLocation;
                A.fCoordinateX  = t.fCoordinateX;
                A.fCoordinateY  = t.fCoordinateY;
                A.fActLabelId   = int.Parse(Request.Form["MLLDrop"]);

                A.fActAttestId = int.Parse(Request.Form["AttDrop"]);
                A.fActTypeId   = int.Parse(Request.Form["ActDrop"]);
                A.fMemberId    = int.Parse(Request.Form["MemDrop"]);

                db.SaveChanges();
            }


            return(RedirectToAction("ActivityList"));
        }
コード例 #8
0
        public ActionResult active_list_detail_Delete(int?id)
        {
            tActivity x = db.tActivity.FirstOrDefault(m => m.fId == id);

            db.tActivity.Remove(x);
            db.SaveChanges();
            return(View());
        }
コード例 #9
0
        public ActionResult ActivityStatusEdit(int Act, int Att, int fId)
        {
            tActivity a = db.tActivity.FirstOrDefault(m => m.fId == fId);

            a.fActAttestId = Att;
            a.fActTypeId   = Act;
            db.SaveChanges();
            return(RedirectToAction("ActivityList"));
        }
コード例 #10
0
        public ActionResult ActivityCreate(tActivity a)
        {
            a.fMemberId   = int.Parse(Request["MemDrop"]);
            a.fActLabelId = int.Parse(Request["LabDrop"]);
            db.tActivity.Add(a);
            db.SaveChanges();


            return(RedirectToAction("ActivityList"));
        }
コード例 #11
0
        public async Task <IHttpActionResult> GettActivity(int id)
        {
            tActivity tActivity = await db.tActivities.FindAsync(id);

            if (tActivity == null)
            {
                return(NotFound());
            }

            return(Ok(tActivity));
        }
コード例 #12
0
        public async Task <IHttpActionResult> PosttActivity(tActivity Activity)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.tActivities.Add(Activity);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = Activity.ID }, Activity));
        }
コード例 #13
0
        public ActionResult ActivityDelete(int?id)
        {
            tActivity a = db.tActivity.FirstOrDefault(m => m.fId == id);

            if (id == null)
            {
                return(RedirectToAction("ActivitiyList"));
            }

            db.tActivity.Remove(a);
            db.SaveChanges();
            return(RedirectToAction("ActivityList"));
        }
コード例 #14
0
        public ActionResult Edit(tActivity act)
        {
            tMember            loginMember = (tMember)Session["member"];
            HttpPostedFileBase picFile     = Request.Files["picFile"];
            string             filePath    = Server.MapPath("~/Content/images/");
            var result = travelModel.EditAct(loginMember.f會員編號, act, picFile, filePath);

            if (result == "1")
            {
                RedirectToAction("TravelIndex", "Travel", new { msg = "錯誤! 修改的活動時間與既有活動時間相衝" });
            }
            return(RedirectToAction("TravelIndex"));
        }
コード例 #15
0
        public ActionResult v查看(int?id)
        {
            if (id == null)
            {
                RedirectToAction("List");
            }

            dbJoutaEntities db = new dbJoutaEntities();
            tActivity       x  = new tActivity();

            x = db.tActivity.FirstOrDefault(m => m.f活動編號 == id);

            return(View(x));
        }
コード例 #16
0
        public async Task <IHttpActionResult> DeletetActivity(int id)
        {
            tActivity tActivity = await db.tActivities.FindAsync(id);

            if (tActivity == null)
            {
                return(NotFound());
            }

            db.tActivities.Remove(tActivity);
            await db.SaveChangesAsync();

            return(Ok(tActivity));
        }
コード例 #17
0
        public CGetMore ReadMore(int actID)
        {
            AddViewCounts(actID);
            tActivity targetAct = db.tActivity.Where(t => t.f活動編號 == actID).FirstOrDefault();

            if (targetAct.tMember.f會員評分 == null)
            {
                targetAct.tMember.f會員評分 = 0.0;
            }
            CGetMore result = new CGetMore();

            result.TargetAct = targetAct;
            return(result);
        }
コード例 #18
0
ファイル: EatController.cs プロジェクト: afsnj9732/IIIProject
        public ActionResult Add(tActivity p)
        {
            tMember Member = (tMember)Session["member"];

            //判別登入會員其活動時段是否已占用
            var NowMember = db.tMember.Where(t => t.f會員編號 == Member.f會員編號).FirstOrDefault();

            if (!string.IsNullOrEmpty(NowMember.f會員已占用時間))
            {
                string[] usedTime = NowMember.f會員已占用時間.Split(',');
                string[] used;
                foreach (var item in usedTime)
                {
                    if (!string.IsNullOrEmpty(item))
                    {
                        used = item.Split('~');  //used[0] 已佔用的開始時間,used[1] 已佔用的結束時間
                        if (string.Compare(p.f活動開始時間, used[1]) > 0 || string.Compare(used[0], p.f活動結束時間) > 0)
                        {
                        }
                        else
                        {
                            return(RedirectToAction("EatIndex", "Eat", new { msg = "錯誤! 新增的活動與既有活動時間相衝" }));
                        }
                    }
                }
            }
            //添加占用時間
            NowMember.f會員已占用時間 += "," + p.f活動開始時間 + "~" + p.f活動結束時間;
            p.f會員編號             = Member.f會員編號;
            p.f活動類型             = "飯局";
            p.f活動參加的會員編號        = "," + Member.f會員編號;
            db.tActivity.Add(p);
            db.SaveChanges();
            int ID = db.tActivity.Where(t => t.f會員編號 == Member.f會員編號)
                     .OrderByDescending(t => t.f活動發起日期).Select(t => t.f活動編號).FirstOrDefault();

            NowMember.f會員發起的活動編號 += "," + ID;
            NowMember.f會員參加的活動編號 += "," + ID;
            HttpPostedFileBase PicFile = Request.Files["PicFile"];

            if (PicFile != null)
            {
                var NewFileName = Guid.NewGuid() + Path.GetExtension(PicFile.FileName);
                var NewFilePath = Path.Combine(Server.MapPath("~/Content/images/"), NewFileName);
                PicFile.SaveAs(NewFilePath);
                p.f活動團圖 = NewFileName;
            }
            db.SaveChanges();
            return(RedirectToAction("EatIndex"));
        }
コード例 #19
0
        public ActionResult Create(CBlog p)
        {
            HttpPostedFileBase blogPhoto = Request.Files["blogPhoto"];

            if (p.blogPhoto != null)
            {
                string photName = Guid.NewGuid().ToString() + Path.GetExtension(p.blogPhoto.FileName);

                var path = Path.Combine(Server.MapPath("~/Content/images/"), photName);
                p.blogPhoto.SaveAs(path);
                p.f活動團圖 = photName;
            }



            tActivity article = new tActivity();

            article.f活動類型        = "文章";
            article.f活動標題        = p.txtTitle;
            article.f活動地點        = p.txtLocation;
            article.f活動內容        = p.txtContent;
            article.f活動團圖        = p.f活動團圖;
            article.fQRcode網址    = p.QRcode;
            article.fQRcodeImage = p.QRcodeImage;
            article.f活動發起日期      = (DateTime.Now).ToString("yyyy-MM-dd HH:mm:ss");
            article.f活動地區        = p.f活動地區;
            article.f活動瀏覽次數      = 0;
            article.f活動讚數        = 0;

            var LoginMember = (tMember)Session["member"];

            article.f會員編號 = LoginMember.f會員編號;


            if (article != null)
            {
                dbJoutaEntities db = new dbJoutaEntities();
                db.tActivity.Add(article);
                db.SaveChanges();

                return(RedirectToAction("index"));
            }

            else
            {
                return(RedirectToAction("index"));
            }
        }
コード例 #20
0
        public ActionResult d刪除(int?id)
        {
            if (id == null)
            {
                RedirectToAction("List");
            }

            tActivity       x  = new tActivity();
            dbJoutaEntities db = new dbJoutaEntities();

            x = db.tActivity.FirstOrDefault(m => m.f活動編號 == id);
            db.tActivity.Remove(x);
            db.SaveChanges();

            return(RedirectToAction("List"));
        }
コード例 #21
0
        public ActionResult active_list_detail_edit(tActivity s)
        {
            tActivity m = db.tActivity.FirstOrDefault(z => z.fId == s.fId);

            m.fActName         = s.fActName;
            m.fCreatDate       = s.fCreatDate;
            m.fActivityDate    = s.fActivityDate;
            m.fActivityEndDate = s.fActivityEndDate;
            m.fMemberId        = s.fMemberId;
            m.fIntroduction    = s.fIntroduction;
            m.fMaxLimit        = s.fMaxLimit;
            m.fMinLimit        = s.fMinLimit;
            m.fActAttestId     = s.fActAttestId;
            m.fActAttestId     = s.fActAttestId;
            m.fActLocation     = s.fActLocation;
            m.fCoordinateX     = s.fCoordinateX;
            m.fCoordinateY     = s.fCoordinateY;
            m.fActLabelId      = s.fActLabelId;
            m.fImgPath         = s.fImgPath;

            db.SaveChanges();
            return(RedirectToAction("active_list_detail"));
        }
コード例 #22
0
        public ActionResult ActivityDetailsEdit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("ActivityList"));
            }
            tActivity             t              = db.tActivity.FirstOrDefault(m => m.fId == id);
            var                   cActivityType  = db.tActivityType.ToDictionary(x => x.fId, y => y.fStatusName);
            var                   cAttestType    = db.tAttestType.ToDictionary(x => x.fId, y => y.fAttestName);
            List <SelectListItem> itemsAct       = new List <SelectListItem>();
            List <SelectListItem> itemsAtt       = new List <SelectListItem>();
            List <SelectListItem> itemsMem       = new List <SelectListItem>();
            var                   cMainLabel     = db.tActivityMainLabel.ToDictionary(x => x.fId, y => y.fLabelName);
            List <SelectListItem> itemsMainLabel = new List <SelectListItem>();
            SelectList            MainLabelList  = new SelectList(cMainLabel, cMainLabel.Keys, cMainLabel.Values);


            var cMember = db.tMember.ToDictionary(x => x.fId, y => y.fName);

            foreach (var cm in cMember)
            {
                if (cm.Key < 3)
                {
                    continue;
                }
                itemsMem.Add(new SelectListItem()
                {
                    Text  = cm.Value,
                    Value = cm.Key.ToString()
                });
            }
            foreach (var a in cActivityType)
            {
                itemsAct.Add(new SelectListItem()
                {
                    Text  = a.Value,
                    Value = a.Key.ToString()
                });
            }
            foreach (var a in cAttestType)
            {
                itemsAtt.Add(new SelectListItem()
                {
                    Text  = a.Value,
                    Value = a.Key.ToString()
                });
            }
            foreach (var a in cMainLabel)
            {
                itemsMainLabel.Add(new SelectListItem()
                {
                    Text  = a.Value,
                    Value = a.Key.ToString()
                });
            }



            ViewBag.ActDrop        = itemsAct;
            ViewBag.AttDrop        = itemsAtt;
            ViewBag.MemDrop        = itemsMem;
            ViewBag.MainLabelList  = MainLabelList;
            ViewBag.MainLabelList1 = itemsMainLabel;

            return(View(t));
        }
コード例 #23
0
        public dynamic EditAct(int memberID, tActivity act, HttpPostedFileBase picFile, string filePath)
        {
            tActivity targetAct = db.tActivity.Where(t => t.f活動編號 == act.f活動編號).FirstOrDefault();

            var loginMember = db.tMember.Where(t => t.f會員編號 == memberID).FirstOrDefault();

            string[] usedTime = { };
            if (!string.IsNullOrEmpty(loginMember.f會員已占用時間))
            {
                usedTime = loginMember.f會員已占用時間.Split(',');
                //先移除登入會員原本這筆活動的活動時段
                usedTime = usedTime.Where(t => t != targetAct.f活動開始時間 + "~" + targetAct.f活動結束時間).ToArray();
                //再判別修改的活動時段是否已占用
                string[] used;
                foreach (var item in usedTime)
                {
                    if (!string.IsNullOrEmpty(item))
                    {
                        used = item.Split('~');  //used[0] 已佔用的開始時間,used[1] 已佔用的結束時間
                        if (string.Compare(act.f活動開始時間, used[1]) > 0 || string.Compare(used[0], act.f活動結束時間) > 0)
                        {
                        }
                        else
                        {
                            return("1");
                        }
                    }
                }
            }
            //時間過關
            //因為活動時段變更所以要剔除所有參加者(不是每個人都想參加新時段)
            //撈出所有參加會員的編號,並讓他們退團
            if (!string.IsNullOrEmpty(targetAct.f活動參加的會員編號))
            {
                string[] DeleteList = targetAct.f活動參加的會員編號.Split(',');
                foreach (var item in DeleteList)
                {
                    if (!string.IsNullOrEmpty(item))
                    {
                        //移除活動編號
                        tMember Delete = db.tMember.Where(t => t.f會員編號.ToString() == item).FirstOrDefault();
                        Delete.f會員參加的活動編號 =
                            string.Join(",", Delete.f會員參加的活動編號.Split(',').Where(t => t != targetAct.f活動編號.ToString()));

                        //移除占用時間
                        string[] usedTime2 = Delete.f會員已占用時間.Split(',');
                        Delete.f會員已占用時間 =
                            string.Join(",", usedTime2.Where(t => t != targetAct.f活動開始時間 + "~" + targetAct.f活動結束時間));
                    }
                }
            }
            //修改變更項目
            //使用刪除舊活動過後的占用時間加上新的活動時間
            loginMember.f會員已占用時間    = string.Join(",", usedTime) + "," + act.f活動開始時間 + "~" + act.f活動結束時間;
            loginMember.f會員參加的活動編號 += "," + targetAct.f活動編號; //因為被剔除了,所以重新添加
            targetAct.f活動內容         = act.f活動內容;
            targetAct.f活動參加的會員編號    = loginMember.f會員編號.ToString();
            targetAct.f活動地區         = act.f活動地區;
            targetAct.f活動招募截止時間     = act.f活動招募截止時間;
            targetAct.f活動標題         = act.f活動標題;
            targetAct.f活動結束時間       = act.f活動結束時間;
            targetAct.f活動開始時間       = act.f活動開始時間;
            targetAct.f活動預算         = act.f活動預算;
            targetAct.f活動經度         = act.f活動經度;
            targetAct.f活動緯度         = act.f活動緯度;
            targetAct.f活動審核名單       = null;

            if (picFile != null)
            {
                var NewFileName = Guid.NewGuid() + Path.GetExtension(picFile.FileName);
                var NewFilePath = Path.Combine(filePath, NewFileName);
                picFile.SaveAs(NewFilePath);
                targetAct.f活動團圖 = NewFileName;
            }
            db.SaveChanges();
            return(null);
        }
コード例 #24
0
        public ActionResult Edit(tActivity p)
        {
            tMember   Member    = (tMember)Session["member"];
            tActivity targetAct = db.tActivity.Where(t => t.f活動編號 == p.f活動編號).FirstOrDefault();


            var NowMember = db.tMember.Where(t => t.f會員編號 == Member.f會員編號).FirstOrDefault();

            string[] usedTime = { };
            if (!string.IsNullOrEmpty(NowMember.f會員已占用時間))
            {
                usedTime = NowMember.f會員已占用時間.Split(',');
                //先移除登入會員原本這筆活動的活動時段
                usedTime = usedTime.Where(t => t != targetAct.f活動開始時間 + "~" + targetAct.f活動結束時間).ToArray();
                //再判別修改的活動時段是否已占用
                string[] used;
                foreach (var item in usedTime)
                {
                    if (!string.IsNullOrEmpty(item))
                    {
                        used = item.Split('~');  //used[0] 已佔用的開始時間,used[1] 已佔用的結束時間
                        if (string.Compare(p.f活動開始時間, used[1]) > 0 || string.Compare(used[0], p.f活動結束時間) > 0)
                        {
                        }
                        else
                        {
                            return(RedirectToAction("TravelIndex", "Travel", new { msg = "錯誤! 修改的活動時間與既有活動時間相衝" }));
                        }
                    }
                }
            }
            //時間過關
            //因為活動時段變更所以要剔除所有參加者(不是每個人都想參加新時段)
            //撈出所有參加會員的編號,並讓他們退團
            if (!string.IsNullOrEmpty(targetAct.f活動參加的會員編號))
            {
                string[] DeleteList = targetAct.f活動參加的會員編號.Split(',');
                foreach (var item in DeleteList)
                {
                    if (!string.IsNullOrEmpty(item))
                    {
                        //移除活動編號
                        tMember Delete = db.tMember.Where(t => t.f會員編號.ToString() == item).FirstOrDefault();
                        Delete.f會員參加的活動編號 =
                            string.Join(",", Delete.f會員參加的活動編號.Split(',').Where(t => t != targetAct.f活動編號.ToString()));

                        //移除占用時間
                        string[] usedTime2 = Delete.f會員已占用時間.Split(',');
                        Delete.f會員已占用時間 =
                            string.Join(",", usedTime2.Where(t => t != targetAct.f活動開始時間 + "~" + targetAct.f活動結束時間));
                    }
                }
            }
            //修改變更項目
            //使用刪除舊活動過後的占用時間加上新的活動時間
            NowMember.f會員已占用時間    = string.Join(",", usedTime) + "," + p.f活動開始時間 + "~" + p.f活動結束時間;
            NowMember.f會員參加的活動編號 += "," + targetAct.f活動編號; //因為被剔除了,所以重新添加
            tActivity Temp = new tActivity();

            targetAct.f活動內容      = Request.Form["f活動內容2"]; //配合文字編輯器,待改良;
            targetAct.f活動參加的會員編號 = NowMember.f會員編號.ToString();
            targetAct.f活動地區      = p.f活動地區;
            targetAct.f活動招募截止時間  = p.f活動招募截止時間;
            targetAct.f活動標題      = p.f活動標題;
            targetAct.f活動結束時間    = p.f活動結束時間;
            targetAct.f活動開始時間    = p.f活動開始時間;
            targetAct.f活動預算      = p.f活動預算;
            targetAct.f活動經度      = p.f活動經度;
            targetAct.f活動緯度      = p.f活動緯度;
            targetAct.f活動審核名單    = null;

            HttpPostedFileBase PicFile = Request.Files["PicFile2"];

            if (PicFile != null)
            {
                var NewFileName = Guid.NewGuid() + Path.GetExtension(PicFile.FileName);
                var NewFilePath = Path.Combine(Server.MapPath("~/Content/images/"), NewFileName);
                PicFile.SaveAs(NewFilePath);
                targetAct.f活動團圖 = NewFileName;
            }
            db.SaveChanges();
            return(RedirectToAction("TravelIndex"));
        }
コード例 #25
0
        public IHttpActionResult Post(Activities value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (value.source == null || value.humanId == null)
            {
                return(BadRequest());
            }

            using (var dbContextTransaction = db.Database.BeginTransaction())
            {
                try
                {
                    tActivity activityObj = db.tActivities.SingleOrDefault(x => x.Name == value.type);

                    if (activityObj == null)
                    {
                        activityObj      = new tActivity();
                        activityObj.Name = value.type;

                        db.tActivities.Add(activityObj);
                    }

                    tSourceService sourceServiceObj = db.tSourceServices
                                                      .SingleOrDefault(x => x.ServiceName == value.source && x.SourceID == 5);

                    if (sourceServiceObj == null)
                    {
                        sourceServiceObj             = new tSourceService();
                        sourceServiceObj.ServiceName = value.source;
                        sourceServiceObj.TypeID      = 2; //Wellness
                        sourceServiceObj.SourceID    = 5; //HumanAPI

                        db.tSourceServices.Add(sourceServiceObj);
                    }

                    tUserSourceService userSourceServiceObj = null;

                    //Get credentials
                    tCredential credentialObj =
                        db.tCredentials.SingleOrDefault(x => x.SourceID == 5 &&
                                                        x.SourceUserID == value.humanId &&
                                                        x.SystemStatusID == 1);
                    if (credentialObj == null)
                    {
                        throw new NoUserCredentialsException("Unable to find any matching HAPI user credentials");
                    }
                    else
                    {
                        userSourceServiceObj = db.tUserSourceServices.SingleOrDefault(
                            x => x.SourceServiceID == sourceServiceObj.ID &&
                            x.CredentialID == credentialObj.ID &&
                            x.SystemStatusID == 1);

                        if (userSourceServiceObj == null)
                        {
                            userSourceServiceObj = new tUserSourceService();
                            userSourceServiceObj.SourceServiceID     = sourceServiceObj.ID;
                            userSourceServiceObj.UserID              = credentialObj.UserID;
                            userSourceServiceObj.CredentialID        = credentialObj.ID;
                            userSourceServiceObj.ConnectedOnDateTime = DateTime.Now;
                            userSourceServiceObj.LastSyncDateTime    = DateTime.Now;
                            userSourceServiceObj.LatestDateTime      = value.updatedAt;
                            userSourceServiceObj.StatusID            = 3; //connected
                            userSourceServiceObj.SystemStatusID      = 1; //valid
                            userSourceServiceObj.tCredential         = credentialObj;

                            db.tUserSourceServices.Add(userSourceServiceObj);
                        }
                        else
                        {
                            //update LatestDateTime to the most recent datetime
                            if (userSourceServiceObj.LatestDateTime == null ||
                                userSourceServiceObj.LatestDateTime < value.updatedAt)
                            {
                                userSourceServiceObj.LatestDateTime = value.updatedAt;
                            }
                        }
                    }

                    tUserActivity userActivity = null;
                    userActivity = db.tUserActivities
                                   .SingleOrDefault(x => x.SourceObjectID == value.id);

                    if (userActivity == null)
                    {
                        userActivity                     = new tUserActivity();
                        userActivity.UserID              = credentialObj.UserID;
                        userActivity.SourceObjectID      = value.id;
                        userActivity.UserSourceServiceID = sourceServiceObj.ID;
                        userActivity.ActivityID          = activityObj.ID;

                        //Dates
                        DateTimeOffset dtoStart, dtoEnd;
                        if (RESTfulBAL.Models.DynamoDB.Utilities.ConvertToDateTimeOffset(value.startTime,
                                                                                         value.tzOffset,
                                                                                         out dtoStart))
                        {
                            userActivity.StartDateTime = dtoStart;
                        }
                        else
                        {
                            userActivity.StartDateTime = value.startTime;
                        }

                        if (RESTfulBAL.Models.DynamoDB.Utilities.ConvertToDateTimeOffset(value.endTime, value.tzOffset,
                                                                                         out dtoEnd))
                        {
                            userActivity.EndDateTime = dtoEnd;
                        }
                        else
                        {
                            userActivity.EndDateTime = value.endTime;
                        }

                        userActivity.Duration           = value.duration;
                        userActivity.DurationUOMID      = 8;
                        userActivity.Distance           = value.distance;
                        userActivity.DistanceUOMID      = 9;
                        userActivity.Steps              = value.steps;
                        userActivity.Calories           = value.calories;
                        userActivity.SystemStatusID     = 1;
                        userActivity.tUserSourceService = userSourceServiceObj;

                        db.tUserActivities.Add(userActivity);
                    }
                    else
                    {
                        userActivity.ActivityID = activityObj.ID;

                        //Dates
                        DateTimeOffset dtoStart, dtoEnd;
                        if (RESTfulBAL.Models.DynamoDB.Utilities.ConvertToDateTimeOffset(value.startTime,
                                                                                         value.tzOffset,
                                                                                         out dtoStart))
                        {
                            userActivity.StartDateTime = dtoStart;
                        }
                        else
                        {
                            userActivity.StartDateTime = value.startTime;
                        }

                        if (RESTfulBAL.Models.DynamoDB.Utilities.ConvertToDateTimeOffset(value.endTime, value.tzOffset,
                                                                                         out dtoEnd))
                        {
                            userActivity.EndDateTime = dtoEnd;
                        }
                        else
                        {
                            userActivity.EndDateTime = value.endTime;
                        }

                        userActivity.Duration            = value.duration;
                        userActivity.DurationUOMID       = 8;
                        userActivity.Distance            = value.distance;
                        userActivity.DistanceUOMID       = 9;
                        userActivity.Steps               = value.steps;
                        userActivity.Calories            = value.calories;
                        userActivity.SystemStatusID      = 1;
                        userActivity.tUserSourceService  = userSourceServiceObj;
                        userActivity.LastUpdatedDateTime = DateTime.Now;
                    }

                    db.SaveChanges();

                    dbContextTransaction.Commit();

                    return(Ok(userActivity));
                }
                catch (Exception ex)
                {
                    dbContextTransaction.Rollback();

                    //Insert Error Log
                    tUserDataErrLog userErrorLog = new tUserDataErrLog();

                    userErrorLog.ErrTypeID   = (int)ErrorLogging.enumErrorType.Application;
                    userErrorLog.ErrSourceID = (int)AuditLogging.enumApplication.SFCBAL;
                    userErrorLog.Code        = ex.HResult.ToString();
                    userErrorLog.Description = ex.Message;
                    userErrorLog.Trace       = ex.StackTrace;

                    dbErr.tUserDataErrLogs.Add(userErrorLog);
                    dbErr.SaveChanges();

                    string ErrMsg = "An error occured and we have logged the error. Please try again later.";

                    Exception Err = new Exception(ErrMsg, ex);

                    return(InternalServerError(Err));
                }
            }
        }
コード例 #26
0
        public ActionResult active_list_detail_edit(int?id)
        {
            tActivity x = db.tActivity.FirstOrDefault(m => m.fId == id);

            return(View(x));
        }
コード例 #27
0
 public ActionResult active_list_detail_Creat(tActivity x)
 {
     db.tActivity.Add(x);
     db.SaveChanges();
     return(RedirectToAction("active_list_detail"));
 }
コード例 #28
0
        public override dynamic AddAct(int memberID, tActivity act, HttpPostedFileBase picFile, string filePath)
        {
            //判別登入會員其活動時段是否已占用
            var loginMember = db.tMember.Where(t => t.f會員編號 == memberID).FirstOrDefault();

            if (!string.IsNullOrEmpty(loginMember.f會員已占用時間))
            {
                string[] usedTime = loginMember.f會員已占用時間.Split(',');
                string[] used;
                foreach (var item in usedTime)
                {
                    if (!string.IsNullOrEmpty(item))
                    {
                        used = item.Split('~');  //used[0] 已佔用的開始時間,used[1] 已佔用的結束時間
                        if (string.Compare(act.f活動開始時間, used[1]) > 0 || string.Compare(used[0], act.f活動結束時間) > 0)
                        {
                        }
                        else
                        {
                            return("1");
                        }
                    }
                }
            }
            //添加占用時間
            loginMember.f會員已占用時間 += "," + act.f活動開始時間 + "~" + act.f活動結束時間;
            act.f會員編號             = memberID;
            act.f活動類型             = "旅遊";
            act.f活動參加的會員編號        = "," + memberID;
            var theCategory = Convert.ToDateTime(act.f活動結束時間) - Convert.ToDateTime(act.f活動開始時間);
            int timeCheck   = Convert.ToInt32(theCategory.ToString("dd"));

            switch (timeCheck)//時間判斷
            {
            case 1:
                act.f活動分類 = "兩天一夜";
                break;

            case 2:
                act.f活動分類 = "三天兩夜";
                break;

            case 4:
                act.f活動分類 = "五天四夜";
                break;

            case 6:
                act.f活動分類 = "七天六夜";
                break;

            default:
                act.f活動分類 = "其他";
                break;
            }
            db.tActivity.Add(act);
            db.SaveChanges();
            int ID = db.tActivity.Where(t => t.f會員編號 == memberID)
                     .OrderByDescending(t => t.f活動發起日期).Select(t => t.f活動編號).FirstOrDefault();

            loginMember.f會員發起的活動編號 += "," + ID;
            loginMember.f會員參加的活動編號 += "," + ID;

            if (picFile != null)
            {
                var newFileName = Guid.NewGuid() + Path.GetExtension(picFile.FileName);
                var newFilePath = Path.Combine(filePath, newFileName);
                picFile.SaveAs(newFilePath);
                act.f活動團圖 = newFileName;
            }
            db.SaveChanges();
            return(null);
        }
コード例 #29
0
 public abstract dynamic AddAct(int memberID, tActivity act, HttpPostedFileBase picFile, string filePath);