ASP.NET MVC API


1. Asp.Net Web App===>CrudInMvcApi===>WebApi===>Indivisual
2. Models===>Trainee(Class)
using System.ComponentModel.DataAnnotations;
namespace CrudInMvcApi.Models
{
    public class Trainee
    {
        [Key]
        public int TraineeID { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
        public string Address { get; set; }
        public string CellPhone { get; set; }
    }
}
3. Web.Config===>Modify Database
4. Models===>IdentityModels.cs
public DbSet<Trainee> Trainees { get; set; }
    }
}
5. Enable-Migrations, Add-Migration, Update-Database
Add data on table
6. Project===>Install==>Unity.WepApi.5.1  (Version 5.2.0) ==>Accept---->YesToAll
7. Models===> Repository==> IDataAccessRepository.cs
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);
}
8. Models===> Repository==> ClsTraineeDataAccessRepository.cs
 using Microsoft.Practices.Unity;  

    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.Email = entity.Email;
                trainee.Address = entity.Address;
                trainee.CellPhone = entity.CellPhone;
                db.SaveChanges();
            }
        }
        public void Delete(int id)
        {
            var trainee = db.Trainees.Find(id);
            if (trainee != null)
            {
                db.Trainees.Remove(trainee);
                db.SaveChanges();
            }
        }
    }
9. Global.asax
protected void Application_Start()
{
            AreaRegistration.RegisterAllAreas();
            UnityConfig.RegisterComponents();
}
10. App_Start==>UnityConfig.cs
container.RegisterType<IDataAccessRepository<Trainee, int>, ClsTraineeDataAccessRepository>();

11. Controllers==>TraineeApiController

using System.Web.Http;
using CrudInMvcApi.Models;
using CrudInMvcApi.Models.Repository;
namespace CrudInMvcApi.Controllers
{
    [RoutePrefix("api/Trainee")]
    public class TraineeApiController : ApiController
    {
        private IDataAccessRepository<Trainee, int> _repository;
        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);
        }
    }
}


SHARE
  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 comments:

একটি মন্তব্য পোস্ট করুন