using iWareCommon.Common.EnumType; using iWareCommon.Common.Service; using iWareCommon.Utils; using iWareExcel.EXCEL.Dao; using iWareExcel.EXCEL.Entity; using iWareExcel.ORM; using iWareExcel.Properties; using System; using System.Data.Entity.Validation; using System.Linq; namespace iWareExcel.EXCEL.Service { public class WorkCellService : CommonService { private static object Lock = new object(); private WorkCellService():base(WorkCellDao.GetInstance()) { } private static WorkCellService Instance = null; /// /// 获取单例的方法 /// /// 角色服务的单例实体 public static WorkCellService GetInstance() { if (Instance == null) { lock (Lock) { if (Instance == null) { Instance = new WorkCellService(); } } } return Instance; } public override int Save(WorkCellEntity t, out string msg) { msg = ""; using (var dbModel = new DbModelExcel()) { try { var workSheets = dbModel.EXCELWorkSheets.Where(x => x.id == t.WorkSheetId).Select(x => new { x.id, x.name,x.workbookid,x.workbookname }).ToList(); t.WorkSheetName = workSheets.Count > 0 ? workSheets[0].name : ""; t.WorkBookName = workSheets.Count > 0 ? workSheets[0].workbookname : ""; t.WorkBookId = workSheets.Count > 0 ? workSheets[0].workbookid : 0; return WorkCellDao.GetInstance().Save(t, dbModel); } catch (DbEntityValidationException ex) { var errs = ex.EntityValidationErrors.SelectMany(validationResult => validationResult.ValidationErrors).Select(m => m.ErrorMessage); msg = string.Join(", ", errs); LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Save", msg); return -1; } catch (System.Data.Entity.Infrastructure.DbUpdateConcurrencyException ex) { msg = ex.Message; LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Save", ex.Message); return -1; } catch (Exception ex) { msg = ex.HResult == (int)EDbError.记录已存在 ? EDbError.记录已存在.ToString() : ex.Message; LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Save", msg); return -1; } } } public override int Update(WorkCellEntity t, out string msg) { msg = ""; using (var dbModel = new DbModelExcel()) { try { var workSheets = dbModel.EXCELWorkSheets.Where(x => x.id == t.WorkSheetId).Select(x => new { x.id, x.name, x.workbookid, x.workbookname }).ToList(); t.WorkSheetName = workSheets.Count > 0 ? workSheets[0].name : ""; t.WorkBookName = workSheets.Count > 0 ? workSheets[0].workbookname : ""; t.WorkBookId = workSheets.Count > 0 ? workSheets[0].workbookid : 0; return WorkCellDao.GetInstance().Update(t, dbModel); } catch (DbEntityValidationException ex) { var errs = ex.EntityValidationErrors.SelectMany(validationResult => validationResult.ValidationErrors).Select(m => m.ErrorMessage); msg = string.Join(", ", errs); LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Update", msg); return -1; } catch (System.Data.Entity.Infrastructure.DbUpdateConcurrencyException ex) { msg = ex.Message; LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Update", ex.Message); return -1; } catch (Exception ex) { msg = ex.HResult == (int)EDbError.记录已存在 ? EDbError.记录已存在.ToString() : ex.Message; LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Update", msg); return -1; } } } } }