示例#1
0
        public IActionResult Post_Detail_joinNow(int?id)
        {
            ViewBag.UserID = HttpContext.Session.GetInt32(CDictionary.CURRENT_LOGINED_USERID);
            int UserID = ViewBag.UserID;

            if (id != null)
            {
                int p = db.TPosts.FirstOrDefault(p => p.FPostId == id).FPeople;                                      //活動人數
                IEnumerable <TJoinPerson> query = db.TJoinPeople.Where(p => p.FPostId == id && p.FUserId == UserID); //有沒有報名
                if (query.Any() == true)                                                                             //已參加
                {
                    db.TJoinPeople.Remove(query.FirstOrDefault());
                    db.SaveChanges();
                    //判斷目前報名人數 候補
                    if (p > db.TJoinPeople.Where(j => j.FPostId == id && j.FJoincheck == true).Count())
                    {
                        TJoinPerson j = db.TJoinPeople.FirstOrDefault(j => j.FPostId == id && j.FJoincheck == false);
                        if (j != null)
                        {
                            j.FJoincheck = true;
                            db.SaveChanges();
                        }
                    }
                }
                else
                {
                    TJoinPerson joinPerson = null;
                    //判斷目前報名人數,T=不足(參加),F=額滿(等待)。
                    if (p > db.TJoinPeople.Where(j => j.FPostId == id && j.FJoincheck == true).Count())
                    {
                        joinPerson = new() { FPostId = id, FUserId = UserID, FJoinTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm"), FJoincheck = true };
                    }
                    else
                    {
                        joinPerson = new() { FPostId = id, FUserId = UserID, FJoinTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm"), FJoincheck = false };
                    }
                    db.TJoinPeople.Add(joinPerson);
                    db.SaveChanges();
                }
                var people = db.TPosts.AsEnumerable().GroupJoin(db.TJoinPeople, p => p.FPostId, j => j.FPostId, (p, j) => (p, j)).FirstOrDefault(p => p.p.FPostId == id);
                var result = people.j.Join(db.Members, j => j.FUserId, m => m.FUserId, (j, m) => new Post_Join_ViewModel
                {
                    joinPerson = j,
                    member     = m,
                }).OrderBy(p => p.joinPerson.FJoinId).Skip(1);
                return(PartialView("Post_Detail_join", result));
            }
            return(View("Post_Detail_post"));
        }
示例#2
0
        public IActionResult Post_Create(CPostViewModel cPost, string[] tag)
        {
            try
            {
                for (int i = 0; i < tag.Count(); i++)
                {
                    Tag.Add(tag[i]);
                }
                user = cPost.FUserId;
                //context.Add(cPost);

                TPost new_Post = new TPost
                {
                    FUserId       = cPost.FUserId, //todo
                    FDescription  = cPost.FDescription,
                    FPeople       = cPost.FPeople,
                    FPostCity     = cPost.FPostCity,
                    FPostAddress  = cPost.FPostAddress,
                    FPostDistrict = cPost.FPostDistrict,
                    FPostTime     = cPost.FPostTime,
                    FSportName    = cPost.FSportName,
                    FSystemTime   = DateTime.Now.ToString(),
                    FTitle        = cPost.FTitle,
                };
                context.TPosts.Add(new_Post);
                context.SaveChanges();

                foreach (var i in Tag) //標籤
                {
                    TPostTag postTag = new TPostTag();
                    postTag.FTagId  = int.Parse(i);
                    postTag.FPostId = new_Post.FPostId;
                    context.TPostTags.Add(postTag);
                    context.SaveChanges();
                }

                TJoinPerson joinPerson = new TJoinPerson(); //參加人
                joinPerson.FUserId   = new_Post.FUserId;
                joinPerson.FPostId   = new_Post.FPostId;
                joinPerson.FJoinTime = DateTime.Now.ToString();

                TPostSport postSport = new TPostSport();  //活動種類
                postSport.FPostId    = new_Post.FPostId;
                postSport.FSportName = new_Post.FSportName;


                context.TJoinPeople.Add(joinPerson);
                context.SaveChanges();
                if (cPost.image != null)
                {
                    foreach (var i in cPost.image)
                    {
                        string photoName = Guid.NewGuid().ToString() + ".jpg";
                        using (var photo = new FileStream(iv_host.ContentRootPath + @"/wwwroot/Postimg/" + photoName, FileMode.Create))
                        {
                            i.CopyTo(photo);
                        }
                        TPostPhoto postPhoto = new TPostPhoto();
                        postPhoto.FPostId    = new_Post.FPostId;
                        postPhoto.FPostPhoto = @"/Postimg/" + photoName;
                        context.TPostPhotos.Add(postPhoto);
                        context.SaveChanges();
                    }
                }
                return(RedirectToAction("Post_Index", "CPost"));
            }
            catch
            {
                return(RedirectToAction("Post_Index", "CPost"));
            }
        }