EnVisageOnline/Main/Source/EnVisage/Code/BLL/RoleManager.cs

71 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using EnVisage.Models;
using EnVisage.Code.Cache;
using System.Data.Entity;
namespace EnVisage.Code.BLL
{
public class RoleManager : ManagerBase<AspNetRole, RoleModel>
{
public RoleManager(EnVisageEntities dbContext)
: base(dbContext)
{
}
protected override AspNetRole InitInstance()
{
return new AspNetRole();// { Id = Guid.NewGuid().ToString() };
}
protected override AspNetRole RetrieveReadOnlyById(Guid key)
{
return DataTable.AsNoTracking().FirstOrDefault(t => t.Id == key.ToString());
}
public override System.Data.Entity.DbSet<AspNetRole> DataTable
{
get
{
return DbContext.AspNetRoles;
}
}
public override AspNetRole Save(RoleModel model)
{
if (model == null)
throw new ArgumentNullException("model");
new UsersCache().Invalidate();
#region Save Role data
AspNetRole dbObj = null;
//ENV-746 START
//if (model.Id != Guid.Empty)
if (!model.isNew)
//ENV-746 END
dbObj = DbContext.AspNetRoles.Find(model.Id.ToString());
if (dbObj == null)
{
//ENV-746 START
Guid g = Guid.NewGuid();
dbObj = new AspNetRole {Id = g.ToString() };
model.setIDForNewModel(g);
//ENV-746 END
}
model.CopyTo(dbObj);
//ENV-746 START
if (model.isNew)
//if (model.Id == Guid.Empty)
//ENV-746 END
DbContext.AspNetRoles.Add(dbObj);
else
DbContext.Entry(dbObj).State = EntityState.Modified;
#endregion
return dbObj;
}
}
}