Post page:
set the design of post page
src/app/Admin/post/post.component.HTML
<section class="dashboard-wrap mtb-40"> <div class="container"> <div class="body-content"> <div class="row"> <div class="col-md-3"> <div class="dash-left"> <ul> <li class="active"><a routerLink="/dashboard" routerLinkActive="active" class="nav-link">Dashboard</a></li> <a routerLink="/Post" routerLinkActive="active" class="nav-link" >Posts</a> <li><a href="#">Courses</a></li> <li><a href="#">Pages</a></li> <li><a href="#">Logout</a></li> </ul> </div> </div> <div class="col-md-9"> <div class="dash-right"> <div class="dash-header"> <div class="dash-title"> <h1>{{title}}</h1> </div> <div class="dash-nav"> <a [routerLink]="['/admin/blogs/create']" class="btn btn-success">Add Post</a> </div> </div> <table class="table table-bordered table-striped"> <tr> <th>#ID</th> <th>Image</th> <th>Title</th> <th>Created At</th> <th>Action</th> </tr> <tr *ngFor="let post of allpost"> <td>{{post.Id}}</td> <td><img src="../../../assets/images/{{post.Image}}" ></td> <td>{{post.Title}}</td> <td>{{post.EnteredDate | date: 'mediumDate'}}</td> <td class="action"> <a [routerLink]="['/admin/post/edit', post.Id]" class="btn btn-info btn-sm">Edit</a> <a (click)="onDelete(post.Id)" class="btn btn-danger btn-sm">Delete</a> </td> </tr> </table> {{error}} </div> </div> </div> </div> </div> </section>
Create Class -post
Create a class as post
ng g class admin/post
Set the properties in the file src/app/Admin/post.ts
export class Posts { Id:number; Title:string; Sort_Desc:string; Full_Desc:string; Image:string; Author:string; EnteredDate:Date; IsActive:number; }
PostService
create service PostService
ng g service admin/post
Edit in the file src/app/auth/employeeservice.ts
import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import { Posts } from './posts'; @Injectable({ providedIn: 'root' }) export class PostService { url = "http://localhost:54868/api/Courseposts"; constructor(private http: HttpClient) { } getposts():Observable{ debugger; return this.http.get (this.url); } }
post.component.ts
Edit the file src/post/post.component.ts
import { Component, OnInit } from '@angular/core'; import { PostService } from '../post.service'; @Component({ selector: 'app-posts', templateUrl: './posts.component.html', styleUrls: ['./posts.component.css'] }) export class PostsComponent implements OnInit { title = 'Posts'; allpost: any; constructor(private postservice: PostService) { } ngOnInit() { this.postservice.getposts().subscribe((data) => { this.allpost = data }) } }
Change Web Api
CoursepostsController
using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using System.Web.Http.Description; using Tutorialwebapi.Models; namespace Tutorialwebapi.Controllers { public class CoursepostsController : ApiController { private Dbmodels db = new Dbmodels(); // GET: api/Courseposts public IQueryableGetCourseposts() { return db.Courseposts; } // GET: api/Courseposts/5 [ResponseType(typeof(Coursepost))] public IHttpActionResult GetCoursepost(long id) { Coursepost coursepost = db.Courseposts.Find(id); if (coursepost == null) { return NotFound(); } return Ok(coursepost); } // PUT: api/Courseposts/5 [ResponseType(typeof(void))] public IHttpActionResult PutCoursepost(long id, Coursepost coursepost) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != coursepost.Id) { return BadRequest(); } db.Entry(coursepost).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!CoursepostExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); } // POST: api/Courseposts [ResponseType(typeof(Coursepost))] public IHttpActionResult PostCoursepost(Coursepost coursepost) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.Courseposts.Add(coursepost); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = coursepost.Id }, coursepost); } // DELETE: api/Courseposts/5 [ResponseType(typeof(Coursepost))] public IHttpActionResult DeleteCoursepost(long id) { Coursepost coursepost = db.Courseposts.Find(id); if (coursepost == null) { return NotFound(); } db.Courseposts.Remove(coursepost); db.SaveChanges(); return Ok(coursepost); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } private bool CoursepostExists(long id) { return db.Courseposts.Count(e => e.Id == id) > 0; } } }