Wednesday, 23 December 2015

UNIT OF WORK

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ApiDemo.Models;
using ApiDemo.GenericRepository;

namespace ApiDemo.UnitOfWork
{
    public class UnitOfWork : IDisposable
    {
        private TestServiceEntities context = new TestServiceEntities();
        private GenericRepository<User> userRepository;
        private GenericRepository<MessageHistory> messageHistoryRepository;

        public GenericRepository<User> UserRepository
        {
            get 
            {
                if (this.userRepository == null)
                {
                    this.userRepository = new GenericRepository<User>(context);
                }
                return userRepository;
            }
        }

        public GenericRepository<MessageHistory> MessageHistoryRepository
        {
            get
            {
                if (this.messageHistoryRepository == null)
                {
                    this.messageHistoryRepository = new GenericRepository<MessageHistory>(context);
                }
                return messageHistoryRepository;
            }
        }
       

        public void Save()
        {
            context.SaveChanges();
        }

        private bool disposed = false;

        protected virtual void Dispose(bool disposing)
        {
            if (!this.disposed)
            {
                if (disposing)
                {
                    context.Dispose();
                }
                this.disposed = true;
            }
        }

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }
    }

}

No comments:

Post a Comment