public IActionResult UserModify(int userNo) //update로 db 에 save
 {
     if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null)
     {
         //로그인이 안된 상태 일 경우 로그인페이지로
         return(RedirectToAction("UserLogin", "User"));
     }
     using (var db = new AspnetCoreStudyDbContext())
     {
         var user = db.Members.FirstOrDefault(n => n.UserNo.Equals(userNo)); //userNo의 정보를 받는거
         return(View(user));
     }
 }
 [HttpPost]//회원가입 전송
 public IActionResult UserJoin(Member model)
 {
     if (ModelState.IsValid)
     {
         using (var db = new AspnetCoreStudyDbContext())
         {
             _ = db.Members.Add(model);
             _ = db.SaveChanges();                  //commit
         }
         return(RedirectToAction("Index", "Home")); //HomeController 의 Index Action을 실행 -> 페이지 이동
     }
     return(View(model));
 }
Exemple #3
0
 public IActionResult PostDetail(int postNo) //게시물 상세보기
 {
     if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null)
     {
         //로그인이 안된 상태
         return(RedirectToAction("UserLogin", "User"));
     }
     using (var db = new AspnetCoreStudyDbContext())
     {
         //var post = db.Posts.FirstOrDefault(n => n.PostNo.Equals(postNo)); //postNo의 정보를 받는거
         var post = db.Posts.Include(u => u.Member).Where(c => c.PostNo.Equals(postNo)).ToList();
         return(View(post));
     }
 }
        public IActionResult UserActivity(int userNo)
        {
            if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null)
            {
                //로그인이 안된 상태 일 경우 로그인페이지로
                return(RedirectToAction("UserLogin", "User"));
            }
            using (var db = new AspnetCoreStudyDbContext())
            {
                //var user = db.Members.FirstOrDefault(n => n.UserNo.Equals(userNo)); //userNo의 정보를 받는거
                var user = db.Posts.Include(u => u.Member).Where(c => c.UserNo.Equals(HttpContext.Session.GetInt32("USER_LOGIN_KEY"))).ToList();

                //사용자의 게시물이 하나도 없을경우 사용자의 기본 정보만 보내준다
                if (user.Count == 0)
                {
                    var user1 = db.Members.FirstOrDefault(n => n.UserNo.Equals(userNo));
                    return(View(user1));
                }
                return(View(user));
            }
        }
Exemple #5
0
        public IActionResult Index()
        {
            if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null)
            {
                //로그인이 안된 상태
                return(RedirectToAction("UserLogin", "User"));
            }
            using (var db = new AspnetCoreStudyDbContext())
            {
                //var list = db.Posts.ToList();
                var list = db.Posts.Include(u => u.Member).ToList(); //EntityFrameworkCore의 Include를 이용한 테이블 조인

                //테이블 Join을 통해 UserId 추출

                /*var list1 = from ps in db.Posts
                 *           join mb in db.Members on ps.UserNo equals mb.UserNo
                 *          select new { UserId = mb.UserId };*/
                //, ps.PostContent, ps.PostGroup, ps.PostViews, ps.PostTittle, ps.PostNo, ps.PostReg
                //var list3 = db.Posts.Join(db.Members, ps => ps.PostNo, mb => mb.UserNo, (ps, mb) => new { Post = ps, Member = mb });
                return(View(list));
            }
        }
 public IActionResult UserModify(Member model)
 {
     if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null)
     {
         //로그인이 안된 상태 일 경우 로그인페이지로
         return(RedirectToAction("UserLogin", "User"));
     }
     model.UserNo = int.Parse(HttpContext.Session.GetInt32("USER_LOGIN_KEY").ToString());
     if (ModelState.IsValid)
     {
         using (var db = new AspnetCoreStudyDbContext())
         {
             db.Entry(model).State = EntityState.Modified;
             if (db.SaveChanges() > 0)
             {
                 return(RedirectToAction("Index", "Home"));
             }
         }
         ModelState.AddModelError(string.Empty, "변경 사항을 저장 할 수 없습니다.");
     }
     return(View(model));
 }
Exemple #7
0
 public IActionResult PostAdd(Post model)
 {
     if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null)
     {
         //로그인이 안된 상태
         return(RedirectToAction("UserLogin", "User"));
     }
     model.UserNo = int.Parse(HttpContext.Session.GetInt32("USER_LOGIN_KEY").ToString());
     if (ModelState.IsValid)
     {
         using (var db = new AspnetCoreStudyDbContext())
         {
             db.Posts.Add(model);
             if (db.SaveChanges() > 0)
             {
                 //return RedirectToAction("Index", "Home"); //다른 Controller의 view로 이동
                 return(Redirect("Index")); //동일한 Controller내에서 처리
             }
         }
         ModelState.AddModelError(string.Empty, "게시물을 저장 할 수 없습니다.");
     }
     return(View(model));
 }
        [HttpPost]//로그인 전송
        public IActionResult UserLogin(LoginViewModel model)
        {
            //Id,Pw 필수
            if (ModelState.IsValid)
            {
                using (var db = new AspnetCoreStudyDbContext())
                {
                    //Linq - 메서드 체이닝
                    // => : A to go B
                    var user = db.Members.FirstOrDefault(u => u.UserId.Equals(model.UserId) && u.UserPw.Equals(model.UserPw));
                    if (user != null)
                    {
                        //로그인 성공했을때
                        //HttpContext.Session.SetInt32(key, value);
                        HttpContext.Session.SetInt32("USER_LOGIN_KEY", user.UserNo);

                        return(RedirectToAction("LoginSuccess", "Home")); // 로그인 성공 페이지로 이동
                    }
                }
                //로그인 실패했을때
                ModelState.AddModelError(string.Empty, "사용자 ID 혹은 비밀번호가 올바르지 않습니다.");
            }
            return(View(model));
        }
        public IActionResult Index()
        {
            using (var db = new AspnetCoreStudyDbContext())
            {
                string        ConnectString = @"Server=localhost;Database=AspnetCoreStudyDb;User Id=sa;Password = 1234; "; //연결할 DB문
                DataTable     dt            = new DataTable();                                                             // Select문 일경우
                SqlConnection conn          = new SqlConnection(ConnectString);                                            //연결문을 통해 DB 연결
                SqlCommand    cmd           = new SqlCommand();                                                            //SQL커맨드 선언
                conn.Open();                                                                                               //DB를 여는 코드
                cmd.CommandType = CommandType.StoredProcedure;                                                             //SQLCommand에서 사용할 커멘드 타입 형식 지정
                cmd.CommandText = "POST_LIST";                                                                             //불러올 프로시저명 지정
                cmd.Parameters.Add("@PostGroup", SqlDbType.Int);                                                           //프로시저에서 선언한 변수명과 데이터형 지정
                cmd.Parameters["@PostGroup"].Value = 0;                                                                    // 프로시저 변수에 입력할 값 혹은 변수 지정
                cmd.Connection = conn;                                                                                     //SQL커맨드가 앞에서 선언한 DB로 연결
                SqlDataAdapter da = new SqlDataAdapter();                                                                  // Select문 일경우에는 이렇게 연결
                da.SelectCommand = cmd;
                da.Fill(dt);
                //DataTable형식을 Ienumerable로 변환
                var posts = new List <Post>();
                foreach (DataRow dr in dt.Rows)
                {
                    var post = new Post
                    {
                        PostNo      = Convert.ToInt32(dr["PostNo"]),
                        PostContent = Convert.ToString(dr["PostContent"]),
                        PostGroup   = Convert.ToInt32(dr["PostGroup"]),
                        PostReg     = Convert.ToDateTime(dr["PostReg"]),
                        PostTittle  = Convert.ToString(dr["PostTittle"]),
                        PostViews   = Convert.ToInt32(dr["PostViews"])
                    };

                    posts.Add(post);
                }
                conn.Dispose();
                ////////////////////////////////////////////////////////ViewBag을 이용한 DB값 넘기기
                DataTable     dt2            = new DataTable();
                string        ConnectString2 = @"Server=localhost;Database=AspnetCoreStudyDb;User Id=sa;Password = 1234; "; //연결할 DB문
                SqlCommand    cmd2           = new SqlCommand();                                                            //SQL커맨드 선언
                SqlConnection conn2          = new SqlConnection(ConnectString2);                                           //연결문을 통해 DB 연결
                conn2.Open();
                cmd2.CommandType = CommandType.StoredProcedure;                                                             //SQLCommand에서 사용할 커멘드 타입 형식 지정
                cmd2.CommandText = "POST_LIST";                                                                             //불러올 프로시저명 지정
                cmd2.Parameters.Add("@PostGroup", SqlDbType.Int);                                                           //프로시저에서 선언한 변수명과 데이터형 지정
                cmd2.Parameters["@PostGroup"].Value = 1;                                                                    // 프로시저 변수에 입력할 값 혹은 변수 지정
                cmd2.Connection = conn2;                                                                                    //SQL커맨드가 앞에서 선언한 DB로 연결
                SqlDataAdapter da2 = new SqlDataAdapter();                                                                  // Select문 일경우에는 이렇게 연결
                da2.SelectCommand = cmd2;
                da2.Fill(dt2);

                var posts2 = new List <Post>();
                foreach (DataRow dr in dt2.Rows)
                {
                    var post = new Post
                    {
                        PostNo      = Convert.ToInt32(dr["PostNo"]),
                        PostContent = Convert.ToString(dr["PostContent"]),
                        PostGroup   = Convert.ToInt32(dr["PostGroup"]),
                        PostReg     = Convert.ToDateTime(dr["PostReg"]),
                        PostTittle  = Convert.ToString(dr["PostTittle"]),
                        PostViews   = Convert.ToInt32(dr["PostViews"])
                    };

                    posts2.Add(post);
                    ViewBag.post2 = posts2;
                }

                return(View(posts.AsEnumerable()));
            }
        }