public IHttpActionResult GetStudentById(int studentId)
        {
            StudentViewModel student = null;

            using (var ctx = new MyTestDBEntities())
            {
                student = ctx.Students.Include("Standard").Where(s => s.StudentID == studentId).Select(s => new StudentViewModel()
                {
                    Id        = s.StudentID,
                    FirstName = s.FirstName,
                    LastName  = s.LastName,
                    Standard  = new StandardViewModel()
                    {
                        Name       = s.Standard.StandardName,
                        StandardId = s.Standard.StandardID
                    }
                }).FirstOrDefault <StudentViewModel>();
            }

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

            return(Ok(student));
        }
        public IHttpActionResult GetStudentsByStandard(int StandardId)
        {
            List <StudentViewModel> students = null;

            using (var ctx = new MyTestDBEntities())
            {
                students = ctx.Students.Include("Standard").Where(std => std.StandardID == StandardId).
                           Select(s => new StudentViewModel()
                {
                    Id        = s.StudentID,
                    FirstName = s.FirstName,
                    LastName  = s.LastName,
                    Standard  = new StandardViewModel()
                    {
                        Name       = s.Standard.StandardName,
                        StandardId = s.Standard.StandardID
                    }
                }).ToList <StudentViewModel>();
            }

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

            return(Ok(students));
        }
        public ActionResult Edit(int id)
        {
            StudentViewModel student = null;

            using (var cdx = new MyTestDBEntities())
            {
                student = cdx.Students.Select(s => new StudentViewModel()
                {
                    FirstName = s.FirstName,
                    LastName  = s.LastName,
                    Id        = s.StudentID
                }).FirstOrDefault();
            }

            return(View(student));
        }
        public IHttpActionResult Delete(int studentId)
        {
            if (studentId >= 0)
            {
                using (var ctx = new MyTestDBEntities())
                {
                    var existingStudent = ctx.Students.FirstOrDefault(s => s.StudentID == studentId);
                    if (existingStudent == null)
                    {
                        return(NotFound());
                    }

                    ctx.Entry(existingStudent).State = System.Data.Entity.EntityState.Deleted;
                    ctx.SaveChanges();
                    return(StatusCode(HttpStatusCode.OK));
                }
            }
            else
            {
                return(BadRequest("Invalid Student ID."));
            }
        }
        public IHttpActionResult GetAllStudents() /*Un commenting this, because the third was not working as expected due to Table relationship*/
        {
            IList <StudentViewModel> students = null;

            using (var ctx = new MyTestDBEntities())
            {
                students = ctx.Students
                           .Select(s => new StudentViewModel()
                {
                    Id        = s.StudentID,
                    FirstName = s.FirstName,
                    LastName  = s.LastName
                }).ToList <StudentViewModel>();
            }

            if (students.Count == 0)
            {
                return(NotFound());
            }

            return(Ok(students));
        }
        /*POST, PUT METHODS BELOW*/

        /* http://localhost:58710/api/student - This will throw because API does not know which GET to be called, to handle it ,
         * make some changes
         * public IHttpActionResult GetAllStudentswithAddress()
         * {
         *  IList<StudentViewModel> students = null;
         *
         *  using (var ctx = new MyTestDBEntities())
         *  {
         *      students = ctx.Students.Include("StudentAddress").Select(s => new StudentViewModel()
         *      {
         *          Id = s.StudentID,
         *          FirstName = s.FirstName,
         *          LastName = s.LastName,
         *          Address = s.StudentAddresses == null ? null : (AddressViewModel)s.StudentAddresses.Where(a => a.StudentID == s.StudentID)
         *          .Select(ad => new AddressViewModel()
         *          {
         *              Address1 = ad.Address1,
         *              Address2 = ad.Address2,
         *              City = ad.City,
         *              State = ad.State
         *          })
         *      }).ToList<StudentViewModel>();
         *  }
         *
         *  if (students == null)
         *  {
         *      return NotFound();
         *  }
         *
         *  return Ok(students);
         * } */



        //public IHttpActionResult GetAllStudents(bool includeAddress = false) //To overcome the above scenario of multiple get methods calls
        //{
        //    IList<StudentViewModel> students = null;

        //    using (var ctx = new MyTestDBEntities())
        //    {
        //        students = ctx.Students.Include("StudentAddress").Select(s => new StudentViewModel()
        //        {
        //            Id = s.StudentID,
        //            FirstName = s.FirstName,
        //            LastName = s.LastName,
        //            Address = s.StudentAddresses == null || includeAddress == false ? null : new AddressViewModel()
        //            {
        //                StudentId = s.StudentAddresses.StudentID,
        //                Address1 = s.StudentAddresses.Address1,
        //                Address2 = s.StudentAddresses.Address2,
        //                City = s.StudentAddresses.City,
        //                State = s.StudentAddresses.State
        //            }
        //        }).ToList<StudentViewModel>();
        //    }

        //    if (students == null)
        //    {
        //        return NotFound();
        //    }

        //    return Ok(students);
        //}

        public IHttpActionResult PostNewStudent(StudentViewModel student)
        {
            if (ModelState.IsValid)
            {
                using (var ctx = new MyTestDBEntities())
                {
                    ctx.Students.Add(new Student()
                    {
                        FirstName  = student.FirstName,
                        LastName   = student.LastName,
                        StandardID = 3 // Hard coded to make it create , need to look after the descrepancy of sql tables and edmx classes against tutorial teacher..!
                                       //StandardID = student.Standard.StandardId
                    });

                    ctx.SaveChanges();
                }
                return(Created(Request.RequestUri + "/" + student.Id.ToString(), student));
            }
            else
            {
                return(BadRequest("Invalid data."));
            }
        }
        public IHttpActionResult Put(int studentId, StudentViewModel student)
        {
            if (ModelState.IsValid)
            {
                using (var ctx = new MyTestDBEntities())
                {
                    var existingStudent = ctx.Students.FirstOrDefault(s => s.StudentID == studentId);
                    if (existingStudent == null)
                    {
                        return(NotFound());
                    }

                    existingStudent.FirstName = student.FirstName;
                    existingStudent.LastName  = student.LastName;

                    ctx.SaveChanges();
                    return(StatusCode(HttpStatusCode.OK));
                }
            }
            else
            {
                return(BadRequest("Invalid Data."));
            }
        }
Beispiel #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                //Read The IPN POST
                string strFormValues = Encoding.ASCII.GetString(Request.BinaryRead(Request.ContentLength));
                string strNewRequest;

                //Create IPN verification request
                HttpWebRequest req = WebRequest.Create("https://www.sandbox.paypal.com/cgi-bin/webscr") as HttpWebRequest;

                req.Method = "POST";
                req.ContentType = "application/x-www-form-urlencoded";
                strNewRequest = strFormValues + "&cmd=_notify-validate";
                req.ContentLength = strNewRequest.Length;

                StreamWriter swOut = new StreamWriter(req.GetRequestStream(), Encoding.ASCII);
                swOut.Write(strNewRequest);
                swOut.Close();

                HttpWebResponse httwebresponseResponse = req.GetResponse() as HttpWebResponse;
                Stream stIPNResponseStream = httwebresponseResponse.GetResponseStream();
                Encoding encEncode = System.Text.Encoding.GetEncoding("utf-8");
                StreamReader srStream = new StreamReader(stIPNResponseStream, encEncode);

                NVPCodec nvpResponse = new NVPCodec();
                //Getting Name Value Pairs Collection
                nvpResponse.Decode(strFormValues);

                string strIPNResponse = srStream.ReadToEnd();
                Label lblMessage = new Label();
                lblMessage.Text = strIPNResponse;
                Page.Form.Controls.Add(lblMessage);

                //Creating new database object
                MyTestDBEntities MyTestDB = new MyTestDBEntities();

                IPN_Main ipn_main = new IPN_Main() { IPN_Status = strIPNResponse, DateTimeStamp = DateTime.Now, RawString = strFormValues };
                MyTestDB.IPN_Main.AddObject(ipn_main);
                MyTestDB.SaveChanges();

                for (int intCounter = 0; intCounter < nvpResponse.Count; ++intCounter)
                {
                    IPN_Variables ipn_variables = new IPN_Variables() { IPN_ID = ipn_main.IPN_ID, Name = nvpResponse.GetKey(intCounter), Variable = nvpResponse.Get(intCounter) };
                    MyTestDB.IPN_Variables.AddObject(ipn_variables);
                    //Writing to debug stream for debugging pupose
                    string strTemp = nvpResponse.GetKey(intCounter) + nvpResponse.Get(intCounter) + Environment.NewLine;
                    Debug.Write(strTemp);
                }

                MyTestDB.SaveChanges();
                srStream.Close();
            }
            catch (Exception exErrors)
            {
                //generic exception handling: adding label on page with exception details
                Label lblErrorMessage = new Label();
                lblErrorMessage.Text = "Exception: " + exErrors.Message + "<br/>" + exErrors.ToString();
                form1.Controls.Add(lblErrorMessage);

                Debug.WriteLine("Exception: " + exErrors.Message + "\n\t" + exErrors.ToString());
            }
        }
Beispiel #9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                //Read The IPN POST
                string strFormValues = Encoding.ASCII.GetString(Request.BinaryRead(Request.ContentLength));
                string strNewRequest;

                //Create IPN verification request
                HttpWebRequest req = WebRequest.Create("https://www.sandbox.paypal.com/cgi-bin/webscr") as HttpWebRequest;

                req.Method        = "POST";
                req.ContentType   = "application/x-www-form-urlencoded";
                strNewRequest     = strFormValues + "&cmd=_notify-validate";
                req.ContentLength = strNewRequest.Length;

                StreamWriter swOut = new StreamWriter(req.GetRequestStream(), Encoding.ASCII);
                swOut.Write(strNewRequest);
                swOut.Close();

                HttpWebResponse httwebresponseResponse = req.GetResponse() as HttpWebResponse;
                Stream          stIPNResponseStream    = httwebresponseResponse.GetResponseStream();
                Encoding        encEncode = System.Text.Encoding.GetEncoding("utf-8");
                StreamReader    srStream  = new StreamReader(stIPNResponseStream, encEncode);

                NVPCodec nvpResponse = new NVPCodec();
                //Getting Name Value Pairs Collection
                nvpResponse.Decode(strFormValues);

                string strIPNResponse = srStream.ReadToEnd();
                Label  lblMessage     = new Label();
                lblMessage.Text = strIPNResponse;
                Page.Form.Controls.Add(lblMessage);

                //Creating new database object
                MyTestDBEntities MyTestDB = new MyTestDBEntities();

                IPN_Main ipn_main = new IPN_Main()
                {
                    IPN_Status = strIPNResponse, DateTimeStamp = DateTime.Now, RawString = strFormValues
                };
                MyTestDB.IPN_Main.AddObject(ipn_main);
                MyTestDB.SaveChanges();

                for (int intCounter = 0; intCounter < nvpResponse.Count; ++intCounter)
                {
                    IPN_Variables ipn_variables = new IPN_Variables()
                    {
                        IPN_ID = ipn_main.IPN_ID, Name = nvpResponse.GetKey(intCounter), Variable = nvpResponse.Get(intCounter)
                    };
                    MyTestDB.IPN_Variables.AddObject(ipn_variables);
                    //Writing to debug stream for debugging pupose
                    string strTemp = nvpResponse.GetKey(intCounter) + nvpResponse.Get(intCounter) + Environment.NewLine;
                    Debug.Write(strTemp);
                }

                MyTestDB.SaveChanges();
                srStream.Close();
            }
            catch (Exception exErrors)
            {
                //generic exception handling: adding label on page with exception details
                Label lblErrorMessage = new Label();
                lblErrorMessage.Text = "Exception: " + exErrors.Message + "<br/>" + exErrors.ToString();
                form1.Controls.Add(lblErrorMessage);

                Debug.WriteLine("Exception: " + exErrors.Message + "\n\t" + exErrors.ToString());
            }
        }