Beispiel #1
0
        public void Act_Add([FromBody] CheckInAct act)
        {
            if (act == null)
            {
                this.Fail("查無資料,請再確認");
                return;
            }
            //檢驗參數,有問題會錯誤
            act = Validact(act);
            if (act == null)
            {
                return;
            }

            //確認活動是否重複
            if (ActDAO.getInstance().getAct(act.actId) != null)
            {
                Fail($"活動id:{act.actId}已經設定");
                return;
            }

            act.created_at = DateTime.Now;
            ActDAO.getInstance().createAct(act);

            this.Ok("建立活動成功", act);
        }
Beispiel #2
0
        /// <summary>
        /// 更新活動資料
        /// </summary>
        /// <param name="new_act">活動</param>
        /// <param name="actId">活動id</param>
        /// <returns></returns>
        public bool updateAct(String actId, CheckInAct new_act)
        {
            var updList = new List <UpdateDefinition <CheckInAct> >();

            if (actId != new_act.actId)
            {
                var upd = Builders <CheckInAct> .Update.Set(act => act.actId, new_act.actId);

                updList.Add(upd);
            }


            if (!String.IsNullOrEmpty(new_act.name))
            {
                var upd = Builders <CheckInAct> .Update.Set(n => n.name, new_act.name);

                updList.Add(upd);
            }
            if (!String.IsNullOrEmpty(new_act.description))
            {
                var upd = Builders <CheckInAct> .Update.Set(n => n.description, new_act.description);

                updList.Add(upd);
            }
            if (!String.IsNullOrEmpty(new_act.site))
            {
                var upd = Builders <CheckInAct> .Update.Set(n => n.site, new_act.site);

                updList.Add(upd);
            }
            if (new_act.startTime != null)
            {
                var upd = Builders <CheckInAct> .Update.Set(n => n.startTime, new_act.startTime);

                updList.Add(upd);
            }


            if (new_act.endTime != null)
            {
                var upd = Builders <CheckInAct> .Update.Set(n => n.endTime, new_act.endTime);

                updList.Add(upd);
            }



            var finalUpd = Builders <CheckInAct> .Update.Combine(updList);


            var res = Builders <CheckInAct> .Filter.Eq(act => act.actId, actId);

            var result = _db.GetCollection <CheckInAct>("CheckInAct").UpdateOne(res, finalUpd);

            return(result.ModifiedCount != 0);
        }
Beispiel #3
0
        public void Act_Remote([FromHeader] String actId, [FromBody] CheckInAct act)
        {
            bool isOK = ActDAO.getInstance().updateAct(actId, act);

            if (isOK)
            {
                this.Ok("更新活動成功");
            }
            else
            {
                this.Fail("更新活動失敗");
            }
        }
Beispiel #4
0
        /// <summary>
        /// 檢查act正確性
        /// </summary>
        /// <returns></returns>
        private CheckInAct Validact(CheckInAct act)
        {
            if (string.IsNullOrWhiteSpace(act.actId))
            {
                act.actId = Guid.NewGuid().ToString();
            }

            if (act.startTime == null)
            {
                Fail("startTime時間沒有設定");
                return(null);
            }
            if (act.endTime == null)
            {
                Fail("endTime時間沒有設定");
                return(null);
            }

            if (act.startTime > act.endTime)
            {
                Fail("startTime時間大於endTime");
                return(null);
            }

            if (act.endTime < DateTime.Now)
            {
                Fail("現在時間大於endTime");
                return(null);
            }

            if (act.site.IndexOf("http://") != 0 && act.site.IndexOf("https://") != 0)
            {
                Fail("site 值需要http://開頭");
                return(null);
            }



            return(act);
        }
Beispiel #5
0
 /// <summary>
 /// 建立活動資料
 /// </summary>
 /// <param name="act">活動</param>
 /// <returns></returns>
 public void createAct(CheckInAct act)
 {
     _db.GetCollection <CheckInAct>($"CheckInAct").InsertOne(act);
 }