コード例 #1
0
 public void ResetID(string entity, long id)
 {
     try
     {
         AttendanceDataContext dc = AttendanceDataContextFactory.Createattendance(_ConnStr);
         IntegerID             ii = dc.GetTable <IntegerID>().SingleOrDefault(item => item.Entity == entity);
         if (ii == null)
         {
             ii = new IntegerID()
             {
                 Entity = entity, Value = id
             };
             dc.GetTable <IntegerID>().InsertOnSubmit(ii);
             dc.SubmitChanges();
         }
         else
         {
             ii.Value = id;
             dc.SubmitChanges();
         }
     }
     catch (Exception ex)
     {
         LJH.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex);
     }
 }
コード例 #2
0
        protected override List <AttendanceResult> GetingItems(AttendanceDataContext attendance, SearchCondition search)
        {
            DataLoadOptions opts = new DataLoadOptions();

            opts.LoadWith <AttendanceResult>(item => item.AbsentItems);
            attendance.LoadOptions = opts;
            IQueryable <AttendanceResult> ret = attendance.GetTable <AttendanceResult>();

            if (search is StaffAttendanceResultSearchCondition)
            {
                StaffAttendanceResultSearchCondition con = search as StaffAttendanceResultSearchCondition;
                if (con.ShiftDate != null)
                {
                    ret = ret.Where(item => item.ShiftDate >= con.ShiftDate.Begin && item.ShiftDate <= con.ShiftDate.End);
                }
                if (con.Staff != null && con.Staff.Count > 0)
                {
                    ret = ret.Where(item => con.Staff.Contains(item.StaffID));
                }
                if (con.ShiftID != null)
                {
                    ret = ret.Where(item => item.ShiftID == con.ShiftID);
                }
            }
            return(ret.ToList());
        }
コード例 #3
0
        protected override void UpdatingItem(Operator newVal, Operator original, AttendanceDataContext attendance)
        {
            attendance.GetTable <Operator>().Attach(newVal, original);
            List <T_OperatorDept> optDepts = attendance.GetTable <T_OperatorDept>().Where(item => item.OperatorID == newVal.ID).ToList();

            if (!newVal.IsAdmin)
            {
                foreach (string item in newVal.Depts)
                {
                    if (!optDepts.Exists(it => it.DepartmentID == item))
                    {
                        attendance.GetTable <T_OperatorDept>().InsertOnSubmit(new T_OperatorDept()
                        {
                            OperatorID = newVal.ID, DepartmentID = item
                        });
                    }
                }
                foreach (T_OperatorDept item in optDepts)
                {
                    if (!newVal.Depts.Exists(it => it == item.DepartmentID))
                    {
                        attendance.GetTable <T_OperatorDept>().DeleteOnSubmit(item);
                    }
                }
            }
        }
コード例 #4
0
        protected override void DeletingItem(ShiftTemplate info, AttendanceDataContext attendance)
        {
            T_ShiftArrangeTemplate item = T_ShiftArrangeTemplate.Create(info);

            attendance.GetTable <T_ShiftArrangeTemplate>().Attach(item);
            attendance.GetTable <T_ShiftArrangeTemplate>().DeleteOnSubmit(item);
        }
コード例 #5
0
        public QueryResult <TInfo> GetByID(TID id)
        {
            QueryResult <TInfo> result = null;

            try
            {
                AttendanceDataContext attendance = AttendanceDataContextFactory.Createattendance(ConnectStr);
                TInfo info = GetingItemByID(id, attendance);
                if (info != null)
                {
                    result = new QueryResult <TInfo>(ResultCode.Successful, successMsg, info);
                }
                else
                {
                    result = new QueryResult <TInfo>(ResultCode.Fail, string.Empty, info);
                }
            }
            catch (SqlException ex)
            {
                result = new QueryResult <TInfo>(ResultCodeResolver.GetFromSqlExceptionNumber(ex.Number), ex.Message, null);
                ExceptionPolicy.HandleException(ex, this.GetType().Name + "." + "GetByID()");
            }
            catch (Exception ex)
            {
                result = new QueryResult <TInfo>(ResultCode.Fail, ex.Message, null);
                ExceptionPolicy.HandleException(ex, this.GetType().Name + "." + "GetByID()");
            }
            return(result);
        }
コード例 #6
0
        protected override List <ShiftArrange> GetingItems(AttendanceDataContext attendance, SearchCondition search)
        {
            IQueryable <ShiftArrange> ret = attendance.GetTable <ShiftArrange>();

            if (search is ShiftArrangeSearchCondition)
            {
                ShiftArrangeSearchCondition con = search as ShiftArrangeSearchCondition;
                if (con.ShiftDate != null)
                {
                    ret = ret.Where(item => item.ShiftDate >= con.ShiftDate.Begin && item.ShiftDate <= con.ShiftDate.End);
                }
                if (con.StaffID != null)
                {
                    ret = ret.Where(item => item.StaffID == con.StaffID);
                }
                if (con.ShiftID != null)
                {
                    ret = ret.Where(item => item.ShiftID == con.ShiftID);
                }
            }
            List <ShiftArrange> items = ret.ToList();

            if (items != null && items.Count > 0)
            {
                List <Shift> shifts = (new ShiftProvider(ConnectStr)).GetItems(null).QueryObjects;
                foreach (ShiftArrange item in items)
                {
                    item.Shift = shifts.SingleOrDefault(it => it.ID == item.ShiftID);
                }
            }
            return(items.Where(item => item.Shift != null).ToList());
        }
コード例 #7
0
        protected override List <TASheet> GetingItems(AttendanceDataContext attendance, SearchCondition search)
        {
            DataLoadOptions opts = new DataLoadOptions();

            opts.LoadWith <TASheet>(item => item.Items);
            attendance.LoadOptions = opts;
            IQueryable <TASheet> ret = attendance.GetTable <TASheet>();

            if (search is TASheetSearchCondition)
            {
                TASheetSearchCondition con = search as TASheetSearchCondition;
                if (!string.IsNullOrEmpty(con.SheetID))
                {
                    ret = ret.Where(item => item.SheetID == con.SheetID);
                }
                if (con.StaffID != null)
                {
                    ret = ret.Where(item => item.StaffID == con.StaffID);
                }
                if (!string.IsNullOrEmpty(con.SheetType))
                {
                    ret = ret.Where(item => item.SheetType == con.SheetType);
                }
                if (!string.IsNullOrEmpty(con.Department))
                {
                    ret = ret.Where(item => item.Department == con.Department);
                }
                if (con.StartDate != null)
                {
                    ret = ret.Where(item => item.StartDate >= con.StartDate.Begin && item.StartDate <= con.StartDate.End);
                }
            }
            return(ret.ToList());
        }
コード例 #8
0
        protected override void DeletingItem(Operator info, AttendanceDataContext attendance)
        {
            attendance.GetTable <Operator>().Attach(info);
            attendance.GetTable <Operator>().DeleteOnSubmit(info);
            List <T_OperatorDept> optDepts = attendance.GetTable <T_OperatorDept>().Where(item => item.OperatorID == info.ID).ToList();

            attendance.GetTable <T_OperatorDept>().DeleteAllOnSubmit(optDepts);
        }
コード例 #9
0
        protected override Shift GetingItemByID(string id, AttendanceDataContext attendance)
        {
            DataLoadOptions opts = new DataLoadOptions();

            opts.LoadWith <Shift>(item => item.Items);
            attendance.LoadOptions = opts;
            return(attendance.GetTable <Shift>().SingleOrDefault(item => item.ID == id));
        }
コード例 #10
0
        protected override ShiftArrange GetingItemByID(ShiftArrangeID id, AttendanceDataContext attendance)
        {
            ShiftArrange sa = attendance.GetTable <ShiftArrange>().SingleOrDefault(item => item.StaffID == id.StaffID && item.ShiftDate == id.ShiftDate && item.ShiftID == id.ShiftID);

            if (sa != null)
            {
                sa.Shift = (new ShiftProvider(ConnectStr)).GetByID(sa.ShiftID).QueryObject;
            }
            return(sa);
        }
コード例 #11
0
        protected override AttendanceResult GetingItemByID(Guid id, AttendanceDataContext attendance)
        {
            DataLoadOptions opts = new DataLoadOptions();

            opts.LoadWith <AttendanceResult>(item => item.AbsentItems);
            attendance.LoadOptions = opts;
            AttendanceResult sa = attendance.GetTable <AttendanceResult>().SingleOrDefault(item => item.ID == id);

            return(sa);
        }
コード例 #12
0
        protected override Staff GetingItemByID(int id, AttendanceDataContext attendance)
        {
            Staff staff = attendance.GetTable <Staff>().SingleOrDefault(item => item.ID == id);

            if (staff != null && !string.IsNullOrEmpty(staff.DepartmentID))
            {
                staff.Department = (new DepartmentProvider(ConnectStr)).GetByID(staff.DepartmentID).QueryObject;
            }
            return(staff);
        }
コード例 #13
0
        protected override List <Shift> GetingItems(AttendanceDataContext attendance, SearchCondition search)
        {
            DataLoadOptions opts = new DataLoadOptions();

            opts.LoadWith <Shift>(item => item.Items);
            attendance.LoadOptions = opts;
            IQueryable <Shift> ret = attendance.GetTable <Shift>();

            return(ret.ToList());
        }
コード例 #14
0
        protected override ShiftTemplate GetingItemByID(string id, AttendanceDataContext attendance)
        {
            T_ShiftArrangeTemplate tst = attendance.GetTable <T_ShiftArrangeTemplate>().SingleOrDefault(item => item.ID == id);

            if (tst != null)
            {
                return(T_ShiftArrangeTemplate.Create(tst));
            }
            return(null);
        }
コード例 #15
0
        public long?GetCurID(string entity)
        {
            long?id = null;
            AttendanceDataContext dc = AttendanceDataContextFactory.Createattendance(_ConnStr);
            IntegerID             ii = dc.GetTable <IntegerID>().SingleOrDefault(item => item.Entity == entity);

            if (ii != null)
            {
                id = ii.Value;
            }
            return(id);
        }
コード例 #16
0
 protected override void DeletingItem(Shift info, AttendanceDataContext attendance)
 {
     attendance.GetTable <Shift>().Attach(info);
     attendance.GetTable <Shift>().DeleteOnSubmit(info);
     if (info.Items != null && info.Items.Count > 0)
     {
         foreach (ShiftItem si in info.Items)
         {
             attendance.GetTable <ShiftItem>().Attach(si);
             attendance.GetTable <ShiftItem>().DeleteOnSubmit(si);
         }
     }
 }
コード例 #17
0
 protected override void DeletingItem(AttendanceResult info, AttendanceDataContext attendance)
 {
     attendance.GetTable <AttendanceResult>().Attach(info);
     attendance.GetTable <AttendanceResult>().DeleteOnSubmit(info);
     if (info.AbsentItems != null && info.AbsentItems.Count > 0)
     {
         foreach (AbsentItem item in info.AbsentItems)
         {
             attendance.GetTable <AbsentItem>().Attach(item);
             attendance.GetTable <AbsentItem>().DeleteOnSubmit(item);
         }
     }
 }
コード例 #18
0
        protected override Operator GetingItemByID(string id, AttendanceDataContext attendance)
        {
            Operator opt = attendance.GetTable <Operator>().SingleOrDefault(o => o.ID == id);

            if (opt != null)
            {
                opt.Role = attendance.GetTable <Role>().SingleOrDefault(item => item.ID == opt.RoleID);
                if (!opt.IsAdmin)
                {
                    opt.Depts = attendance.GetTable <T_OperatorDept>().Where(item => item.OperatorID == id).Select(item => item.DepartmentID).ToList();
                }
            }
            return(opt);
        }
コード例 #19
0
        protected override List <ShiftTemplate> GetingItems(AttendanceDataContext attendance, SearchCondition search)
        {
            IQueryable <T_ShiftArrangeTemplate> ret   = attendance.GetTable <T_ShiftArrangeTemplate>();
            List <T_ShiftArrangeTemplate>       items = ret.ToList();

            List <ShiftTemplate> templates = new List <ShiftTemplate>();

            if (items != null && items.Count > 0)
            {
                foreach (T_ShiftArrangeTemplate item in items)
                {
                    templates.Add(T_ShiftArrangeTemplate.Create(item));
                }
            }
            return(templates);
        }
コード例 #20
0
        public void Delete(TInfo info, IUnitWork unitWork)
        {
            if (unitWork == null)
            {
                throw new NullReferenceException("参数unitWork为空!");
            }
            UnitWork trans = unitWork as UnitWork;

            if (trans != null)
            {
                AttendanceDataContext attendance = trans.attendance;
                DeletingItem(info, attendance);
            }
            else
            {
                throw new InvalidCastException("参数unitWork不能转换成类型LJH.LinqDataProvider.UnitWork," +
                                               "请检查参数是否是一个LJH.LinqDataProvider.UnitWork实例!");
            }
        }
コード例 #21
0
 public static AttendanceDataContext Createattendance(string connStr)
 {
     System.Diagnostics.Debug.Assert(!string.IsNullOrEmpty(connStr), "没有找到有效的数据库连接!");
     IDbConnection connection = null;
     Stream stream = typeof(AttendanceDataContextFactory).Assembly.GetManifestResourceStream("LJH.Attendance.DAL.LinqDataProvider.DataMapping.xml");
     XmlMappingSource mappingSource = XmlMappingSource.FromStream(stream);
     string sqlType = AppSettings.CurrentSetting.GetSQLType();
     if (sqlType == "MSSQL")
     {
         connection = new SqlConnection(AppSettings.CurrentSetting.GetConnectString());
     }
     else if (sqlType == "SQLITE")
     {
         connection = new SQLiteConnection(AppSettings.CurrentSetting.GetConnectString());
     }
     System.Diagnostics.Debug.Assert(connection != null, "没有找到有效的数据库连接!");
     AttendanceDataContext attendance = new AttendanceDataContext(connection, mappingSource);
     //attendance.Log = System.Console.Out;
     return attendance;
 }
コード例 #22
0
        protected override List <Staff> GetingItems(AttendanceDataContext attendance, SearchCondition search)
        {
            IQueryable <Staff> ret   = attendance.GetTable <Staff>();
            List <Staff>       items = ret.ToList();

            if (items != null)
            {
                List <Department> depts = (new DepartmentProvider(ConnectStr)).GetItems(null).QueryObjects;
                if (depts != null && depts.Count > 0)
                {
                    foreach (Staff staff in items)
                    {
                        if (!string.IsNullOrEmpty(staff.DepartmentID))
                        {
                            staff.Department = depts.SingleOrDefault(dept => staff.DepartmentID == dept.ID);
                        }
                    }
                }
            }
            return(items);
        }
コード例 #23
0
        protected override List <StaffBioTemplate> GetingItems(AttendanceDataContext attendance, SearchCondition search)
        {
            IQueryable <StaffBioTemplate> ret = attendance.GetTable <StaffBioTemplate>();

            if (search is StaffBioTemplateSearchCondition)
            {
                StaffBioTemplateSearchCondition con = search as StaffBioTemplateSearchCondition;
                if (con.StaffID != null)
                {
                    ret = ret.Where(item => item.StaffID == con.StaffID.Value);
                }
                if (!string.IsNullOrEmpty(con.Version))
                {
                    ret = ret.Where(item => item.Version == con.Version);
                }
                if (con.Staff != null && con.Staff.Count > 0)
                {
                    ret = ret.Where(item => con.Staff.Contains(item.StaffID));
                }
            }
            return(ret.ToList());
        }
コード例 #24
0
        public static AttendanceDataContext Createattendance(string connStr)
        {
            System.Diagnostics.Debug.Assert(!string.IsNullOrEmpty(connStr), "没有找到有效的数据库连接!");
            IDbConnection    connection    = null;
            Stream           stream        = typeof(AttendanceDataContextFactory).Assembly.GetManifestResourceStream("LJH.Attendance.DAL.LinqDataProvider.DataMapping.xml");
            XmlMappingSource mappingSource = XmlMappingSource.FromStream(stream);
            string           sqlType       = AppSettings.CurrentSetting.GetSQLType();

            if (sqlType == "MSSQL")
            {
                connection = new SqlConnection(AppSettings.CurrentSetting.GetConnectString());
            }
            else if (sqlType == "SQLITE")
            {
                connection = new SQLiteConnection(AppSettings.CurrentSetting.GetConnectString());
            }
            System.Diagnostics.Debug.Assert(connection != null, "没有找到有效的数据库连接!");
            AttendanceDataContext attendance = new AttendanceDataContext(connection, mappingSource);

            //attendance.Log = System.Console.Out;
            return(attendance);
        }
コード例 #25
0
        public CommandResult Insert(TInfo info)
        {
            CommandResult result;

            try
            {
                AttendanceDataContext attendance = AttendanceDataContextFactory.Createattendance(ConnectStr);
                InsertingItem(info, attendance);
                attendance.SubmitChanges();
                result = new CommandResult(ResultCode.Successful, successMsg);
            }
            catch (SqlException ex)
            {
                result = new CommandResult(ResultCodeResolver.GetFromSqlExceptionNumber(ex.Number), ex.Message);
                ExceptionPolicy.HandleException(ex, this.GetType().Name + "." + "Insert()");
            }
            catch (Exception ex)
            {
                result = new CommandResult(ResultCode.Fail, ex.Message);
                ExceptionPolicy.HandleException(ex, this.GetType().Name + "." + "Insert()");
            }
            return(result);
        }
コード例 #26
0
        public QueryResultList <TInfo> GetItems(SearchCondition search)
        {
            QueryResultList <TInfo> result;

            try
            {
                AttendanceDataContext attendance = AttendanceDataContextFactory.Createattendance(ConnectStr);
                List <TInfo>          infoes;
                infoes = GetingItems(attendance, search);
                result = new QueryResultList <TInfo>(ResultCode.Successful, successMsg, infoes);
            }
            catch (SqlException ex)
            {
                result = new QueryResultList <TInfo>(ResultCodeResolver.GetFromSqlExceptionNumber(ex.Number), ex.Message, new List <TInfo>());
                ExceptionPolicy.HandleException(ex, this.GetType().Name + "." + "GetItems()");
            }
            catch (Exception ex)
            {
                result = new QueryResultList <TInfo>(ResultCode.Fail, ex.Message, new List <TInfo>());
                ExceptionPolicy.HandleException(ex, this.GetType().Name + "." + "GetItems()");
            }
            return(result);
        }
コード例 #27
0
 protected override void UpdatingItem(Shift newVal, Shift original, AttendanceDataContext attendance)
 {
     attendance.GetTable <Shift>().Attach(newVal, original);
     foreach (ShiftItem item in newVal.Items)
     {
         ShiftItem old = original.Items.SingleOrDefault(it => it.ID == item.ID);
         if (old != null)
         {
             attendance.GetTable <ShiftItem>().Attach(item, old);
         }
         else
         {
             attendance.GetTable <ShiftItem>().InsertOnSubmit(item);
         }
     }
     foreach (ShiftItem item in original.Items)
     {
         if (newVal.Items.SingleOrDefault(it => it.ID == item.ID) == null)
         {
             attendance.GetTable <ShiftItem>().Attach(item);
             attendance.GetTable <ShiftItem>().DeleteOnSubmit(item);
         }
     }
 }
コード例 #28
0
        public long?CreateID(string entity)
        {
            long?id = null;
            AttendanceDataContext dc = AttendanceDataContextFactory.Createattendance(_ConnStr);
            IntegerID             ii = dc.GetTable <IntegerID>().SingleOrDefault(item => item.Entity == entity);

            if (ii == null)
            {
                ii = new IntegerID()
                {
                    Entity = entity, Value = 2
                };
                dc.GetTable <IntegerID>().InsertOnSubmit(ii);
                dc.SubmitChanges();
                id = 1;
            }
            else
            {
                id        = ii.Value;
                ii.Value += 1;
                dc.SubmitChanges();
            }
            return(id);
        }
コード例 #29
0
        protected override List <Operator> GetingItems(AttendanceDataContext attendance, SearchCondition search)
        {
            IQueryable <Operator> ret = attendance.GetTable <Operator>();

            if (search == null)
            {
            }
            List <Operator> items = ret.ToList();

            if (items != null && items.Count > 0)
            {
                List <Role>           roles    = attendance.GetTable <Role>().ToList();
                List <T_OperatorDept> optDepts = attendance.GetTable <T_OperatorDept>().ToList();
                foreach (Operator opt in items)
                {
                    opt.Role = roles.SingleOrDefault(role => role.ID == opt.RoleID);
                    if (!opt.IsAdmin)
                    {
                        opt.Depts = optDepts.Where(item => item.OperatorID == opt.ID).Select(item => item.DepartmentID).ToList();
                    }
                }
            }
            return(items);
        }
コード例 #30
0
        protected override List <AttendanceLog> GetingItems(AttendanceDataContext attendance, SearchCondition search)
        {
            IQueryable <AttendanceLog> ret = attendance.GetTable <AttendanceLog>();

            if (search is AttendanceLogSearchCondition)
            {
                AttendanceLogSearchCondition con = search as AttendanceLogSearchCondition;
                if (con.ReadDateTime != null)
                {
                    ret = ret.Where(item => item.ReadDateTime >= con.ReadDateTime.Begin && item.ReadDateTime <= con.ReadDateTime.End);
                }
                if (con.Staff != null && con.Staff.Count > 0)
                {
                    ret = ret.Where(item => con.Staff.Contains(item.StaffID));
                }
                if (con.Readers != null && con.Readers.Count > 0)
                {
                    ret = ret.Where(item => con.Readers.Contains(item.ReaderID) || item.IsManual == true);                                               //人工签卡记录可能没有读卡器ID
                }
            }
            List <AttendanceLog> items = ret.ToList();

            return(items);
        }
コード例 #31
0
 protected override DeviceInfo GetingItemByID(string id, AttendanceDataContext attendance)
 {
     return(attendance.GetTable <DeviceInfo>().SingleOrDefault(item => item.ID == id));
 }
コード例 #32
0
ファイル: UnitWork.cs プロジェクト: chendeben/508-Attendance
 public UnitWork(string connStr)
 {
     _attendance = AttendanceDataContextFactory.Createattendance(connStr);
 }