1.LM.Data (EDMX)
2.LM.Repository (Ref.- Data)
3.LM.Service(Ref.- Data,Repository)
4.LM.Model
4.LM.Presentation(Ref.- Data,Repository,Service,Model)
5.LM.Test
LM.Repository
1.
public partial interface IGenericRepository<TEntity> where TEntity : class
{
/// <summary>
/// Gets the by identifier.
/// </summary>
/// <param name="ID">The identifier.</param>
/// <returns></returns>
TEntity GetByID(object ID);
/// <summary>
/// Inserts the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <returns></returns>
TEntity Insert(TEntity entity);
/// <summary>
/// Updates the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
void Update(TEntity entity);
/// <summary>
/// Updates the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <param name="ID">The identifier.</param>
void Update(TEntity entity, object ID);
/// <summary>
/// Deletes the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
void Delete(TEntity entity);
/// <summary>
/// Gets the table.
/// </summary>
/// <value>
/// The table.
/// </value>
IQueryable<TEntity> Table { get; }
}
2.
public partial class GenericRepository<TEntity> : IGenericRepository<TEntity> where TEntity : class
{
protected readonly DbContext _context;
protected DbSet<TEntity> _entities;
/// <summary>
/// Initializes a new instance of the <see cref="GenericRepository{TEntity}"/> class.
/// </summary>
/// <param name="context">The context.</param>
public GenericRepository(DbContext context)
{
this._context = context;
}
/// <summary>
/// Gets the by identifier.
/// </summary>
/// <param name="ID">The identifier.</param>
/// <returns></returns>
public TEntity GetByID(object ID)
{
return this.Entities.Find(ID);
}
/// <summary>
/// Inserts the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <returns></returns>
/// <exception cref="System.ArgumentNullException">entity</exception>
public TEntity Insert(TEntity entity)
{
try
{
if (entity == null)
throw new ArgumentNullException("entity");
this.Entities.Add(entity);
this._context.SaveChanges();
return entity;
}
catch (DbEntityValidationException dbEx)
{
var msg = string.Empty;
foreach (var validationErrors in dbEx.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
msg += string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage) + Environment.NewLine;
var fail = new Exception(msg, dbEx);
//Debug.WriteLine(fail.Message, fail);
throw fail;
}
}
/// <summary>
/// Updates the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <exception cref="System.ArgumentNullException">entity</exception>
public void Update(TEntity entity)
{
try
{
if (entity == null)
throw new ArgumentNullException("entity");
var entry = _context.Entry<TEntity>(entity);
var set = _context.Set<TEntity>();
if (entry.State == EntityState.Detached)
{
// It is DB-First appraoch now & our base class is not defined,
// So have to Fetch ID first.
var ID = entity.GetType().GetProperty("ID").GetValue(entity, null);
// And then update.
TEntity attachedEntity = set.Find(ID); // You need to have access to key
if (attachedEntity != null)
{
var attachedEntry = _context.Entry(attachedEntity);
attachedEntry.CurrentValues.SetValues(entity);
this._context.SaveChanges();
}
else
{
entry.State = EntityState.Modified; // This should attach entity
}
}
else
{
set.Attach(entity);
entry.State = EntityState.Modified;
_context.SaveChanges();
}
}
catch (DbEntityValidationException dbEx)
{
var msg = string.Empty;
foreach (var validationErrors in dbEx.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
msg += Environment.NewLine + string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
var fail = new Exception(msg, dbEx);
//Debug.WriteLine(fail.Message, fail);
throw fail;
}
}
/// <summary>
/// Updates the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <param name="ID">The identifier.</param>
/// <exception cref="System.ArgumentNullException">entity</exception>
public void Update(TEntity entity, object ID)
{
try
{
if (entity == null)
throw new ArgumentNullException("entity");
var entry = _context.Entry<TEntity>(entity);
if (entry.State == EntityState.Detached)
{
var set = _context.Set<TEntity>();
TEntity attachedEntity = set.Find(ID); // You need to have access to key
if (attachedEntity != null)
{
var attachedEntry = _context.Entry(attachedEntity);
attachedEntry.CurrentValues.SetValues(entity);
this._context.SaveChanges();
}
else
{
entry.State = EntityState.Modified; // This should attach entity
}
}
}
catch (DbEntityValidationException dbEx)
{
var msg = string.Empty;
foreach (var validationErrors in dbEx.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
msg += Environment.NewLine + string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
var fail = new Exception(msg, dbEx);
//Debug.WriteLine(fail.Message, fail);
throw fail;
}
}
/// <summary>
/// Gets the primary key.
/// </summary>
/// <param name="entry">The entry.</param>
/// <returns></returns>
private int GetPrimaryKey(DbEntityEntry entry)
{
var myObject = entry.Entity;
var property =
myObject.GetType()
.GetProperties().FirstOrDefault(prop => Attribute.IsDefined(prop, typeof(KeyAttribute)));
return (int)property.GetValue(myObject, null);
}
/// <summary>
/// Deletes the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <exception cref="System.ArgumentNullException">entity</exception>
public void Delete(TEntity entity)
{
try
{
if (entity == null)
throw new ArgumentNullException("entity");
this.Entities.Remove(entity);
this._context.SaveChanges();
}
catch (DbEntityValidationException dbEx)
{
var msg = string.Empty;
foreach (var validationErrors in dbEx.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
msg += Environment.NewLine + string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
var fail = new Exception(msg, dbEx);
//Debug.WriteLine(fail.Message, fail);
throw fail;
}
}
/// <summary>
/// Gets the table.
/// </summary>
/// <value>
/// The table.
/// </value>
public virtual IQueryable<TEntity> Table
{
get
{
return this.Entities;
}
}
/// <summary>
/// Gets the entities.
/// </summary>
/// <value>
/// The entities.
/// </value>
private IDbSet<TEntity> Entities
{
get
{
if (_entities == null)
_entities = _context.Set<TEntity>();
return _entities;
}
}
}
*****************
LM.Service
1.IService
public interface ILoginService
{
/// <summary>
/// Gets the login.
/// </summary>
/// <param name="userName">Name of the user.</param>
/// <param name="password">The password.</param>
/// <returns></returns>
Login GetLogin(string userName,string password);
}
2.Service
public interface ILoginService
{
/// <summary>
/// Gets the login.
/// </summary>
/// <param name="userName">Name of the user.</param>
/// <param name="password">The password.</param>
/// <returns></returns>
Login GetLogin(string userName,string password);
}
***********************************
2.LM.Repository (Ref.- Data)
3.LM.Service(Ref.- Data,Repository)
4.LM.Model
4.LM.Presentation(Ref.- Data,Repository,Service,Model)
5.LM.Test
LM.Repository
1.
public partial interface IGenericRepository<TEntity> where TEntity : class
{
/// <summary>
/// Gets the by identifier.
/// </summary>
/// <param name="ID">The identifier.</param>
/// <returns></returns>
TEntity GetByID(object ID);
/// <summary>
/// Inserts the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <returns></returns>
TEntity Insert(TEntity entity);
/// <summary>
/// Updates the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
void Update(TEntity entity);
/// <summary>
/// Updates the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <param name="ID">The identifier.</param>
void Update(TEntity entity, object ID);
/// <summary>
/// Deletes the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
void Delete(TEntity entity);
/// <summary>
/// Gets the table.
/// </summary>
/// <value>
/// The table.
/// </value>
IQueryable<TEntity> Table { get; }
}
2.
public partial class GenericRepository<TEntity> : IGenericRepository<TEntity> where TEntity : class
{
protected readonly DbContext _context;
protected DbSet<TEntity> _entities;
/// <summary>
/// Initializes a new instance of the <see cref="GenericRepository{TEntity}"/> class.
/// </summary>
/// <param name="context">The context.</param>
public GenericRepository(DbContext context)
{
this._context = context;
}
/// <summary>
/// Gets the by identifier.
/// </summary>
/// <param name="ID">The identifier.</param>
/// <returns></returns>
public TEntity GetByID(object ID)
{
return this.Entities.Find(ID);
}
/// <summary>
/// Inserts the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <returns></returns>
/// <exception cref="System.ArgumentNullException">entity</exception>
public TEntity Insert(TEntity entity)
{
try
{
if (entity == null)
throw new ArgumentNullException("entity");
this.Entities.Add(entity);
this._context.SaveChanges();
return entity;
}
catch (DbEntityValidationException dbEx)
{
var msg = string.Empty;
foreach (var validationErrors in dbEx.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
msg += string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage) + Environment.NewLine;
var fail = new Exception(msg, dbEx);
//Debug.WriteLine(fail.Message, fail);
throw fail;
}
}
/// <summary>
/// Updates the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <exception cref="System.ArgumentNullException">entity</exception>
public void Update(TEntity entity)
{
try
{
if (entity == null)
throw new ArgumentNullException("entity");
var entry = _context.Entry<TEntity>(entity);
var set = _context.Set<TEntity>();
if (entry.State == EntityState.Detached)
{
// It is DB-First appraoch now & our base class is not defined,
// So have to Fetch ID first.
var ID = entity.GetType().GetProperty("ID").GetValue(entity, null);
// And then update.
TEntity attachedEntity = set.Find(ID); // You need to have access to key
if (attachedEntity != null)
{
var attachedEntry = _context.Entry(attachedEntity);
attachedEntry.CurrentValues.SetValues(entity);
this._context.SaveChanges();
}
else
{
entry.State = EntityState.Modified; // This should attach entity
}
}
else
{
set.Attach(entity);
entry.State = EntityState.Modified;
_context.SaveChanges();
}
}
catch (DbEntityValidationException dbEx)
{
var msg = string.Empty;
foreach (var validationErrors in dbEx.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
msg += Environment.NewLine + string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
var fail = new Exception(msg, dbEx);
//Debug.WriteLine(fail.Message, fail);
throw fail;
}
}
/// <summary>
/// Updates the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <param name="ID">The identifier.</param>
/// <exception cref="System.ArgumentNullException">entity</exception>
public void Update(TEntity entity, object ID)
{
try
{
if (entity == null)
throw new ArgumentNullException("entity");
var entry = _context.Entry<TEntity>(entity);
if (entry.State == EntityState.Detached)
{
var set = _context.Set<TEntity>();
TEntity attachedEntity = set.Find(ID); // You need to have access to key
if (attachedEntity != null)
{
var attachedEntry = _context.Entry(attachedEntity);
attachedEntry.CurrentValues.SetValues(entity);
this._context.SaveChanges();
}
else
{
entry.State = EntityState.Modified; // This should attach entity
}
}
}
catch (DbEntityValidationException dbEx)
{
var msg = string.Empty;
foreach (var validationErrors in dbEx.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
msg += Environment.NewLine + string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
var fail = new Exception(msg, dbEx);
//Debug.WriteLine(fail.Message, fail);
throw fail;
}
}
/// <summary>
/// Gets the primary key.
/// </summary>
/// <param name="entry">The entry.</param>
/// <returns></returns>
private int GetPrimaryKey(DbEntityEntry entry)
{
var myObject = entry.Entity;
var property =
myObject.GetType()
.GetProperties().FirstOrDefault(prop => Attribute.IsDefined(prop, typeof(KeyAttribute)));
return (int)property.GetValue(myObject, null);
}
/// <summary>
/// Deletes the specified entity.
/// </summary>
/// <param name="entity">The entity.</param>
/// <exception cref="System.ArgumentNullException">entity</exception>
public void Delete(TEntity entity)
{
try
{
if (entity == null)
throw new ArgumentNullException("entity");
this.Entities.Remove(entity);
this._context.SaveChanges();
}
catch (DbEntityValidationException dbEx)
{
var msg = string.Empty;
foreach (var validationErrors in dbEx.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
msg += Environment.NewLine + string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
var fail = new Exception(msg, dbEx);
//Debug.WriteLine(fail.Message, fail);
throw fail;
}
}
/// <summary>
/// Gets the table.
/// </summary>
/// <value>
/// The table.
/// </value>
public virtual IQueryable<TEntity> Table
{
get
{
return this.Entities;
}
}
/// <summary>
/// Gets the entities.
/// </summary>
/// <value>
/// The entities.
/// </value>
private IDbSet<TEntity> Entities
{
get
{
if (_entities == null)
_entities = _context.Set<TEntity>();
return _entities;
}
}
}
*****************
LM.Service
1.IService
public interface ILoginService
{
/// <summary>
/// Gets the login.
/// </summary>
/// <param name="userName">Name of the user.</param>
/// <param name="password">The password.</param>
/// <returns></returns>
Login GetLogin(string userName,string password);
}
2.Service
public interface ILoginService
{
/// <summary>
/// Gets the login.
/// </summary>
/// <param name="userName">Name of the user.</param>
/// <param name="password">The password.</param>
/// <returns></returns>
Login GetLogin(string userName,string password);
}
***********************************
No comments:
Post a Comment