/// <summary> /// Kiểm tra 1 user có thỏa mãn 1 step config hay không /// </summary> /// <param name="user"></param> /// <param name="step"></param> /// <returns></returns> private bool CheckUserStep(UserInfoBO user, WF_STEP step, WF_STEP_USER_PROCESS config) { var isResult = true; if (config.CHUCVU_ID.HasValue) { if (user.CHUCVU_ID != config.CHUCVU_ID) { isResult = false; return(isResult); } } if (config.VAITRO_ID.HasValue) { if (!user.ListVaiTro.Any(x => x.DM_VAITRO_ID == config.VAITRO_ID)) { isResult = false; return(isResult); } } if (config.PHONGBAN_ID.HasValue) { if (user.DM_PHONGBAN_ID != config.PHONGBAN_ID) { isResult = false; return(isResult); } } if (!config.IS_CUNGPHONG.HasValue) { return(false); } return(isResult); }
public void OnActionExecuted(ActionExecutedContext filterContext) { UserInfoBO loggedUser = filterContext.HttpContext.Session[SessionManager.USER_INFO] as UserInfoBO; if (actionAudit == null) { return; } if (loggedUser != null && string.IsNullOrWhiteSpace(actionAudit.USER_NAME) && !string.IsNullOrWhiteSpace(loggedUser.TENDANGNHAP)) { actionAudit.USER_NAME = loggedUser.TENDANGNHAP; } if (actionAudit.USER_NAME == null) { if (actionAudit.ACTION != "ExecuteChangePass") { return; } else { actionAudit.USER_NAME = "Error"; } } actionAudit.END_AUDIT_TIME = DateTime.Now; LogAdapter.Insert(actionAudit); }
private List <int> initDonVi(UserInfoBO currentUser) { if (IsInActivities(currentUser.ListThaoTac, PermissionVanbanModel.DONVI)) { CCTC_THANHPHAN DonVi = CCTC_THANHPHANBusiness.Find(currentUser.DM_PHONGBAN_ID); List <int> Ids = new List <int>(); if (DonVi != null && DonVi.PARENT_ID.HasValue && DonVi.PARENT_ID.Value > 0) { Ids = CCTC_THANHPHANBusiness.GetDSChild(DonVi.PARENT_ID.Value).Select(x => x.ID).ToList(); Ids.Add(DonVi.PARENT_ID.Value); } else { Ids = CCTC_THANHPHANBusiness.GetDSChild(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0).Select(x => x.ID).ToList(); Ids.Add(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0); } return(Ids); } //Nếu là quản lý phòng ban else if (IsInActivities(currentUser.ListThaoTac, PermissionVanbanModel.PHONGBAN)) { List <int> Ids = CCTC_THANHPHANBusiness.GetDSChild(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0).Select(x => x.ID).ToList(); Ids.Add(currentUser.DM_PHONGBAN_ID.HasValue ? currentUser.DM_PHONGBAN_ID.Value : 0); return(Ids); } return(new List <int>()); }
public ActionResult Index() { UserInfoBO user = (UserInfoBO)SessionManager.GetUserInfo(); ChatIndexViewModel model = new ChatIndexViewModel(); CHAT_NOIDUNGBusiness = Get <CHAT_NOIDUNGBusiness>(); model.ListChat = CHAT_NOIDUNGBusiness.GetListChatHistory(user.DeptParentID.Value, user.ID, user.TENDANGNHAP, user.HOTEN); return(View(model)); }
public void OnActionExecuting(ActionExecutingContext filterContext) { actionAudit = new ACTION_AUDIT(); actionAudit.CONTROLLER = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; actionAudit.ACTION = filterContext.ActionDescriptor.ActionName; actionAudit.USER_AGENT = filterContext.HttpContext.Request.UserAgent.Substring(0, 60); actionAudit.BEGIN_AUDIT_TIME = DateTime.Now; actionAudit.IP = filterContext.HttpContext.Request.UserHostAddress; actionAudit.DESCRIPTION = Dns.GetHostName(); if (filterContext.ActionParameters.Count > 0) { var ParameterFirst = filterContext.ActionParameters.First(); if (!typeof(LoginViewModel).IsInstanceOfType(ParameterFirst.Value)) { if (typeof(System.Web.HttpPostedFileBase[]).IsInstanceOfType(ParameterFirst.Value)) { var fileFirst = (System.Web.HttpPostedFileBase[])ParameterFirst.Value; if (fileFirst.First() != null) { var fileObj = fileFirst.First(); var tmpObj = new { FileName = fileObj.FileName, ContentLength = fileObj.ContentLength, ContentType = fileObj.ContentType }; var DataObject = Json.Encode(tmpObj); actionAudit.DESCRIPTION = actionAudit.DESCRIPTION + ". Thông tin Object:" + DataObject.ToString(); } } else { var DataObject = Json.Encode(ParameterFirst.Value); actionAudit.DESCRIPTION = actionAudit.DESCRIPTION + ". Thông tin Object:" + DataObject.ToString(); } } } string clientIP = filterContext.HttpContext.Request.Headers["X-Forwarded-For"]; if (!string.IsNullOrWhiteSpace(clientIP)) { actionAudit.IP = clientIP; } UserInfoBO loggedUser = filterContext.HttpContext.Session[SessionManager.USER_INFO] as UserInfoBO; if (loggedUser != null) { actionAudit.USER_NAME = loggedUser.TENDANGNHAP; } }
public static void LoadUserInfo(string UserName) { DBEntities context = new DBEntities(); DmNguoidungBusiness bus = new DmNguoidungBusiness(new UnitOfWork()); UserInfoBO UserInfo = bus.GetUserInfo(UserName); if (UserInfo.LastLoginDate == null) { DM_NGUOIDUNG user = bus.repository.Find(UserInfo.UserID); //user.LAST_LOGIN_DATE = DateTime.Now; bus.Save(user); } SessionManager.SetValue(SessionManager.USER_INFO, UserInfo); }
public static bool ValidateLogin(string UserName, string Password) { //if (DateTime.Now.Year == 2017) //{ // if (DateTime.Now.Month >= 9 || DateTime.Now.Month < 3) // { // return false; // } //} //else //{ // return false; //} //var MachineName = Environment.MachineName; //if (MachineName != "DELL-PC") //{ // return false; //} DBEntities context = new DBEntities(); try { DmNguoidungBusiness bus = new DmNguoidungBusiness(new UnitOfWork()); //UserInfoBO UserInfo = bus.GetUserInfo(UserName, CAPDONVI, TINH_ID, HUYEN_ID, xaid, DONVITW_ID); UserInfoBO UserInfo = bus.GetUserInfo(UserName); if (UserInfo.UserID <= 0) { return(false); } string pass = VtEncodeData.Encode_Data(Password + UserInfo.PasswordSalt); //string pass = VtCryptography.Encrypt(Password + UserInfo.PasswordSalt, UserInfo.PasswordSalt); if (UserInfo.Password == pass)/////////// { SessionManager.SetValue(SessionManager.USER_INFO, UserInfo); return(true); } else { return(false); } } catch (Exception ex) { log.Error(ex.Message + "\n" + ex.StackTrace); return(false); } }
public PartialViewResult GetMoreChatContent(string fromUser, string toUser, string fromFullName, string toFullName, string chatId, int maxItem) { CHAT_NOIDUNGBusiness = Get <CHAT_NOIDUNGBusiness>(); UserInfoBO user = (UserInfoBO)SessionManager.GetUserInfo(); ChatViewModel model = new ChatViewModel(); model.cosoId = user.DeptParentID.Value; model.fromUser = fromUser; model.toUser = toUser; model.fromFullName = fromFullName; model.toFullName = toFullName; model.currentUserName = user.TENDANGNHAP; model.listChat = CHAT_NOIDUNGBusiness.GetListChat(fromUser, toUser, DateTime.Now, 0, 15, maxItem); model.chatPanel_id = chatId; return(PartialView("_GetMoreChatContent", model)); }
public ActionResult Index() { UserInfoBO user = (UserInfoBO)SessionManager.GetUserInfo(); QuanLyHoSoBusiness = Get <QuanLyHoSoBusiness>(); QuanLyVanBanBusiness = Get <QuanLyVanBanBusiness>(); DM_DANHMUC_DATABusiness = Get <DM_DANHMUC_DATABusiness>(); QuanLyVanBanIndexViewModel model = new QuanLyVanBanIndexViewModel(); model.Source = QuanLyHoSoBusiness.GetPageForVanBan(null, pageNumber, pageSize); model.ListHoSoNam = GetListNam(); model.ListNamChinhLy = GetListNam(); model.ListKho = DM_DANHMUC_DATABusiness.GetDropDow(DMLOAI_CONSTANT.QLHS_KHO); model.ListPhongBan = DM_DANHMUC_DATABusiness.GetDropDow(DMLOAI_CONSTANT.QLHS_CO_QUAN_BAN_HANH); ViewBag.PageSize = pageSize; ViewBag.PageNumber = pageNumber; return(View(model)); }
public void sendMessageMultipleUsers(List <long> listUserIds, UserInfoBO currentUser, string TIEUDETHONGBAO, string NOIDUNGTHONGBAO, string URLTHONGBAO, string targetScreen , bool isTaskNotification, long objId, int docType) { var ListToken = (from token in this.context.QL_TOKEN join user in this.context.DM_NGUOIDUNG on token.DM_NGUOIDUNG_ID equals user.ID into group1 from g1 in group1.DefaultIfEmpty() where token.DM_NGUOIDUNG_ID.HasValue && listUserIds.Contains(token.DM_NGUOIDUNG_ID.Value) && true == token.IS_ACTIVE select new QL_TOKEN_BO { DM_NGUOIDUNG_ID = token.DM_NGUOIDUNG_ID, HOTEN = g1.HOTEN, ID = token.ID, IS_ACTIVE = token.IS_ACTIVE, NGAYTAO = token.NGAYTAO, TOKEN = token.TOKEN, TEN_DANGNHAP = g1.TENDANGNHAP }).ToList(); QL_TOKEN_BO Token = null; var FCM_NOTIFICATIONBusiness = new FCM_NOTIFICATIONBusiness(new UnitOfWork()); //NotifCommon notifCommon = new NotifCommon(FcmConstant.ServerKey, FcmConstant.SenderId); foreach (long userId in listUserIds) { Token = ListToken.Where(x => userId == x.DM_NGUOIDUNG_ID).FirstOrDefault(); SYS_TINNHAN TinNhan = new SYS_TINNHAN(); TinNhan.TIEUDE = TIEUDETHONGBAO; TinNhan.NOIDUNG = NOIDUNGTHONGBAO; TinNhan.URL = URLTHONGBAO; TinNhan.TO_USER_ID = userId; TinNhan.TO_USERNAME = Token != null ? Token.TEN_DANGNHAP : ""; TinNhan.FROM_USER_ID = (long)currentUser.ID; TinNhan.FROM_USERNAME = currentUser.TENDANGNHAP; TinNhan.IS_READ = false; TinNhan.NGAYTAO = DateTime.Now; TinNhan.NGUOITAO = currentUser.ID; TinNhan.NOTIFY_ITEM_ID = objId; TinNhan.NOTIFY_ITEM_TYPE = isTaskNotification ? THONGBAO_CONSTANT.CONGVIEC : THONGBAO_CONSTANT.VANBAN; this.Save(TinNhan, targetScreen, isTaskNotification, objId, docType); } }
/// <summary> /// Phương thức để xác nhận đối tượng sẽ nhận trạng thái nào khi được tạo với các vai trò và chức vụ khác nhau /// </summary> /// <returns></returns> public int GetState(int wfid, UserInfoBO userId) { var lstStep = this.context.WF_STEP.Where(x => x.WF_ID == wfid).ToList(); var BeginState = this.context.WF_STATE.Where(x => x.WF_ID == wfid && x.IS_START == true).FirstOrDefault(); if (BeginState != null) { var isFirst = true; if (BeginState.CHUCVU_ID.HasValue) { if (userId.CHUCVU_ID != BeginState.CHUCVU_ID) { isFirst = false; } } if (BeginState.VAITRO_ID.HasValue) { if (!userId.ListVaiTro.Any(x => x.DM_VAITRO_ID == BeginState.VAITRO_ID.GetValueOrDefault())) { isFirst = false; } } if (isFirst) { return(BeginState.ID); } } int currentState; foreach (var item in lstStep) { var config = this.context.WF_STEP_USER_PROCESS.Where(x => x.IS_XULYCHINH == true && x.WF_STEP_ID == item.ID).FirstOrDefault(); if (config != null) { var checkUser = CheckUserStep(userId, item, config); if (checkUser) { currentState = item.STATE_END.GetValueOrDefault(); return(currentState); } } } return(BeginState.ID); }
public static void SendMailTemplate(UserInfoBO currentUser, string body, string subject, List <string> address) { var emailtemplate_path = Path.Combine(ConfigurationManager.AppSettings["FileUpload"], ConfigurationManager.AppSettings["temple_CanhCao_VB"]); if (!string.IsNullOrEmpty(emailtemplate_path) && File.Exists(emailtemplate_path)) { var strEmail = File.ReadAllText(emailtemplate_path); strEmail = strEmail.Replace("[[Email]]", currentUser.EMAIL); strEmail = strEmail.Replace("[[HoTen]]", currentUser.HOTEN); strEmail = strEmail.Replace("[[Title]]", subject); strEmail = strEmail.Replace("[[Subtitle]]", subject); var lstViec = ""; lstViec += "<tr class='item-lst'><td class='img-lst'><img src='http://sv1.upsieutoc.com/2017/11/22/icon-document.png'></td>"; lstViec += body; lstViec += "</tr>"; strEmail = strEmail.Replace("[[contentlst]]", lstViec); sendEmail(strEmail, subject, address); } }
public string GetChild(string pid, string sort) { UserInfoBO user = GetUserInfo(); List <THUMUC_LUUTRU_BO> subMenu = new List <THUMUC_LUUTRU_BO>(); List <TAILIEUDINHKEM_BO> lstTaiLieu = new List <TAILIEUDINHKEM_BO>(); TAILIEUDINHKEMBusiness = Get <TAILIEUDINHKEMBusiness>(); CCTC_THANHPHANBusiness = Get <CCTC_THANHPHANBusiness>(); int pID = pid.ToIntOrZero(); THUMUC_LUUTRUBusiness = Get <THUMUC_LUUTRUBusiness>(); EFILE_CHIASEBusiness = Get <EFILE_CHIASEBusiness>(); THUMUC_LUUTRU THUMUC = THUMUC_LUUTRUBusiness.Find(pID); if (THUMUC != null) { if (THUMUC.PERMISSION.HasValue && THUMUC.PERMISSION.Value == FolderPermission.CAN_WRITE) { subMenu = new List <THUMUC_LUUTRU_BO>(); } else { CCTC_THANHPHAN DONVI = new CCTC_THANHPHAN(); if (THUMUC != null) { DONVI = CCTC_THANHPHANBusiness.Find(THUMUC.DONVI_ID); } else { DONVI = CCTC_THANHPHANBusiness.Find(user.DM_PHONGBAN_ID); } List <int> Ids = new List <int>(); #region Lấy tài liệu + thư mục con subMenu = TAILIEUDINHKEMBusiness.getListFileByFolder(pID, LOAITAILIEU.TM_UPLOAD, 0, DONVI.NAME, THUMUC); CCTC_THANHPHANBusiness = Get <CCTC_THANHPHANBusiness>(); subMenu.AddRange(THUMUC_LUUTRUBusiness.GetThuMucByParent(pID, 0, Ids)); #endregion } } return(JsonConvert.SerializeObject(subMenu)); }
/// <summary> /// @author: duynn /// @description: lấy trạng thái cuối cùng của đối tượng trong luồng xử lý /// </summary> /// <param name="itemType"></param> /// <param name="user"></param> /// <returns></returns> public WF_STATE GetFinalStateOfItem(string itemType, UserInfoBO user) { WF_STATE result = new WF_STATE(); WF_MODULE wfModule = this.context.WF_MODULE.Where(x => x.MODULE_CODE == itemType).FirstOrDefault(); if (wfModule != null && string.IsNullOrEmpty(wfModule.WF_STREAM_ID) == false) { //Lấy thông tin luồng xử lý var department = this.context.CCTC_THANHPHAN.Find(user.DM_PHONGBAN_ID) ?? new CCTC_THANHPHAN(); var wfStreamIds = wfModule.WF_STREAM_ID.ToListInt(','); var wfStream = this.context.WF_STREAM .Where(x => x.LEVEL_ID == department.CATEGORY && wfStreamIds.Contains(x.ID)) .FirstOrDefault() ?? new WF_STREAM(); result = this.context.WF_STATE .Where(x => x.WF_ID == wfStream.ID && x.IS_KETTHUC == true) .FirstOrDefault(); } return(result); }
/// <summary> /// @description: lấy danh sách người liên quan đến công việc /// </summary> /// <param name="user"></param> /// <param name="task"></param> /// <returns></returns> public List <long> GetEmployeesInvolveToTask(UserInfoBO user, HSCV_CONGVIEC task) { //HSCV_CONGVIECBusiness = Get<HSCV_CONGVIECBusiness>(); //HSCV_CONGVIEC_NGUOITHAMGIAXULYBusiness = Get<HSCV_CONGVIEC_NGUOITHAMGIAXULYBusiness>(); List <long> result = new List <long>(); if (user.ID != task.NGUOIGIAOVIEC_ID) { result.Add(task.NGUOIGIAOVIEC_ID ?? 0); } if (user.ID != task.NGUOIXULYCHINH_ID) { result.Add(task.NGUOIXULYCHINH_ID ?? 0); } //danh sách người tham gia xử ly List <long> joinResult = this.context.HSCV_CONGVIEC_NGUOITHAMGIAXULY.Where(x => x.CONGVIEC_ID == task.ID && x.USER_ID != user.ID) .Select(x => x.USER_ID.Value).ToList(); result.AddRange(joinResult); return(result); }
/// <summary> /// @description: lưu tin nhắn vào database /// @author: duynn /// @since: 21/05/2018 /// </summary> /// <param name="sender">người gửi</param> /// <param name="recipientIds">mã người nhận</param> /// <param name="title">tiêu đề</param> /// <param name="content">nội dung</param> /// <param name="path">đường link thông báo</param> public void SaveMessageToDb(UserInfoBO sender, List <long> recipientIds, long objectId, int objectType, string title, string content, string path) { try { if (recipientIds != null && recipientIds.Count > 0) { foreach (var recipientId in recipientIds) { DM_NGUOIDUNG recipient = this.context.DM_NGUOIDUNG.Find(recipientId); if (recipient != null) { SYS_TINNHAN message = new SYS_TINNHAN(); message.TIEUDE = title; message.NOIDUNG = content; message.URL = path; message.TO_USER_ID = recipientId; message.TO_USERNAME = recipient.HOTEN; message.FROM_USER_ID = (long)sender.ID; message.FROM_USERNAME = sender.TENDANGNHAP; message.IS_READ = false; message.NGAYTAO = DateTime.Now; message.NGUOITAO = sender.ID; message.NOTIFY_ITEM_ID = objectId; message.NOTIFY_ITEM_TYPE = objectType; this.repository.Insert(message); this.repository.Save(); } } } } catch (Exception ex) { throw new Exception(ex.Message); } }
static BoFactory() { IProxy proxy = ProxyFactory.CreateProxy(); _VersionTrackBo = proxy.CreateObject<SmartBox.Console.Bo.VersionTrackBo>(); _SMC_UnitBo = proxy.CreateObject<SMC_UnitBo>(); _SMC_AutoTableIDBo = proxy.CreateObject<SMC_AutoTableIDBo>(); _SMC_FunctionRoleBo = proxy.CreateObject<SMC_FunctionRoleBo>(); _SMC_FunctionsBo = proxy.CreateObject<SMC_FunctionsBo>(); _SMC_RoleBo = proxy.CreateObject<SMC_RoleBo>(); _SMC_UserListBo = proxy.CreateObject<SMC_UserListBo>(); _MonitorBO = proxy.CreateObject<MonitorBO>(); _AppCenterBO = proxy.CreateObject<SmartBox.Console.Bo.AppCenter.AppCenterBO>(); _SMC_PackageExtBO = proxy.CreateObject<SmartBox.Console.Bo.SMC_PackageExtBO>(); _PushManageBO = proxy.CreateObject<SmartBox.Console.Bo.PushManageBO>(); _SMC_BUAUserSyncToInsideBO = proxy.CreateObject<SmartBox.Console.Bo.SMC_BUAUserSyncToInsideBO>(); _SMC_BUAUserSyncToOutsideBO = proxy.CreateObject<SmartBox.Console.Bo.SMC_BUAUserSyncToOutsideBO>(); _SMC_PackageExtSyncToOutsideBO = proxy.CreateObject<SmartBox.Console.Bo.SMC_PackageExtSyncToOutsideBO>(); _StatisticsBO = proxy.CreateObject<StatisticsBO>(); _SMC_PushDllBO = proxy.CreateObject<SMC_PushDllBO>(); _StyleBO = proxy.CreateObject<StyleBO>(); _StyleHomeItemBO = proxy.CreateObject<StyleHomeItemBO>(); _SMC_UserBo = proxy.CreateObject<SMC_UserBo>(); _CommonBO = proxy.CreateObject<CommonBO>(); _SMC_UserExceptionBo = proxy.CreateObject<SMC_UserExceptionBo>(); _DeviceExceptionBo = proxy.CreateObject<DeviceExceptionBo>(); _DeviceBo = proxy.CreateObject<DeviceBO>(); _GlobalParamBO = proxy.CreateObject<GlobalParamBO>(); _SMC_PackageExtHistoryBO = proxy.CreateObject<SMC_PackageExtHistoryBO>(); _ApplicationBo = proxy.CreateObject<ApplicationBo>(); _SystemConfigBo = proxy.CreateObject<SystemConfigBO>(); _DeviceUserApplyBO = proxy.CreateObject<DeviceUserApplyBO>(); _SMC_PackageFAQBO = proxy.CreateObject<SMC_PackageFAQBO>(); _UserInfoBO = proxy.CreateObject<UserInfoBO>(); _ActionExtendBO = proxy.CreateObject<ActionExtendBO>(); _Action4AndroidBO = proxy.CreateObject<Action4AndroidBO>(); _App4AIBO = proxy.CreateObject<App4AIBO>(); _Package4AIBO = proxy.CreateObject<Package4AIBO>(); _AppPrivilegeBO = proxy.CreateObject<AppPrivilegeBO>(); _MonitorDefindBO = proxy.CreateObject<MonitorDefindBO>(); }
/// <summary> /// @author: duynn /// @description: kiểm tra các văn bản đến gửi nội bộ đã được đọc /// </summary> /// <param name="itemType"></param> /// <param name="itemId"></param> /// <param name="departmentId"></param> /// <returns></returns> public bool CheckIsRead(string itemType, long itemId, CCTC_THANHPHAN department, UserInfoBO currentUser) { bool isRead = false; if (itemType == MODULE_CONSTANT.VANBANDENNOIBO) { WF_MODULE module = null; if (department.TYPE == 10) { module = this.context.WF_MODULE.Where(x => x.MODULE_CODE == MODULE_CONSTANT.VANBANDEN) .FirstOrDefault(); } else if (department.PARENT_ID == currentUser.DeptParentID) { module = this.context.WF_MODULE.Where(x => x.MODULE_CODE == MODULE_CONSTANT.VANBANDENNOIBO) .FirstOrDefault(); } if (module != null) { var workFlowIds = module.WF_STREAM_ID.ToListInt(','); WF_STREAM stream = this.context.WF_STREAM.Where(x => x.LEVEL_ID == department.CATEGORY && workFlowIds.Contains(x.ID)).FirstOrDefault(); WF_STATE state = this.context.WF_STATE.Where(x => x.IS_START == true && x.WF_ID == stream.ID).FirstOrDefault(); var userBusiness = new DM_NGUOIDUNGBusiness(new UnitOfWork()); List <long> userIds = new List <long>(); if (department.TYPE == 10) { userIds = userBusiness .GetUserByRoleAndParentDept(state.VAITRO_ID.GetValueOrDefault(), department.ID) .Select(x => long.Parse(x.Value)).ToList(); } else if (department.PARENT_ID == currentUser.DeptParentID) { userIds = userBusiness .GetUserByRoleAndDeptId(state.VAITRO_ID.GetValueOrDefault(), department.ID) .Select(x => long.Parse(x.Value)).ToList(); } if (!userIds.Any()) { //lấy người dùng có vai trò cao nhất var highestPriorityUser = userBusiness.GetUserHighestPriority(department.ID); userIds.Add(highestPriorityUser.ID); } isRead = (from read in this.context.HSCV_READVANBAN.Where(x => x.TYPE == 1) join vanban in this.context.HSCV_VANBANDEN.Where(x => x.VANBANDI_ID == itemId) on read.VANBAN_ID equals vanban.ID join user in this.context.DM_NGUOIDUNG on read.USER_ID equals user.ID join dept in this.context.CCTC_THANHPHAN on user.DM_PHONGBAN_ID equals dept.ID select read.USER_ID).Where(x => userIds.Contains(x)).Count() > 0; } } return(isRead); }
/// <summary> /// @author:duynn /// @description: gửi đơn vị nhận bên ngoài /// @since: 10/06/2019 /// </summary> /// <param name="entityVanBanDi"></param> /// <param name="sms"></param> /// <returns></returns> public bool SaveVanBanPhatHanhToDonVi(HSCV_VANBANDI entityVanBanDi, SMSDAL.SendSMSDAL sms) { bool result = true; try { DM_NHOMDANHMUC entityNhomDanhMuc = DM_NHOMDANHMUCBusiness.repository.All() .FirstOrDefault(x => x.GROUP_CODE == DMLOAI_CONSTANT.SOVANBANDEN); DM_NGUOIDUNG entityNguoiKy = DM_NGUOIDUNGBusiness.Find(entityVanBanDi.NGUOIKY_ID); List <TAILIEUDINHKEM> groupFiles = TAILIEUDINHKEMBusiness.GetNewestData(entityVanBanDi.ID, LOAITAILIEU.VANBAN); List <int> idsDonViNhan = new List <int>(); if (!string.IsNullOrEmpty(entityVanBanDi.DONVINHAN_INTERNAL_ID)) { var idsDonViDaNhan = entityVanBanDi.DONVINHAN_INTERNAL_ID.ToListInt(','); idsDonViNhan.AddRange(idsDonViDaNhan); entityVanBanDi.DONVINHAN_INTERNAL_ID = string.Join(",", idsDonViNhan.ToArray()); } List <CCTC_THANHPHAN> groupDonViNhan = CCTC_THANHPHANBusiness.repository.AllNoTracking .Where(x => idsDonViNhan.Contains(x.ID)).ToList(); List <LOGSMS> groupLogSMS = new List <LOGSMS>(); List <TAILIEUDINHKEM> groupForwardFiles = new List <TAILIEUDINHKEM>(); List <WF_ITEM_USER_PROCESS> groupItemUserProcess = new List <WF_ITEM_USER_PROCESS>(); foreach (var dept in groupDonViNhan) { WF_STATE firstState = null; //kiểm tra có phải là gửi nội bộ hay không? bool isSendInternal = false; //- trường hợp gửi cho các ban ngành cấp tỉnh và các huyện xa -> thành văn bản đến của các đơnvị nhận được if (dept.TYPE == DEPTTYLELABEL.ToIntOrZero()) { //- trường hợp này là văn bản đến bình thường var workflowModule = WF_MODULEBusiness.repository .All().FirstOrDefault(x => x.MODULE_CODE == MODULE_CONSTANT.VANBANDEN); var workflowStreamIds = workflowModule.WF_STREAM_ID.ToListInt(','); //- lấy luồng xử lý của từng đơn vị var workflowStream = WF_STREAMBusiness.repository.All() .FirstOrDefault(x => x.LEVEL_ID == dept.CATEGORY && workflowStreamIds.Contains(x.ID)); //lấy trạng thái xử lý ban đầu cảu đơn vị firstState = WF_STATEBusiness.repository.All() .FirstOrDefault(x => x.IS_START == true && x.WF_ID == workflowStream.ID); } else if (dept.PARENT_ID == currentUser.DeptParentID) { isSendInternal = true; //- trường hợp gửi các phòng ban thuộc tỉnh ủy => thành văn bản đến nội bộ của tỉnh var workflowModule = WF_MODULEBusiness.repository.All() .FirstOrDefault(x => x.MODULE_CODE == MODULE_CONSTANT.VANBANDENNOIBO); var workflowStreamIds = workflowModule.WF_STREAM_ID.ToListInt(','); //- lấy luồng xử lý của từng đơn vị var workflowStream = WF_STREAMBusiness.repository.All() .FirstOrDefault(x => x.LEVEL_ID == dept.CATEGORY && workflowStreamIds.Contains(x.ID)); firstState = WF_STATEBusiness.repository.All() .FirstOrDefault(x => x.IS_START == true && x.WF_ID == workflowStream.ID); } UserInfoBO processor = null; /** * kiểm tra vai trò nhận của trạng thái đầu tiên */ if (firstState != null) { /** * lấy người thuộc phòng ban có vai trò xử lý */ var receiver = DM_NGUOIDUNGBusiness.GetUserByRoleAndDeptId(firstState.VAITRO_ID.GetValueOrDefault(), dept.ID).FirstOrDefault(); if (receiver != null) { processor = DM_NGUOIDUNGBusiness.GetNewUserInfo(receiver.Value.ToLongOrZero()); } } var dataSoVanBanDen = DM_DANHMUC_DATABusiness.GetSoVanBan(DMLOAI_CONSTANT.SOVANBANDEN, DateTime.Now.Year, dept.ID); if (dataSoVanBanDen == null) { //tạo sổ văn bản đến dataSoVanBanDen = new DM_DANHMUC_DATA() { DEPTID = dept.ID, TEXT = "Sổ văn bản đến " + DateTime.Now.Year, DATA = DateTime.Now.Year, DM_NHOM_ID = entityNhomDanhMuc.ID }; DM_DANHMUC_DATABusiness.Save(dataSoVanBanDen); } HSCV_VANBANDEN entityVanBanDen = this.ConvertToVanBanDen(entityVanBanDi, entityNguoiKy, dataSoVanBanDen); entityVanBanDen.IS_NOIBO = isSendInternal ? true : false; HSCV_VANBANDENBusiness.Save(entityVanBanDen); /** * cập nhật số văn bản đến */ dataSoVanBanDen.GHICHU = (dataSoVanBanDen.GHICHU.ToIntOrZero() + 1).ToString(); DM_DANHMUC_DATABusiness.Save(dataSoVanBanDen); /** * cập nhật tài liệu đính kèm */ var files = this.GenerateFiles(groupFiles, entityVanBanDen); groupForwardFiles.AddRange(files); /** * cập nhật thông tin văn bản đến trong luồng xử lý */ if (processor != null) { WF_PROCESSBusiness.AddFlow(entityVanBanDen.ID, isSendInternal ? MODULE_CONSTANT.VANBANDENNOIBO : MODULE_CONSTANT.VANBANDEN, processor); } /** * nếu không có người phù hợp trong luồng xử lý ==> lấy người có vai trò cao nhất tại phòng */ if (processor == null) { /** * lấy ra người có vai trò cao nhất tại phòng ban */ processor = DM_NGUOIDUNGBusiness.GetUserHighestPriority(dept.ID); /** * lưu thông in người nhận vào bảng WF_ITEM_USER_PROCESS */ var itemUserProcess = new WF_ITEM_USER_PROCESS(); itemUserProcess.ITEM_ID = entityVanBanDen.ID; itemUserProcess.ITEM_TYPE = isSendInternal ? MODULE_CONSTANT.VANBANDENNOIBO : MODULE_CONSTANT.VANBANDEN; itemUserProcess.IS_XULYCHINH = false; itemUserProcess.USER_ID = processor.ID; itemUserProcess.create_at = DateTime.Now; itemUserProcess.create_by = currentUser.ID; groupItemUserProcess.Add(itemUserProcess); } if (processor != null) { ElasticSearch.updateListUser(entityVanBanDen.ID.ToString(), new List <long> { processor.ID }, ElasticType.VanBanDen); //gửi email if (!string.IsNullOrEmpty(processor.EMAIL)) { var ContentEmail = currentUser.TenPhongBan + " đã gửi bạn một văn bản đến <a href='" + SERVERADDRESS + "/HSCV_VANBANDENArea/HSCV_VANBANDEN/DetailVanBanDen?id=" + entityVanBanDen.ID.ToString() + "'>" + entityVanBanDen.SOHIEU + "</a>"; EmailProvider.SendMailTemplate(currentUser, ContentEmail, ContentEmail, new List <string> { processor.EMAIL }); } //gửi tin nhắn if (currentUser.CanSendSMS && entityVanBanDi.CAN_SEND_SMS == true && processor.DIENTHOAI != null) { var ContentSMS = currentUser.TenPhongBan + " đã gửi bạn một văn bản đến " + entityVanBanDen.SOHIEU; ContentSMS = sms.locDau(ContentSMS); var DoDaiSMS = ContentSMS.Length; string[] noiDung = new string[1]; noiDung[0] = ContentSMS; string resultsend = sms.guiTinNhan(processor.DIENTHOAI, "177403", noiDung); LOGSMS SmsObject = new LOGSMS(); SmsObject.SODIENTHOAINHAN = processor.DIENTHOAI; SmsObject.NOIDUNG = ContentSMS; SmsObject.SOKYTU = DoDaiSMS; SmsObject.KETQUA = resultsend; SmsObject.CREATED_AT = DateTime.Now; SmsObject.CREATED_BY = currentUser.ID; SmsObject.HOTENNGUOIGUI = currentUser.HOTEN; SmsObject.DONVI_GUI = currentUser.DM_PHONGBAN_ID.GetValueOrDefault(); SmsObject.ITEMTYPE = "VANBANDEN"; SmsObject.ITEMID = entityVanBanDen.ID; SmsObject.DONVI_NHAN = processor.DM_PHONGBAN_ID.GetValueOrDefault(); SmsObject.HOTENNGUOINHAN = processor.HOTEN; groupLogSMS.Add(SmsObject); } //lưu thông báo SYS_TINNHAN noti = new SYS_TINNHAN(); noti.FROM_USERNAME = currentUser.HOTEN; noti.FROM_USER_ID = currentUser.ID; noti.NGAYTAO = DateTime.Now; noti.NOIDUNG = currentUser.TenPhongBan + " đã gửi đến bạn một văn bản đến"; noti.URL = "/HSCV_VANBANDENArea/HSCV_VANBANDEN/DetailVanBanDen/" + entityVanBanDen.ID.ToString(); noti.TIEUDE = "Xử lý văn bản đến"; noti.TO_USER_ID = processor.ID; SYS_TINNHANBusiness.Save(noti, "", false, entityVanBanDen.ID, TargetDocType.COORDINATED); } } //lưu thông tin tài liệu, sms, luồng xử lý TAILIEUDINHKEMBusiness.repository.InsertRange(groupForwardFiles); LogSMSBusiness.repository.InsertRange(groupLogSMS); WF_ITEM_USER_PROCESSBusiness.repository.InsertRange(groupItemUserProcess); TAILIEUDINHKEMBusiness.repository.Save(); } catch (Exception) { result = false; } return(result); }
public static bool ValidateRequest(HttpContextBase httpContext) { // Write Authorize code here UserInfoBO UserInfo = (UserInfoBO)SessionManager.GetUserInfo(); if (UserInfo == null) { FormsAuthentication.SignOut(); SessionManager.Clear(); httpContext.Response.Redirect("/Account/Login"); return(true); } string username = httpContext.User.Identity.Name; var rd = httpContext.Request.RequestContext.RouteData; string currentAction = rd.GetRequiredString("action"); string currentController = rd.GetRequiredString("controller"); string currentArea = rd.DataTokens["area"] as string; string ActionPath = string.Format("/{0}/{1}/{2}", currentArea, currentController, currentAction); string ActionPathShort = string.Format("/{0}/{1}", currentArea, currentController); UserInfoBO userinfo = (UserInfoBO)SessionManager.GetUserInfo(); //if (ActionPath.ToLower() == "//Home/Index".ToLower())// nếu nhiều vai trò chưa chọn vai trò thì không được vào trang Index //{ // if (userinfo.RoleID < 1) // { // httpContext.Response.Redirect("/Home/OptionRole"); // return true; // } //} //if (ActionPath.ToLower() == "//Home/OptionRole".ToLower())// nếu có 1 vai trò thì không được vào trang chọn vai trò //{ // if (userinfo.ListRole == null) // { // httpContext.Response.Redirect("/Home/UnAuthor"); // return true; // } //} if (ActionPath == "//Home/Index" || ActionPath == "//Home/UnAuthor" || ActionPathShort == "//AttachFile" || ActionPath == "//Account/ChangePassword") { return(true); } return(true); //commented by namdv //comment date: 09/06 //reson: hệ thống kiểm tra thao tác có cho phép người dùng sử dụng hay không? List <ThaoTacBO> lstTT = userinfo.ListThaoTac; ThaoTacBO tt = lstTT.Where(o => o.THAOTAC.ToLower() == ActionPath.ToLower()).FirstOrDefault(); if (tt == null) { return(false); } else { if (tt.listThoiGian.Count == 0) { return(true); } DateTime currentTime = DateTime.Now; for (int i = 0; i < tt.listThoiGian.Count - 1; i = i + 2) { bool pass = true; DateTime?start = tt.listThoiGian[i]; DateTime?end = tt.listThoiGian[i + 1]; if (end != null) { end = end.Value.AddDays(1); } if (start != null && start > currentTime) { pass = false; } if (end != null && end <= currentTime) { pass = false; } if (pass) { return(true); } } return(false); } }
public JsonResultBO AddFlow(long ItemId, string itemType, UserInfoBO userId, int customState = 0) { var result = new JsonResultBO(true); //Lấy thông tin module của loại đối tượng var module = this.context.WF_MODULE.Where(x => x.MODULE_CODE.Equals(itemType)).FirstOrDefault(); if (module == null || module.WF_STREAM_ID == null) { result.MessageFail("Không tìm thấy luồng xử lý"); return(result); } //Lấy thông tin luồng xử lý var DeptObj = this.context.CCTC_THANHPHAN.Find(userId.DM_PHONGBAN_ID); if (DeptObj == null) { result.MessageFail("Không tìm thấy luồng xử lý do chưa set đúng phòng ban"); return(result); } var LstWFIds = module.WF_STREAM_ID.ToListInt(','); var flow = this.context.WF_STREAM.Where(x => x.LEVEL_ID == DeptObj.CATEGORY && LstWFIds.Contains(x.ID)).FirstOrDefault(); if (flow == null) { result.MessageFail("Không tìm thấy luồng xử lý"); return(result); } //Lấy danh sách bước var lstStep = this.context.WF_STATE.Where(x => x.WF_ID == flow.ID).OrderBy(x => x.ID).ToList(); if (lstStep == null && !lstStep.Any()) { result.MessageFail("Luồng xử lý chưa được cấu hình"); return(result); } var stateID = GetState(flow.ID, userId); /* * @author: duynn * @description: "trạng thái" tùy chỉnh cho phép sử dụng trạng thái vượt cấp * */ if (customState > 0) { stateID = customState; } var stateCurrent = this.context.WF_STATE.Find(stateID); var process = new WF_PROCESS(); process.ITEM_ID = ItemId; process.ITEM_TYPE = itemType; process.USER_ID = userId.ID; process.WF_ID = flow.ID; process.CURRENT_STATE = stateCurrent.ID; process.CURRENT_STATE_NAME = stateCurrent.STATE_NAME; if (customState > 0) { process.IS_END = stateCurrent.IS_KETTHUC.GetValueOrDefault(); } this.Save(process); var userProcess = new WF_ITEM_USER_PROCESS(); userProcess.ITEM_ID = ItemId; userProcess.ITEM_TYPE = itemType; userProcess.IS_XULYCHINH = true; userProcess.USER_ID = userId.ID; userProcess.create_at = DateTime.Now; userProcess.create_by = userId.ID; if (customState > 0) { userProcess.DAXULY = true; } this.context.WF_ITEM_USER_PROCESS.Add(userProcess); var log = new WF_LOG(); log.ITEM_ID = process.ITEM_ID; log.ITEM_TYPE = process.ITEM_TYPE; log.NGUOIXULY_ID = userId.ID; log.WF_ID = process.WF_ID; if (customState > 0) { log.MESSAGE = "<div class='label label-info'>" + stateCurrent.STATE_NAME + "</div>"; } else { log.MESSAGE = "<div class='label label-info'>Khởi tạo</div>"; } log.STEP_ID = null; log.create_at = DateTime.Now; log.create_by = userId.ID; this.context.WF_LOG.Add(log); if (customState > 0) { var function = this.context.WF_STATE_FUNCTION .Where(x => x.WF_STATE_ID == customState) .FirstOrDefault(); if (function != null) { var functionDone = new WF_FUNCTION_DONE(); functionDone.ITEM_TYPE = itemType; functionDone.ITEM_ID = ItemId; functionDone.STATE = customState; functionDone.FUNCTION_STATE = function.ID; functionDone.create_at = DateTime.Now; functionDone.create_by = userId.ID; this.context.WF_FUNCTION_DONE.Add(functionDone); } } this.context.SaveChanges(); return(result); }
protected void AssignUserInfo() { currentUser = this.GetUserInfo(); }
/// <summary> /// @author:duynn /// @description: lấy danh sách phòng ban theo trang /// @since: 14/06/2019 /// </summary> /// <param name="searchModel">thông tin tìm kiếm</param> /// <param name="user">người dùng hiện tại</param> /// <param name="pageIndex">thông tin trang hiện tại</param> /// <param name="pageSize">số bản ghi trên một trang</param> /// <returns></returns> public PageListResultBO<CCTC_THANHPHAN_BO> GetDataByPage(CCTC_THANHPHAN_SEARCHBO searchModel, UserInfoBO user, int pageIndex = 1, int pageSize = 20) { var query = from dept in this.context.CCTC_THANHPHAN join users in this.context.DM_NGUOIDUNG on dept.ID equals users.DM_PHONGBAN_ID into groupUserDepts join deptType in this.context.DM_LOAI_DONVI on dept.TYPE equals deptType.ID into groupDeptType from gDeptType in groupDeptType.DefaultIfEmpty() join deptLevel in this.context.DM_DANHMUC_DATA on dept.CATEGORY equals deptLevel.ID into groupDeptLevel from gDeptLevel in groupDeptLevel.DefaultIfEmpty() select new CCTC_THANHPHAN_BO { ID = dept.ID, CODE = dept.CODE, ITEM_LEVEL = dept.ITEM_LEVEL, NAME = dept.NAME, PARENT_ID = dept.PARENT_ID, TYPE = dept.TYPE, THUTU = dept.THUTU, SoLuongCanBo = groupUserDepts.Count(), TenLoaiDonVi = gDeptType != null ? gDeptType.LOAI : string.Empty, TenCapDonVi = gDeptLevel != null ? gDeptLevel.TEXT : string.Empty }; int deptId = 0; if (user.ListVaiTro.Any(x => x.MA_VAITRO == "QLHT")) { CCTC_THANHPHAN leaderDept = this.context.CCTC_THANHPHAN.Find(user.DM_PHONGBAN_ID.GetValueOrDefault()); if (leaderDept != null) { deptId = leaderDept.PARENT_ID.HasValue ? leaderDept.PARENT_ID.Value : leaderDept.ID; } } else if (user.ListVaiTro.Any(x => x.MA_VAITRO == "QLHT_HUYENUY") || user.ListVaiTro.Any(x => x.MA_VAITRO == "QLHT_XAPHUONG")) { if (user.DeptType == 10) { deptId = user.DM_PHONGBAN_ID.GetValueOrDefault(); } else { deptId = user.DeptParentID.GetValueOrDefault(); } } else { deptId = user.DM_PHONGBAN_ID.GetValueOrDefault(); } //duynn lấy danh sách các phòng ban dưới cấp phòng ban hiện tại var tree = this.GetTree(deptId); query = query.Where(x => groupChildrenDepts.Contains(x.ID)); if (searchModel != null) { if (!string.IsNullOrEmpty(searchModel.QR_MAPHONGBAN)) { query = query.Where(x => x.CODE.Contains(searchModel.QR_MAPHONGBAN)); } if (!string.IsNullOrEmpty(searchModel.QR_TENPHONGBAN)) { query = query.Where(x => x.NAME.Contains(searchModel.QR_TENPHONGBAN)); } if (searchModel.QR_LOAIPHONGBAN.HasValue) { query = query.Where(x => x.TYPE == searchModel.QR_LOAIPHONGBAN); } if (searchModel.QR_CAPPHONGBAN.HasValue) { query = query.Where(x => x.ITEM_LEVEL == searchModel.QR_CAPPHONGBAN); } if (!string.IsNullOrEmpty(searchModel.sortQuery)) { query = query.OrderBy(searchModel.sortQuery); } else { query = query.OrderBy(x => x.ID); } } else { query = query.OrderBy(x => x.ID); } var result = new PageListResultBO<CCTC_THANHPHAN_BO>(); if (pageSize == -1) { var pagedList = query.ToList(); result.Count = pagedList.Count; result.TotalPage = 1; result.ListItem = pagedList; } else { var pagedList = query.ToPagedList(pageIndex, pageSize); result.Count = pagedList.TotalItemCount; result.TotalPage = pagedList.PageCount; result.ListItem = pagedList.ToList(); } return result; }
/// <summary> /// @author: duynn /// @description: danh sách người nhận văn bản /// </summary> /// <param name="searchModel"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public PageListResultBO <QL_NGUOINHAN_VANBAN_BO> GetDataByPage( QL_NGUOINHAN_VANBAN_SEARCH_BO searchModel, UserInfoBO user, int pageIndex = 1, int pageSize = 20) { var queryUsers = this.context.DM_NGUOIDUNG; var queryResult = (from recipient in this.context.QL_NGUOINHAN_VANBAN join dept in this.context.CCTC_THANHPHAN on recipient.DM_PHONGBAN_ID equals dept.ID into groupDeptRecipients from gDeptRecipients in groupDeptRecipients.DefaultIfEmpty() where recipient.IS_DELETE != true && (recipient.IS_DEFAULT == true || recipient.DM_PHONGBAN_ID == user.DM_PHONGBAN_ID) orderby recipient.TEN_NHOM select new QL_NGUOINHAN_VANBAN_BO() { ID = recipient.ID, TEN_NHOM = recipient.TEN_NHOM, NGUOINHAN_IDS = recipient.NGUOINHAN_IDS, IS_DEFAULT = recipient.IS_DEFAULT, DM_PHONGBAN_ID = recipient.DM_PHONGBAN_ID, TEN_PHONGBAN = gDeptRecipients.NAME, }); if (searchModel != null) { if (string.IsNullOrEmpty(searchModel.QueryName) == false) { searchModel.QueryName = searchModel.QueryName.Trim().ToLower(); queryResult = queryResult.Where(x => x.TEN_NHOM != null && x.TEN_NHOM.Trim().ToLower().Contains(searchModel.QueryName)); } if (!string.IsNullOrEmpty(searchModel.sortQuery)) { queryResult = queryResult.OrderBy(searchModel.sortQuery); } else { queryResult = queryResult.OrderByDescending(x => x.ID); } } else { queryResult = queryResult.OrderByDescending(x => x.ID); } var result = new PageListResultBO <QL_NGUOINHAN_VANBAN_BO>(); if (pageSize == -1) { var listData = queryResult.ToList(); result.Count = listData.Count; result.TotalPage = 1; result.ListItem = listData; } else { var pagedListData = queryResult.ToPagedList(pageIndex, pageSize); result.Count = pagedListData.TotalItemCount; result.TotalPage = pagedListData.PageCount; result.ListItem = pagedListData.ToList(); } foreach (var item in result.ListItem) { if (!string.IsNullOrEmpty(item.NGUOINHAN_IDS)) { List <long> userIds = item.NGUOINHAN_IDS.ToListLong(','); IQueryable <DM_NGUOIDUNG> users = queryUsers.Where(x => userIds.Contains(x.ID)); item.Members = string.Join("<br/>", users.Select(x => x.HOTEN).ToArray()); } } return(result); }