Web API 2 With Repository pattern - Blogs
X
13Jun

Web API 2 With Repository pattern

Web API 2 With Repository pattern

How to create Repository pattern in web API 2.

Overview of Repository Pattern

RepositoryChartFlow

The repository pattern is intended to create an abstraction layer between the data access layer and the business logic layer of an application. It is a data access pattern that prompts a more loosely coupled approach to data access. We create the data access logic in a separate class, or set of classes called a repository with the responsibility of persisting the application's business model.

Using the Repository Pattern has many advantages:

1. Your business logic can be unit tested without data access logic.

2. The database access code can be reused

3. Your database access code is centrally managed so easy to implement any database

     access policies, like caching

4. It’s easy to implement domain logics.

5. Your domain entities or business entities are strongly typed with annotations; and more.

 

Steps to create repository pattern in web API 2.

Here I am going to show a small example how to retrieve and insert data using webApi2.

In this project, I have created 3 separate folders.

Services, ViewModel, Repository.

Folders

Create View Model Classes

    public class EmpViewModel

    {

        public int ID { get; set; }

        public string Name { get; set; }

        public string Address { get; set; }

        public string Phone { get; set; }

    }

Create Generic Interface.

    public interface IGenericDetails

    {

        IEnumerable GetAll();

        IEnumerable GetByID(int id);

        bool Insert(EmpViewModel dt);

        bool Update(EmpViewModel dt, int id);

        bool Delete(EmpViewModel dt, int id);

     }

Create API Controller

Controller1 

Controller2

 

Create Repository

    public class EmployeeDetails : IGenericDetails

    {

        ApiDBEntities db = new ApiDBEntities();

        public IEnumerable GetAll()

        {

            var items = db.Tbl_DetailsRepository.Select(i =>

                       new EmpViewModel { ID = i.ID, Name = i.Name, Address = i.Address,

                                         Phone = i.Phone });

            return items.ToList();

        }

        public IEnumerable GetByID(int id)

        {

            var result = db.Tbl_DetailsRepository.Where(i => i.ID == id).Select(i =>

                         new EmpViewModel {ID = i.ID, Name = i.Name, Address = i.Address,

                                   Phone = i.Phone});

            return result.ToList();

        }

        public bool Insert(EmpViewModel dt)

        {

            Tbl_DetailsRepository dr = new Tbl_DetailsRepository();

            dr.Name = dt.Name;

            dr.Address = dt.Address;

            dr.Phone = dt.Phone;

            db.Tbl_DetailsRepository.Add(dr);

            var Result = db.SaveChanges();

            if (Result == 1)

            {

                return true;

            }

            else

            {

                return false;

            }

        }

 

Conclusion :-

reason to use the repository pattern is to allow the separation of your business logic and/or your UI from System.Data.Entity. There are numerous advantages to this, including real benefits in unit testing.

                   as we know every 2 years new ORM will be launch in the market. So if we use/follow this pattern it will be very easy to switch to any ORM by changing only the connection.

Related

Code Analysis & Code Metrics Integration in Azure Pipelines

This documentation shows the tutorial on how to integrate Visual Studio Code Analysis and Code Metri...

Read More >

What is Selenium Webdriver

Automated software testing is a process in which software tools execute pre-scripted tests on a soft...

Read More >

Bulk Export Import Test Cases to Azure DevOps Test Plans using CSV file

As a user of Azure DevOps Test Plans or TFS Test Management for manual testing, from a long time eve...

Read More >

Material Design in Android – Working with Toolbar

Introduction to Material DesignMaterial Design is a comprehensive guide for visual, motion and inter...

Read More >

Identify and stop idle Dynamics NAV sessions using User Session Control Addon

Since the advent of RTC clients and 3-tier architecture of Dynamics NAV, it’s been a question ...

Read More >

Google Closure

IntroductionClosure is a collection of tools for building rich web applications in JavaScript.Google...

Read More >

GitHub - Administration

To understand GitHub, you must first have an understanding of Git. Git is an open-source version con...

Read More >

How to enable Lync Addin and create Lync Meetings using the Outlook 2013

 How to enable Lync Addin and create Lync Meetings using the Outlook 20131.   &n...

Read More >

India’s First - Microsoft Gold Competency in Application Lifecycle Management

By earning the Microsoft Gold Competency in Application Lifecycle Management, Canarys became the Fir...

Read More >

Continuous Integration/ Continuous Deployment VSTS

Following the below steps you can build and deploy your ASP.NET  app to Azure from either Visua...

Read More >

Share

Try DevOpSmartBoard Ultimate complete Azure DevOps End-to end reporting tool

Sign Up

  • Recent
  • Popular
  • Tag
Monthly Archive
Subscribe
Name

Text/HTML
Contact Us
  • *
  • *