using EnVisage.Models; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; namespace EnVisage.Code.BLL { public class ExpenditureCategoryManager { private readonly EnVisageEntities _dbContext; private readonly bool _isContexLocal = false; public ExpenditureCategoryManager(EnVisageEntities dbContext) { if (dbContext == null) { _dbContext = new EnVisageEntities(); _isContexLocal = true; } else { _dbContext = dbContext; } } public void Dispose() { if (_isContexLocal) _dbContext.Dispose(); } #region Public Methods /// /// Loads a Expenditure Category from the database. /// /// Unique identifier of the Expenditure Category. /// Indicates that object will not be saved later in the code. Use false if you need to save an updated object. /// A object retrieved from database. public ExpenditureCategory Load(Guid? value, bool isReadOnly = true) { if (value == null || value == Guid.Empty) return new ExpenditureCategory(); return isReadOnly ? _dbContext.ExpenditureCategory.AsNoTracking().FirstOrDefault(t => t.Id == value) : _dbContext.ExpenditureCategory.Find(value); } public void Save(ExpenditureCategoryModel model) { if (model == null) throw new ArgumentNullException("model"); #region Save ExpenditureCategory data ExpenditureCategory dbObj = null; if (model.Id != Guid.Empty) dbObj = _dbContext.ExpenditureCategory.Find(model.Id); if (dbObj == null) { dbObj = new ExpenditureCategory { Id = Guid.NewGuid() }; } model.CopyTo(dbObj); dbObj.CGEFX = "CG"; if (model.Id == Guid.Empty) _dbContext.ExpenditureCategory.Add(dbObj); else _dbContext.Entry(dbObj).State = EntityState.Modified; #endregion if (_isContexLocal) _dbContext.SaveChanges(); } #endregion } }