///<summary> ///<para>Lấy về đối tượng vết từ gói tin gửi từ Client lên Application Server: Header</para> ///</summary> /// <param name="Header"><para>Dataset chứa Header chứa thông tin vết. Thường là Header <see cref="DataTable"/></para></param> ///<returns>HISTrace nếu tồn tại Header. Ngược lại trả về null.</returns> public static TraceInfor GetTraceObjectFromHeader(DataSet Header) { TraceInfor trace = new TraceInfor(); try { if (Header.Equals(null) || Header.Tables.Count <= 0 || Header.Tables["Header"].Rows.Count <= 0) { //Utility.ShowMsg("Header bạn đưa vào chưa được khởi tạo nên chưa có thông tin về Trace. Đề nghị bạn xem lại..."); return null; } //Read from Header Into Trace trace.pID = Int32Dbnull(Header.Tables["Header"].Rows[0]["ID"], 0); trace.pBranchID = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["BranchID"])); trace.pUserName = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["UserName"])); trace.pCreatedDate = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["CreatedDate"])); trace.pIPAddress = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["IPAddress"])); trace.ComputerName = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["ComputerName"])); trace.AccountName = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["AccountName"])); trace.DLLName = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["DLLName"])); trace.pSubSystemName = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["SubSystemName"])); trace.pFunctionID = Int16Dbnull(Header.Tables["Header"].Rows[0]["FunctionID"]); trace.FunctionName = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["FunctionName"])); trace.pTableName = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["TableName"])); trace.pDesc = CorrectStringValue(sDbnull(Header.Tables["Header"].Rows[0]["Desc"])); trace.pLO = Int16Dbnull(Header.Tables["Header"].Rows[0]["LOT"], 0); return trace; } catch (Exception ex) { Utility.ShowMsg("Lỗi khi lấy đối tượng vết từ Header:\n" + ex.Message); return null; } }
///<summary> ///<para>Gắn Header vào Entity để truyền lên BusinessLogic xử lý</para> ///</summary> /// <param name="Entity"><para>Entity chứa thông tin nghiệp vụ</para></param> /// <param name="Header"><para>Header chứa gói tin lưu vết và loại nghiệp vụ cần thao tác</para></param> ///<returns></returns> public static void MergeHeader(ref DataSet Entity, DataTable Header) { try { if (Entity.Equals(null)) { Utility.ShowMsg("Bạn phải khởi tạo Entity trước khi thực hiện hàm này"); return; } if (Header.Equals(null)) { Utility.ShowMsg("Bạn phải khởi tạo Header trước khi thực hiện hàm này"); return; } if (Entity.Tables.Contains(Header.TableName)) { Entity.Tables.Remove(Header.TableName); Entity.AcceptChanges(); Entity.Merge(Header); Entity.AcceptChanges(); } else { Entity.Merge(Header); Entity.AcceptChanges(); } } catch (Exception ex) { ShowMsg("Lỗi khi gắn Header vào Entity:\n" + ex.Message); } }