using MvcApiWithAsyncRepos.Models;
using MvcApiWithAsyncRepos.Models.Repository;
using System.Web.Http.Description;
namespace MvcApiWithAsyncRepos.Controllers
{
[RoutePrefix("api/Trainee")]
public class TraineeApiController : ApiController
{
private IDataAccessRepository<Trainee, int> _repository;
//Inject the DataAccessRepository using Construction injection
public TraineeApiController(IDataAccessRepository<Trainee, int> r)
{
_repository = r;
}
[HttpGet]
[Route("GetTrainee", Name = "Get")]
public IEnumerable<Trainee> GetTrainee()
{
return _repository.Get();
}
[HttpGet]
[Route("GetTraineeById/{traineeId}")]
public IHttpActionResult GetTraineeById(int traineeId)
{
return Ok(_repository.Get(traineeId));
}
[HttpPost]
[Route("InsertTrainee")]
public IHttpActionResult PostTrainee(Trainee trainee)
{
_repository.Post(trainee);
return Ok(trainee);
}
[HttpPut]
[Route("UpdateTrainee/{traineeId}")]
public IHttpActionResult PutTrainee(int traineeId, Trainee trainee)
{
_repository.Put(traineeId, trainee);
return CreatedAtRoute("Get", new { id = trainee.TraineeID }, trainee);
}
[HttpDelete]
[Route("DeleteTrainee/{traineeId}")]
public IHttpActionResult DeleteTrainee(int traineeId, Trainee trainee)
{
_repository.Delete(traineeId);
return CreatedAtRoute("Get", new { id = trainee.TraineeID }, trainee);
}
}
}
namespace MvcApiWithAsyncRepos.Models.Repository
{
public interface IDataAccessRepository<TEntity,in TPrimaryKey> where TEntity:class
{
IEnumerable<TEntity> Get();
TEntity Get(TPrimaryKey id);
void Post(TEntity entity);
void Put(TPrimaryKey id, TEntity entity);
void Delete(TPrimaryKey id);
}
}
using Microsoft.Practices.Unity;
namespace MvcApiWithAsyncRepos.Models.Repository
{
public class ClsTraineeDataAccessRepository : IDataAccessRepository<Trainee, int>
{
[Dependency]
public ApplicationDbContext db { get; set; }
public IEnumerable<Trainee> Get()
{
return db.Trainees.ToList();
}
public Trainee Get(int id)
{
return db.Trainees.Find(id);
}
public void Post(Trainee entity)
{
db.Trainees.Add(entity);
db.SaveChanges();
}
public void Put(int id, Trainee entity)
{
var trainee = db.Trainees.Find(id);
if (trainee != null)
{
trainee.Name = entity.Name;
trainee.DateOfBirth = entity.DateOfBirth;
trainee.EmailID = entity.EmailID;
trainee.Gender = entity.Gender;
trainee.Address = entity.Address;
db.SaveChanges();
}
}
public void Delete(int id)
{
var trainee = db.Trainees.Find(id);
if (trainee != null)
{
db.Trainees.Remove(trainee);
db.SaveChanges();
}
}
}
}
using MvcApiWithAsyncRepos.Models.Repository;
using System.Web.Http.Description;
namespace MvcApiWithAsyncRepos.Controllers
{
[RoutePrefix("api/Trainee")]
public class TraineeApiController : ApiController
{
private IDataAccessRepository<Trainee, int> _repository;
//Inject the DataAccessRepository using Construction injection
public TraineeApiController(IDataAccessRepository<Trainee, int> r)
{
_repository = r;
}
[HttpGet]
[Route("GetTrainee", Name = "Get")]
public IEnumerable<Trainee> GetTrainee()
{
return _repository.Get();
}
[HttpGet]
[Route("GetTraineeById/{traineeId}")]
public IHttpActionResult GetTraineeById(int traineeId)
{
return Ok(_repository.Get(traineeId));
}
[HttpPost]
[Route("InsertTrainee")]
public IHttpActionResult PostTrainee(Trainee trainee)
{
_repository.Post(trainee);
return Ok(trainee);
}
[HttpPut]
[Route("UpdateTrainee/{traineeId}")]
public IHttpActionResult PutTrainee(int traineeId, Trainee trainee)
{
_repository.Put(traineeId, trainee);
return CreatedAtRoute("Get", new { id = trainee.TraineeID }, trainee);
}
[HttpDelete]
[Route("DeleteTrainee/{traineeId}")]
public IHttpActionResult DeleteTrainee(int traineeId, Trainee trainee)
{
_repository.Delete(traineeId);
return CreatedAtRoute("Get", new { id = trainee.TraineeID }, trainee);
}
}
}
namespace MvcApiWithAsyncRepos.Models.Repository
{
public interface IDataAccessRepository<TEntity,in TPrimaryKey> where TEntity:class
{
IEnumerable<TEntity> Get();
TEntity Get(TPrimaryKey id);
void Post(TEntity entity);
void Put(TPrimaryKey id, TEntity entity);
void Delete(TPrimaryKey id);
}
}
using Microsoft.Practices.Unity;
namespace MvcApiWithAsyncRepos.Models.Repository
{
public class ClsTraineeDataAccessRepository : IDataAccessRepository<Trainee, int>
{
[Dependency]
public ApplicationDbContext db { get; set; }
public IEnumerable<Trainee> Get()
{
return db.Trainees.ToList();
}
public Trainee Get(int id)
{
return db.Trainees.Find(id);
}
public void Post(Trainee entity)
{
db.Trainees.Add(entity);
db.SaveChanges();
}
public void Put(int id, Trainee entity)
{
var trainee = db.Trainees.Find(id);
if (trainee != null)
{
trainee.Name = entity.Name;
trainee.DateOfBirth = entity.DateOfBirth;
trainee.EmailID = entity.EmailID;
trainee.Gender = entity.Gender;
trainee.Address = entity.Address;
db.SaveChanges();
}
}
public void Delete(int id)
{
var trainee = db.Trainees.Find(id);
if (trainee != null)
{
db.Trainees.Remove(trainee);
db.SaveChanges();
}
}
}
}
0 comments:
একটি মন্তব্য পোস্ট করুন