コード例 #1
0
        public HttpResponseMessage DeleteOrder(int id)
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         Mid         = Convert.ToInt32(jwtAuthUtil.GetId(token));

            var seller = db.Members.Find(Mid);

            if (seller.Permission != "02")
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              new { success = false, message = "使用者權限非規劃師,無刪除權限" }));
            }
            Order order = db.Orders.Find(id);

            if (order == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, new { success = false, message = "查無此訂單" }));
            }

            db.Orders.Remove(order);
            db.SaveChanges();

            return(Request.CreateResponse(HttpStatusCode.OK, new{ success = true, message = "成功刪除訂單" }));
        }
コード例 #2
0
        public IHttpActionResult PutOrder(int id, Order order)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

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

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OrderExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #3
0
        public IHttpActionResult GetOrder(int id)
        {
            Order order = db.Orders.Find(id);

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

            return(Ok(order));
        }
コード例 #4
0
        public HttpResponseMessage PostOrder(Order order)
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         Mid         = Convert.ToInt32(jwtAuthUtil.GetId(token));


            if (order.TravelPlan_id == 0)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { success = false, message = "旅行計畫不得為空值" }));
            }



            var        member = db.Members.Find(Mid);
            TravelPlan travel = new TravelPlan();

            order.MemberId = Mid;
            order.CreateOn = DateTime.Now;
            order.Status   = 1;



            var result1 = String.Join("", order.DepartureTime1); // why doesn't it split?

            var planner = db.TravelPlans.Find(order.TravelPlan_id);

            order.PlannerId = planner.MemberId;

            if (Mid == order.PlannerId)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              new { success = false, message = "自己的計劃不能自己買RRRRRRRRR" }));
            }


            var currentPoints = member.points - planner.points;

            order.PointsLeft = currentPoints;
            member.points    = currentPoints;



            db.Orders.Add(order);
            db.Entry(member).State = EntityState.Modified;

            db.SaveChanges();

            var result = db.Orders.Where(x => x.id == order.id).Select(x => new
            {
                x.id,
                x.MemberId,
                x.MyMember.name,
                x.MyMember.Tel,
                x.MyMember.Email,
                x.DepartureTime1,
                x.DepartureTime2,
                x.Budget,
                x.Adult,
                x.Children,
                x.country,
                x.city,
                x.Remark,
                x.TravelPlan_id,
                x.PlannerId,
                x.Status,
                x.PointsLeft,
                x.Act,
                x.Culture,
                x.Food,
                x.Shopping,
                x.Secret,
                x.Religion
            });

            return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, message = "旅行計畫建立成功", result }));
        }
コード例 #5
0
        [Route("update/{id}")] //planner send confirmation back
        public HttpResponseMessage PatchOrder(int id, Order order)
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         Mid         = Convert.ToInt32(jwtAuthUtil.GetId(token));

            var seller = db.Members.Find(Mid);

            if (seller.Permission != "02")
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }

            var orderConfirm = db.Orders.Find(id);

            if (orderConfirm.Status == 1)
            {
                orderConfirm.Status = order.Status;

                db.SaveChanges();

                var result1 = db.Orders.Where(x => x.id == id).Select(x => new
                {
                    x.id,
                    x.MemberId,
                    x.MyMember.name,
                    x.MyMember.Tel,
                    x.MyMember.Email,
                    x.DepartureTime1,
                    x.DepartureTime2,
                    x.Budget,
                    x.Adult,
                    x.Children,
                    x.country,
                    x.city,
                    x.TravelPlan_id,
                    x.PlannerId,
                    x.Status,
                    x.Remark,
                    x.Act,
                    x.Culture,
                    x.Food,
                    x.Shopping,
                    x.Secret,
                    x.Religion
                });

                return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, message = "委任中", result1 }));
            }

            if (orderConfirm.Status == 2)
            {
                orderConfirm.Status = order.Status;
                //var member = db.Members.Find(orderConfirm.PlannerId);
                //var planPoints = db.TravelPlans.Find(orderConfirm.PlannerId);
                //var newPoints = member.points + planPoints.points;

                //member.points = newPoints;
                //db.Entry(member).State = EntityState.Modified;

                db.SaveChanges();


                var result2 = db.Orders.Where(x => x.id == id).Select(x => new
                {
                    x.id,
                    x.MemberId,
                    x.MyMember.name,
                    x.MyMember.Tel,
                    x.DepartureTime1,
                    x.DepartureTime2,
                    x.Budget,
                    x.Adult,
                    x.Children,
                    x.country,
                    x.city,
                    x.TravelPlan_id,
                    x.Status,
                    x.Remark,
                    x.Act,
                    x.Culture,
                    x.Food,
                    x.Shopping,
                    x.Secret,
                    x.Religion
                });

                return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, message = "已完成", result2 }));
            }

            if (orderConfirm.Status == 3)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              new { success = false, message = "訂單已完成,無須任何動作" }));
            }
            return(Request.CreateResponse(HttpStatusCode.NoContent));
        }