Esempio n. 1
0
        public IHttpActionResult PostNotice(ViewNoitce viewNoitce)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         id          = Convert.ToInt32(jwtAuthUtil.GetId(token));
            var         brand       = db.Brands.FirstOrDefault(b => b.Id == id);
            var         orders      = db.Orders.FirstOrDefault(o => o.Id == viewNoitce.OrderId);

            Notice notice = new Notice();

            notice.CustomerId  = orders.CustomerId;
            notice.OrderId     = viewNoitce.OrderId;
            notice.OrderStatus = viewNoitce.OrderStatus;
            notice.Remarks     = viewNoitce.Remarks;
            notice.IsRead      = 0;
            db.Notices.Add(notice);
            db.SaveChanges();
            return(Ok(new
            {
                result = true,
                message = "通知訊息已新增成功!"
            }));
        }
Esempio n. 2
0
        public IHttpActionResult GetBrandOrder()
        {
            string       token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil  jwtAuthUtil = new JwtAuthUtil();
            int          id          = Convert.ToInt32(jwtAuthUtil.GetId(token));
            List <Order> orders      = db.Orders.Where(o => o.BrandId == id && o.InitDate > DateTime.Today).ToList();
            var          today       = orders.Select(x => new
            {
                x.Id,
                x.CustomerId,
                status = x.OrderStatus.ToString(),
                x.OrderNumber,
                brandName = x.Brand.BrandName,
                x.LinepayVer,
                Total = x.OrderDetails.Sum(o => o.Amount),
                Site  = x.Site.ToString(),
                x.OrderDetails
            }).ToList();

            return(Ok(new
            {
                success = true,
                today,
            }));
        }
Esempio n. 3
0
        public IHttpActionResult GetIdentity()
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            string      identity    = jwtAuthUtil.GetIdentity(token);

            if (identity == "0")
            {
                return(Ok(new
                {
                    result = true,
                    message = "顧客"
                }));
            }
            else if (identity == "1")
            {
                return(Ok(new
                {
                    result = true,
                    message = "餐車"
                }));
            }
            return(Ok(new
            {
                result = false,
                message = "其他"
            }));
        }
Esempio n. 4
0
        public HttpResponseMessage PostLogin(ViewLogin viewLogin)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new
                {
                    result = false,
                    message = "登入失敗!"
                }));
            }

            Customer customer = ValidateUser(viewLogin.Email, viewLogin.Password);//檢查會員登入密碼

            if (customer == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, new
                {
                    result = false,
                    message = "帳號或密碼錯誤!"
                }));
            }

            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            string      jwtToken    = jwtAuthUtil.GenerateToken(customer.Id, "0");

            return(Request.CreateResponse(HttpStatusCode.OK, new
            {
                result = true,
                message = "登入成功",
                id = customer.Id,
                token = jwtToken
            }));
        }
Esempio n. 5
0
        public IHttpActionResult GetSellerSingleOrder(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(BadRequest());
            }

            var result = db.Orders.Where(x => x.PlannerId == Mid && x.id == id).Select(x => new
            {
                x.id,
                x.MemberId,
                x.MyMember.name,
                x.MyMember.Tel,
                x.MyMember.manpic,
                x.DepartureTime1,
                x.DepartureTime2,
                x.Budget,
                x.Adult,
                x.Children,
                x.country,
                x.city,
                x.TravelPlan_id,
                x.CreateOn,
                x.Status,
            }).ToList();

            return(Ok(new { success = true, result }));
        }
Esempio n. 6
0
        public IHttpActionResult GetTimetable()
        {
            string Token = Request.Headers.Authorization.Parameter;
            int    tid   = JwtAuthUtil.GetId(Token);
            int    Week  = Utility.GetWeek();

            if (Week == 0)
            {
                return(Ok(new
                {
                    code = 5588,
                    message = "假日無課表"
                }));
            }
            var result = db.Timetables
                         .Where(x => x.TeacherId == tid && (int)x.Week == Week).OrderBy(x => x.LessonOrder)
                         .Select(x => new
            {
                x.Subject,
                LessonOrder = x.LessonOrder,
                x.ClassId,
                x.Class.ClassName
            });

            return(Ok(new
            {
                code = 1,
                data = result
            }));
        }
        public IHttpActionResult Getdeductione()
        {
            string Token  = Request.Headers.Authorization.Parameter;
            int    id     = JwtAuthUtil.GetId(Token);
            var    groups = db.Records.Where(x => x.Student.TeacherId == id).GroupBy(x => x.StudentId);

            var record = groups.Select(x => new
            {
                StudentId     = x.Key,
                StudentNumber = x.FirstOrDefault(y => y.StudentId == x.Key).Student.Id,
                Name          = x.FirstOrDefault(y => y.StudentId == x.Key).Student.Name,
                Deduction     = x.Count(y => y.Attendance == AttendanceType.事假) / 20 * -1 + x.Count(y => y.Attendance == AttendanceType.病假) / 50 * -1 + x.Count(y => y.Attendance == AttendanceType.曠課) / 2 * -1 + x.Count(y => y.Attendance == AttendanceType.遲到) / 3 * -1,
                事假次數          = x.Count(y => y.Attendance == AttendanceType.事假),
                事假扣分          = x.Count(y => y.Attendance == AttendanceType.事假) / 20 * -1,
                病假次數          = x.Count(y => y.Attendance == AttendanceType.病假),
                病假扣分          = x.Count(y => y.Attendance == AttendanceType.病假) / 50 * -1,
                喪假次數          = x.Count(y => y.Attendance == AttendanceType.喪假),
                喪假扣分          = x.Count(y => y.Attendance == AttendanceType.喪假) * 0,
                曠課次數          = x.Count(y => y.Attendance == AttendanceType.曠課),
                曠課扣分          = x.Count(y => y.Attendance == AttendanceType.曠課) / 2 * -1,
                遲到次數          = x.Count(y => y.Attendance == AttendanceType.遲到),
                遲到扣分          = x.Count(y => y.Attendance == AttendanceType.遲到) / 3 * -1,
                Guardian      = x.FirstOrDefault(y => y.StudentId == x.Key).Student.Guardian,
                PhoneNunber   = x.FirstOrDefault(y => y.StudentId == x.Key).Student.PhoneNumber,
                Address       = x.FirstOrDefault(y => y.StudentId == x.Key).Student.Address
            }).OrderBy(x => x.Deduction).ThenBy(x => x.StudentId).ToList();

            return(Ok(new
            {
                code = 1,
                data = record
            }));
        }
        public IHttpActionResult PostRecord(ViewRecord viewRecord)
        {
            int    id     = JwtAuthUtil.GetId(Request.Headers.Authorization.Parameter);
            int    week   = Utility.GetWeek();
            Record record = new Record();

            foreach (var infoitem in viewRecord.StudentInfo)
            {
                record.Subject           = viewRecord.Subject;
                record.ClassId           = viewRecord.ClassId;
                record.LessonOrder       = viewRecord.LessonOrder;
                record.RollCallTime      = DateTime.Now;
                record.LessonDate        = DateTime.Today;
                record.RollCallTeacherId = id;
                record.Week       = (WeekType)week;
                record.StudentId  = infoitem.StudentId;
                record.Attendance = (AttendanceType)infoitem.Attendance;
                db.Records.Add(record);
                db.SaveChanges();
            }
            //return CreatedAtRoute("DefaultApi", new { id = record.Id }, record);
            return(Ok(new
            {
                code = 1,
                message = "點名成功"
            }));
        }
Esempio n. 9
0
        public IHttpActionResult GetOne()
        {
            //拿已登入的流水
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            string      userseq     = jwtAuthUtil.Getuserseq(token);

            Member member = db.Member.Find(userseq);

            if (member == null)
            {
                return(Ok(new
                {
                    result = "查無資料"
                }));
            }
            MemberGetone memberGetone = new MemberGetone();

            memberGetone.memberseq  = member.memberseq;
            memberGetone.membername = member.membername;
            memberGetone.phone      = member.phone;
            memberGetone.email      = member.email;
            memberGetone.avatar     = member.avatar;
            return(Ok(memberGetone));
        }
Esempio n. 10
0
        // GET api/values
        public object GetToken()
        {
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            string      jwtToken    = jwtAuthUtil.GenerateToken();

            return(new { token = jwtToken });
        }
Esempio n. 11
0
        public HttpResponseMessage PostMessage(Message message)
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         Mid         = Convert.ToInt32(jwtAuthUtil.GetId(token));

            if (message.TravelPlanId == 0)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              new { success = false, message = "no such plan exists" }));
            }
            TravelPlan travelPlan = new TravelPlan();

            message.CreateOn = DateTime.Now;
            var planner = db.TravelPlans.Find(message.TravelPlanId);

            message.PlannerId = planner.MemberId;
            message.MemberId  = Mid;


            db.Messages.Add(message);
            db.SaveChanges();

            var result = db.Messages.Where(x => x.TravelPlanId == planner.id).Select(x => new
            {
                x.id,
                x.TravelPlanId,
                x.Body,
                x.CreateOn,
                buyer  = message.MemberId,
                seller = message.PlannerId
            });

            return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, message = "訊息傳送成功", result }));
        }
Esempio n. 12
0
        public IHttpActionResult GetMyFollow()
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         id          = Convert.ToInt32(jwtAuthUtil.GetId(token));

            SqlConnection Conn = new SqlConnection();

            Conn.ConnectionString = ConfigurationManager.ConnectionStrings["Model1"].ConnectionString;
            DataTable dt = new DataTable();

            SqlCommand cmd = new SqlCommand(@"select f.Id,f.BrandId,f.BrandName,left(convert(varchar,o.SDateTime,108),5) SDateTime,
                           left(convert(varchar,o.EDateTimeDate,108),5) EDateTimeDate,o.Location
                           from MyFollows f inner join OpenTimes o on f.BrandId = o.BrandId
                           where f.CustomerId=@id and o.OpenDate = convert(varchar,getdate(),111)", Conn);

            cmd.Parameters.AddWithValue("@id", id);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);

            adapter.Fill(dt);


            return(Ok(new
            {
                result = true,
                dt
            }));
        }
Esempio n. 13
0
        public IHttpActionResult GetNotice()
        {
            //拿已登入的流水
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            string      userseq     = jwtAuthUtil.Getuserseq(token);
            string      user        = userseq.Substring(0, 1);

            var unread = db.Notice.Where(x => x.toseq == userseq).ToList();

            unread = unread.Where(x => x.state == Convert.ToBoolean(Noticestate.未讀)).ToList();

            List <Notice> notices = db.Notice.Where(x => x.toseq == userseq).OrderBy(x => x.state).ThenByDescending(x => x.postday).Take(10).ToList();
            var           result  = new
            {
                unread  = unread.Count(),
                notices = notices.Select(
                    x => new
                {
                    x.noticeseq,
                    x.fromseq,
                    x.toseq,
                    state = Enum.Parse(typeof(Noticestate), x.state.GetHashCode().ToString()).ToString(),
                    x.text,
                    type = Enum.Parse(typeof(Noticetype), x.type.ToString()).ToString(),
                    time = Convert.ToDateTime(x.postday).ToString("yyyy-MM-dd HH:mm")
                })
            };

            return(Ok(result));
        }
Esempio n. 14
0
        public HttpResponseMessage GetMemberPlans()
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         Mid         = Convert.ToInt32(jwtAuthUtil.GetId(token));

            Member member = db.Members.Find(Mid);

            var result = db.TravelPlans.Where(x => x.MemberId == Mid).Select(x => new
            {
                id       = x.id,
                MemberId = x.MyMember.id,
                x.points,
                x.Cpicture,
                x.TravelPlanIntro,
                x.TPExperience,
                x.CreateOn,
                x.country,
                x.city,

                tags = new
                {
                    x.Religion,
                    x.Secret,
                    x.Act,
                    x.Food,
                    x.Culture,
                    x.Shopping
                }
            });

            //string newResult = JsonConvert.SerializeObject(result);
            // HttpContext.Current.Response.Headers.Add("Content-Type", "application/json; charset=utf-8");
            return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, result }));
        }
Esempio n. 15
0
        public IHttpActionResult PostMyFollow(MyFollow myFollow)
        {
            //顧客資料
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         id          = Convert.ToInt32(jwtAuthUtil.GetId(token));

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var checkMyfollow = db.MyFollows.FirstOrDefault(m => m.BrandId == myFollow.BrandId && m.CustomerId == id);

            if (checkMyfollow != null)
            {
                return(Ok(new
                {
                    result = false,
                    message = "此餐車已經加入追蹤"
                }));
            }

            myFollow.CustomerId = id;
            myFollow.BrandName  = db.Brands.FirstOrDefault(b => b.Id == myFollow.BrandId).BrandName;//換成show brandid
            db.MyFollows.Add(myFollow);
            db.SaveChanges();
            return(Ok(new
            {
                result = true,
                message = "已加入追蹤",
            }));
        }
Esempio n. 16
0
        public IHttpActionResult BrandGetCart(int cartId)
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         id          = Convert.ToInt32(jwtAuthUtil.GetId(token));


            var carts = db.Carts.Where(cart => cart.BrandId == id)
                        .Select(cart => new
            {
                cart.Id,
                cart.CustomerId,
                cart.BrandId,
                cart.BrandName,
                ProductList = new
                {
                    cart.ProductListId,
                    cart.ProductName,
                    cart.ProductUnit,
                    cart.Amount
                }
            });

            return(Ok(new
            {
                result = true,
                carts
            }));
        }
Esempio n. 17
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 = "成功刪除訂單" }));
        }
Esempio n. 18
0
        public IHttpActionResult Set(Evalution evalution)
        {
            //拿已登入的流水
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            string      userseq     = jwtAuthUtil.Getuserseq(token);

            string user = userseq.Substring(0, 1);

            if (user == "C")
            {
                return(Ok(new
                {
                    result = "廠商無法評價"
                }));
            }

            evalution.del_flag = "N";
            evalution.postday  = DateTime.Now;
            ModelState.Clear();
            Validate(evalution);

            db.Evalution.Add(evalution);
            db.SaveChanges();
            return(Ok(new
            {
                result = "評價完成"
            }));
        }
Esempio n. 19
0
        public IHttpActionResult GetStudentsDeduction()
        {
            int id     = JwtAuthUtil.GetId(Request.Headers.Authorization.Parameter);
            var groups = db.Records.Where(x => x.StudentId == id).GroupBy(x => x.StudentId);
            var record = groups.Select(x => new
            {
                事假次數      = x.Count(y => y.Attendance == AttendanceType.事假),
                事假扣分      = x.Count(y => y.Attendance == AttendanceType.事假) / 20 * -1,
                病假次數      = x.Count(y => y.Attendance == AttendanceType.病假),
                病假扣分      = x.Count(y => y.Attendance == AttendanceType.病假) / 50 * -1,
                喪假次數      = x.Count(y => y.Attendance == AttendanceType.喪假),
                喪假扣分      = x.Count(y => y.Attendance == AttendanceType.喪假) * 0,
                曠課次數      = x.Count(y => y.Attendance == AttendanceType.曠課),
                曠課扣分      = x.Count(y => y.Attendance == AttendanceType.曠課) / 2 * -1,
                遲到次數      = x.Count(y => y.Attendance == AttendanceType.遲到),
                遲到扣分      = x.Count(y => y.Attendance == AttendanceType.遲到) / 3 * -1,
                Deduction = x.Count(y => y.Attendance == AttendanceType.事假) / 20 * -1 + x.Count(y => y.Attendance == AttendanceType.病假) / 50 * -1 + x.Count(y => y.Attendance == AttendanceType.曠課) / 2 * -1 + x.Count(y => y.Attendance == AttendanceType.遲到) / 3 * -1,
            });

            return(Ok(new
            {
                code = 1,
                data = record.ToList()
            }));
        }
Esempio n. 20
0
        public IHttpActionResult GetStudentsRecords([FromUri] ViewSearch viewSearch)
        {
            int id     = JwtAuthUtil.GetId(Request.Headers.Authorization.Parameter);
            var result = db.Records.Where(x => x.StudentId == id).AsQueryable();

            if (viewSearch.StartDate.HasValue && viewSearch.EndDate.HasValue)
            {
                //因為LessonDate設定為Datetime.today,所以不須再加一天,如下行處理
                //Search.EndDate = viewSearch.EndDate.Value.AddDays(1);
                result = result.Where(x => x.LessonDate >= viewSearch.StartDate && x.LessonDate <= viewSearch.EndDate);
            }
            if (viewSearch.Attendance.HasValue)
            {
                result = result.Where(x => x.Attendance == viewSearch.Attendance);
            }
            var teacher = db.Teachers.AsQueryable();
            var data    = result.Select(x => new
            {
                x.LessonDate,
                x.LessonOrder,
                x.Subject,
                Teacher    = teacher.FirstOrDefault(y => y.Id == x.RollCallTeacherId).Name,
                Attendance = x.Attendance.ToString()
            }).OrderBy(x => x.LessonDate).ToList();

            return(Ok(new
            {
                code = 1,
                data = data
            }));
        }
Esempio n. 21
0
        public HttpResponseMessage PostWishBoard(WishBoard wishBoard)
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         Mid         = Convert.ToInt32(jwtAuthUtil.GetId(token));

            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }

            wishBoard.MemberId = Mid;
            wishBoard.CreateOn = DateTime.Now;

            db.WishBoards.Add(wishBoard);
            db.SaveChanges();

            var result = db.WishBoards.Where(x => x.MemberId == Mid).Select(x => new
            {
                x.id,
                MemberId = x.MyMember.id,
                x.MyMember.manpic,
                x.MyMember.name,
                x.Comment1,
                x.Comment2,
                x.CreateOn
            });

            return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, message = "留言成功", result }));
        }
Esempio n. 22
0
        public IHttpActionResult GetContactrecordPrint([FromUri] ViewSearch viewSearch)
        {
            string Token  = Request.Headers.Authorization.Parameter;
            int    id     = JwtAuthUtil.GetId(Token);
            var    result = db.Contactrecords.AsQueryable();

            if (viewSearch.StudentId.HasValue)
            {
                result = result.Where(x => x.StudentId == viewSearch.StudentId);
            }
            if (viewSearch.StartDate.HasValue && viewSearch.EndDate.HasValue)
            {
                viewSearch.EndDate = viewSearch.EndDate.Value.AddDays(1);
                result             = result.Where(x => x.ContactDateTime >= viewSearch.StartDate && x.ContactDateTime <= viewSearch.EndDate);
            }
            var students = db.Students.AsQueryable();
            var data     = result.Select(x => new
            {
                Id              = x.Id,
                Time            = x.ContactDateTime,
                StudentName     = students.FirstOrDefault(y => y.Id == x.StudentId).Name,
                ContactGuardian = x.ContactGuardian,
                Teacher         = x.Teacher.Name,
                Method          = x.Method,
                Reason          = x.Reason,
                Results         = x.Results
            });

            return(Ok(new
            {
                code = 1,
                data = data
            }));
        }
Esempio n. 23
0
        public HttpResponseMessage PostBackgroundImage()
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         Mid         = Convert.ToInt32(jwtAuthUtil.GetId(token));
            Member      member      = db.Members.Find(Mid);

            try
            {
                var postedFile = HttpContext.Current.Request.Files.Count > 0
                    ? HttpContext.Current.Request.Files[0]
                    : null;
                if (postedFile != null && postedFile.ContentLength > 0)
                {
                    //string extension = postedFile.FileName.Split('.')[postedFile.FileName.Split('.').Length - 1];
                    //int MaxContentLength = 1024 * 1024 * 1; //Size = 1MB
                    string fileName = Utility.UploadImage(postedFile);
                    //IList<string> AllowedFileExtensions = new List<string> {".jpg", ".png", ".svg"};

                    //if (!AllowedFileExtensions.Contains(extension))
                    //{
                    //    return Request.CreateResponse(HttpStatusCode.BadRequest, new
                    //    {
                    //        success = false,
                    //        message = "請上傳圖片正確格式,可接受格式為 .jpg, .png, .svg"
                    //    });
                    //}

                    UriBuilder uriBuilder = new UriBuilder(HttpContext.Current.Request.Url)
                    {
                        Path = $"/Upload/BGimg/{fileName}"
                    };
                    //Userimage myfolder name where i want to save my image
                    Uri imgUploadUrl = uriBuilder.Uri;
                    member.BGImg = imgUploadUrl.ToString();

                    db.Entry(member).State = EntityState.Modified;
                    db.SaveChanges();

                    return(Request.CreateResponse(HttpStatusCode.OK, new
                    {
                        success = true,
                        message = "已上傳個人圖片",
                        imgUploadUrl
                    }));
                }

                return(Request.CreateResponse(HttpStatusCode.NotFound, new
                {
                    success = false,
                    message = "無圖片,請選擇圖片上傳"
                }));
            }
            catch
            {
                throw;
            }

            return(Request.CreateResponse());
        }
Esempio n. 24
0
        public IHttpActionResult PostAnswer(QuestionAnswer questionAnswer)
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            string      userseq     = jwtAuthUtil.Getuserseq(token);

            string user = userseq.Substring(0, 1);

            if (user == "M")
            {
                return(Ok(new
                {
                    result = "會員無法回答"
                }));
            }
            questionAnswer.companyseq = userseq;
            questionAnswer.del_flag   = "N";
            questionAnswer.postday    = DateTime.Now;
            db.QuestionAnswer.Add(questionAnswer);
            db.SaveChanges();

            //var questisonAnswer_ = db.QuestionAnswer.Where(x => x.Question.queseq == questionAnswer.queseq).FirstOrDefault();
            var            question        = db.Question.Where(x => x.queseq == questionAnswer.queseq).ToList();
            QuestionAnswer questionAnswer_ = db.QuestionAnswer.Find(questionAnswer.ansseq);

            //signalr即時通知
            Utility.signalR_notice(questionAnswer_.companyseq, questionAnswer_.Question.memberseq, questionAnswer_.ansseq, "", Noticetype.答通知);
            var context   = GlobalHost.ConnectionManager.GetHubContext <DefaultHub>();
            var connectid = db.Signalr.Where(x => x.whoseq == questionAnswer_.Question.memberseq).Select(x => x.connectid).ToList();//需要通知的會員signalr connectid

            var unread = db.Notice.Where(x => x.toseq == questionAnswer_.Question.memberseq).ToList();

            unread = unread.Where(x => x.state == Convert.ToBoolean(Noticestate.未讀)).ToList();
            List <Notice> notices = db.Notice.Where(x => x.toseq == questionAnswer_.Question.memberseq).OrderBy(x => x.state).ThenByDescending(x => x.postday).Take(10).ToList();
            var           result  = new
            {
                unread  = unread.Count(),
                notices = notices.Select(
                    x => new
                {
                    x.noticeseq,
                    x.fromseq,
                    x.toseq,
                    state = Enum.Parse(typeof(Noticestate), x.state.GetHashCode().ToString()).ToString(),
                    x.text,
                    type = Enum.Parse(typeof(Noticetype), x.type.ToString()).ToString(),
                    time = Convert.ToDateTime(x.postday).ToString("yyyy-MM-dd HH:mm")
                })
            };

            foreach (var c in connectid)
            {
                context.Clients.Client(c).Get(result);
            }
            return(Ok(new
            {
                result = "回覆成功"
            }));
        }
Esempio n. 25
0
        //[Route("account")]
        public HttpResponseMessage PatchMember(PatchMember patchMember)
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         Mid         = Convert.ToInt32(jwtAuthUtil.GetId(token));


            Member member = db.Members.Find(Mid);


            if (member.Permission == "01")
            {
                patchMember.Password = Utility.GenerateHashWithSalt(patchMember.Password, member.PasswordSalt);
                patchMember.Patch(member);

                db.SaveChanges();

                var result1 = db.Members.Where(x => x.id == Mid).Select(x => new
                {
                    x.id,
                    x.name,
                    x.Tel,
                    x.MemberIntro,
                    x.PlannerSocial1,
                    x.PlannerSocial2,
                });

                //string result = JsonConvert.DeserializeObject<PatchMember>(result1).ToString();

                return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, message = "成功修改", result1 }));
            }

            if (member.Permission == "02")
            {
                patchMember.Password = Utility.GenerateHashWithSalt(patchMember.Password, member.PasswordSalt);
                patchMember.Patch(member);

                db.SaveChanges();

                var result2 = db.Members.Where(x => x.id == Mid).Select(x => new
                {
                    x.id,
                    x.name,
                    x.Tel,
                    x.MemberIntro,
                    x.PlannerSocial1,
                    x.PlannerSocial2,
                    x.PlannerName,
                    x.PlannerIntro,
                    x.PlannerSocial3,
                    x.PlannerSocial4,
                });

                return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, message = "規劃師成功修改", result2 }));
            }

            return(Request.CreateResponse(HttpStatusCode.NoContent, new { message = "沒東西R" }));
        }
Esempio n. 26
0
        public HttpResponseMessage PostUserImage()
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();

            //string _userdata = jwtAuthUtil.Getuserdata(token);
            //Company userdata = JsonConvert.DeserializeObject<Company>(_userdata);
            //try
            //{
            //    var postedFile = HttpContext.Current.Request.Files.Count > 0
            //        ? HttpContext.Current.Request.Files[0]
            //        : null;
            //    if (postedFile != null && postedFile.ContentLength > 0)
            //    {
            //        //string extension = postedFile.FileName.Split('.')[postedFile.FileName.Split('.').Length - 1];
            //        //int MaxContentLength = 1024 * 1024 * 1; //Size = 1MB
            //        string fileName = Utility.SaveUpImage(postedFile);
            //        //IList<string> AllowedFileExtensions = new List<string> {".jpg", ".png", ".svg"};
            //        //if (!AllowedFileExtensions.Contains(extension))
            //        //{
            //        //    return Request.CreateResponse(HttpStatusCode.BadRequest, new
            //        //    {
            //        //        success = false,
            //        //        message = "請上傳圖片正確格式,可接受格式為 .jpg, .png, .svg"
            //        //    });
            //        //}
            //        //產生圖片連結
            //        UriBuilder uriBuilder = new UriBuilder(HttpContext.Current.Request.Url)
            //        {
            //            Path = $"/Upload/Userimg/{fileName}"
            //        };
            //        //Userimage myfolder name where i want to save my image
            //        Uri imageUrl = uriBuilder.Uri;
            //        member.manpic = imageUrl.ToString();
            //        db.Entry(member).State = EntityState.Modified;
            //        db.SaveChanges();
            //        return Request.CreateResponse(HttpStatusCode.OK, new
            //        {
            //            success = true,
            //            message = "已上傳個人圖片",
            //            imageUrl
            //        });
            //    }
            //    return Request.CreateResponse(HttpStatusCode.NotFound, new
            //    {
            //        success = false,
            //        message = "無圖片,請選擇圖片上傳"
            //    });
            //}
            //catch
            //{
            //    throw;
            //}
            return(Request.CreateResponse(HttpStatusCode.OK));
        }
Esempio n. 27
0
        public HttpResponseMessage PostUploadImage()
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         id          = Convert.ToInt32(jwtAuthUtil.GetId(token));
            Brand       brand       = db.Brands.Find(id);

            try
            {
                var file = HttpContext.Current.Request.Files.Count > 0
                    ? HttpContext.Current.Request.Files[0]
                    : null;

                if (file != null && file.ContentLength > 0)
                {
                    //新的檔案名稱
                    string fileName = Utility.UploadBrandImage(file);


                    //產生圖片連結
                    UriBuilder uriBuilder = new UriBuilder(HttpContext.Current.Request.Url)
                    {
                        Path = $"/Upload/brand/info/{fileName}"
                    };

                    Uri imageUrl = uriBuilder.Uri;
                    brand.LogoPhoto = imageUrl.ToString();
                    brand.CarImage  = imageUrl.ToString();
                    brand.QrCode    = imageUrl.ToString();

                    db.Entry(brand).State = EntityState.Modified;
                    db.SaveChanges();


                    return(Request.CreateResponse(HttpStatusCode.OK, new
                    {
                        success = true,
                        message = "圖片上傳成功",
                        imageUrl
                    }));
                }


                return(Request.CreateResponse(HttpStatusCode.OK, new
                {
                    result = false,
                    message = "請選擇上傳圖片!"
                }));
            }
            catch
            {
                throw;
            }
        }
Esempio n. 28
0
        //[Route("account")]

        public HttpResponseMessage PatchMember(Member member)
        {
            string      token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            int         Mid         = Convert.ToInt32(jwtAuthUtil.GetId(token));

            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }

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

            change.name           = member.name;
            change.PasswordSalt   = Utility.CreateSalt();
            change.Password       = Utility.GenerateHashWithSalt(member.Password, change.PasswordSalt);
            change.Tel            = member.Tel;
            change.PlannerSocial1 = member.PlannerSocial1;
            change.PlannerSocial2 = member.PlannerSocial2;

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

            try
            {
                db.SaveChanges();

                var result = db.Members.Where(x => x.id == Mid).Select(x => new
                {
                    x.id,
                    x.Email,
                    x.name,
                    x.Tel,
                    x.MemberIntro,
                    x.PlannerSocial1,
                    x.PlannerSocial2,
                });

                return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, message = "成功修改", result }));
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MemberExists(Mid))
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound));
                }
                else
                {
                    throw;
                }
            }

            return(Request.CreateResponse(HttpStatusCode.NoContent));
        }
Esempio n. 29
0
        public IHttpActionResult GetLoginPermission()
        {
            string      Token       = Request.Headers.Authorization.Parameter;
            JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
            var         result      = jwtAuthUtil.GetPermission(Token);

            return(Ok(new
            {
                code = 1,
                data = result
            }));
        }
Esempio n. 30
0
        public IHttpActionResult Login(CompanyLoginModel companyLoginModel)//companglinemodel與member相同
        {
            if (ModelState.IsValid)
            {
                Member member = GetUser(companyLoginModel.email);
                if (member == null)
                {
                    return(Ok(new
                    {
                        result = "登入失敗:查無此信箱,請註冊"
                    }));
                }

                bool Validated = ValidateUser(companyLoginModel.pwd, member.pwd, member.pwdsalt);
                if (Validated) //驗證成功 帳密一致true / 驗證失敗false
                {
                    string      userData    = JsonConvert.SerializeObject(member);
                    JwtAuthUtil jwtAuthUtil = new JwtAuthUtil();
                    string      jwtToken    = jwtAuthUtil.GenerateToken(companyLoginModel.email, member.memberseq);

                    return(Ok(new
                    {
                        result = "登入成功",
                        token = jwtToken,
                        //name = FormsAuthentication.FormsCookieName,
                        //value = encryptedTicket
                    }));
                }
                else
                {
                    //判斷 帳號是否被封鎖
                    if (member.del_flag == "Y")
                    {
                        return(Ok(new
                        {
                            result = "登入失敗:此信箱已被平台封鎖"
                        }));
                    }
                    else
                    {
                        return(Ok(new
                        {
                            result = "登入失敗:信箱或密碼錯誤"
                        }));
                    }
                }
            }
            return(Ok(new
            {
                result = "信箱或是密碼輸入格式有誤"
            }));
        }