public override void OnActionExecuting(ActionExecutingContext filterContext) { var account = new AccountInfo(); var controller = (((filterContext)).Controller).ToString().Split('.')[ (((filterContext)).Controller).ToString().Split('.').Length - 1].Replace("Controller",""); //var currentUser = account.GetUserName(); var modules = UserModuleService.GetAllUserModuleByLdapUser(new UserModule() { LdapName = account.GetUserName() }); var moduleList = ModuleService.GetAllModules(); var moduleMenuList = new List<UserModuleDetails>(); foreach (var module in moduleList) { moduleMenuList.AddRange(from userModule in modules where userModule.ModuleId == module.Id where userModule.IsAdd || userModule.IsEdit || userModule.IsApprover select new UserModuleDetails() { LdapName = userModule.LdapName, ModuleId = userModule.ModuleId, ModuleName = module.Name, DisplayName = module.DisplayName, Icon = module.Icon, IsAdd = userModule.IsAdd, IsEdit = userModule.IsEdit, IsApprover = userModule.IsApprover }); } moduleMenuList.Add(new UserModuleDetails { ModuleName = "LandingPage" }); var notificationList = NotificationService.GetAllNotificationDetailsList(account.GetFullName()); filterContext.Controller.ViewBag.NotificationModel = notificationList; filterContext.Controller.ViewBag.CountNotifications = notificationList.Count; if (moduleMenuList.Any(a => a.ModuleName.ToUpper().Equals(controller.ToUpper())) || controller.ToUpper() == "NOTIFICATION") return; filterContext.HttpContext.Response.StatusCode = 401; filterContext.Controller.TempData["ErrorMessage"] = "You do not have permission to access this section, Please contact administrator <a href='mailto:[email protected]'>Service Desk</a>"; filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Error", action = "Error", area = "" })); filterContext.HttpContext.Response.Clear(); }
private bool CheckInStatus(string lockUser) { if (String.Equals(lockUser, String.Empty, StringComparison.CurrentCultureIgnoreCase)) return false; var account = new AccountInfo(); var loginUser = account.GetFullName(); return (String.Equals(loginUser, lockUser, StringComparison.CurrentCultureIgnoreCase)); }
private List<DocumentLibraryModel> GetDocumentModel(string folderPath, string libraryName, string sortField, string sortDir, string Type) { try { var account = new AccountInfo(); var docModel = new DocumentLibraryModel() { FolderPath = folderPath, LibraryName = libraryName, SortField = sortField, SortDir = sortDir }; var docLib = new DocumentLibrary() { FolderPath = docModel.FolderPath, LibraryName = docModel.LibraryName, SortField = docModel.SortField, SortDir = docModel.SortDir }; var logInUser = account.GetFullName(); var documents = DocumentLibraryService.GetAllDocuments(docLib); var output = new List<DocumentLibraryModel>(); foreach (var model in documents) { output.Add(new DocumentLibraryModel() { Name = model.Name, Description = model.Description, ContentType = model.ContentType, FolderPath = model.FolderPath, LibraryName = model.LibraryName, RelativePath = model.RelativePath, CreatedBy = model.CreatedBy, CreatedDate = model.CreatedDate, LastUpdated = model.LastUpdated, ModifieddBy = model.ModifieddBy, Permission = new SPPermissionModel() { CanAdd = model.Permission.CanAdd, CanDelete = model.Permission.CanDelete }, IsOldVersion = model.IsOldVersion, ImgSrc = model.ImgSrc, CheckedOutUserName = model.CheckedOutUserName, IsCheckedoutToLocal = model.IsCheckedoutToLocal, IsCheckedIn = CheckInStatus(model.CheckedOutUserName), IsCheckedOut = CheckOutStatus(model.CheckedOutUserName), LogInUserName = logInUser }); } var permission = DocumentLibraryService.GetPermission(docLib); ViewBag.canAdd = permission.Permission.CanAdd; return output; } catch (Exception ex) { throw ex; } }
public void SendNewTopicSubscriptionMail(string forumName, string forumTitle, string forumBody, string topicLink) { var account = new AccountInfo(); var departmentMapping = DepartmentService.GetDepartmentForumMappings(forumName); var result = GetModeratorEmailIds(forumName); var employees = ContactsService.GetByDepartmentOrlocation(departmentMapping); var departmentMails = employees.Aggregate(string.Empty, (current, subscription) => current + "," + subscription.Email); var subscriptionModel = GetAllSubscribedUsers(forumName); var mailIds = subscriptionModel.Aggregate(string.Empty, (current, subscription) => current + "," + subscription.EmployeeEmail); mailIds = mailIds + "," + departmentMails; var distinctWords = new List<string>(mailIds.ToLowerInvariant().Split(',').Distinct()); mailIds = result.Aggregate( distinctWords.Where(t => !string.IsNullOrEmpty(t)).Aggregate(string.Empty, (current, t) => current + "," + t), (current, moderators) => current.Replace("," + moderators.ToLowerInvariant(), string.Empty)); var emailHelper = new EmailHelper(); var paramters = new Dictionary<string, string> { {"ForumName", forumName.Trim()}, {"TopicName", forumTitle.Trim()}, {"TipicLink", topicLink.Trim()}, {"ForumBody", forumBody.Trim()}, {"CreatedBy", account.GetFullName()}, {"Signature", ApplicationConfiguration.EmailSignature} }; if (!string.IsNullOrEmpty(mailIds)) emailHelper.SendBccMail("", mailIds, "NewTopicSubscription", paramters); }
public void SendReplySubscriptionMail(string forumName, string forumTitle, string forumBody, string topicLink) { var account = new AccountInfo(); forumBody = forumBody.Substring(0, 8) + " <b> Reply : </b>" + forumBody.Substring(8, forumBody.Length - 8); var departmentMapping = DepartmentService.GetDepartmentForumMappings(forumName); var employees = ContactsService.GetByDepartmentOrlocation(departmentMapping); var departmentMails = employees.Aggregate(string.Empty, (current, subscription) => current + "," + subscription.Email); var subscriptionModel = GetAllSubscribedUsers(forumName); var mailIds = subscriptionModel.Aggregate(string.Empty, (current, subscription) => current + "," + subscription.EmployeeEmail); mailIds = mailIds + "," + departmentMails; var distinctWords = new List<string>(mailIds.ToLowerInvariant().Split(',').Distinct()); mailIds = distinctWords.Where(t => !string.IsNullOrEmpty(t)).Aggregate(string.Empty, (current, t) => current + "," + t); var emailHelper = new EmailHelper(); var paramters = new Dictionary<string, string> { {"ForumTitle", forumName + " : " +forumTitle.Trim()}, {"ForumBody", forumBody.Trim()}, {"PostedBy", account.GetFullName()}, {"TipicLink", topicLink.Trim()}, {"Signature", ApplicationConfiguration.EmailSignature} }; if (!string.IsNullOrEmpty(mailIds)) emailHelper.SendBccMail("", mailIds, "CommentsSubscription", paramters); }
public void SendNewTopicMailToModerator(string topicForumPath, string topicTitle, string topicBody, string topicForum, string topicLink) { var account = new AccountInfo(); var result = GetModeratorEmailIds(topicForumPath); var moderatorEmails = string.Join(",", result); var sendMail = new EmailHelper(); var paramters = new Dictionary<string, string> { {"TopicTitle", topicTitle.Trim()}, {"TopicBody", topicBody.Trim()}, {"TipicLink", topicLink.Trim()}, {"TopicForum", topicForum }, {"Requestor", account.GetFullName()}, {"Signature", ApplicationConfiguration.EmailSignature} }; if (!string.IsNullOrEmpty(moderatorEmails)) sendMail.SendBccMail("", moderatorEmails, "ForumNewTopicRequest", paramters); }
private void RemoveChildForums(ForumsDetailsModel forums) { var account = new AccountInfo(); SetFullNameAndEmail(); foreach (var forumItem in forums.SubForums) { var subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumItem.ForumFullPath, IsActive = true, IsDeleted = false, IsSubscribed = true, }; subscriptionModel = ForumSubscriptionService.GetSubscriptions(subscriptionModel); if (subscriptionModel != null) { subscriptionModel.IsActive = false; subscriptionModel.IsDeleted = true; ForumSubscriptionService.UpdateSubscription(subscriptionModel); } if (forumItem.SubForums.Count > 0) RemoveChildForums(forumItem); } }
private void WriteChildForums(ForumsDetailsModel forums, string email) { var account = new AccountInfo(); SetFullNameAndEmail(); foreach (var forumItem in forums.SubForums) { var subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeEmail = account.GetEmailAddress(), EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumItem.ForumFullPath, IsActive = true, IsDeleted = false, IsSubscribed = true, CreatedDate = DateTime.Now }; ForumSubscriptionService.InsertSubscription(subscriptionModel); if (forumItem.SubForums.Count > 0) WriteChildForums(forumItem, email); } }
private void WriteUpdateSubscription(string forumName, string email, string isSubscribed, bool subscribeParentOnly) { var account = new AccountInfo(); SetFullNameAndEmail(); #region Subscription database writing if (isSubscribed == "True") { var output = ConvertToForumDetailsListModel(ForumService.GetListofForums(forumName)); var forum = new ForumsDetailsModel(); forum.SubForums.AddRange(output); forum = null; var names = forumName.ForumSplit(); foreach (var item in names) { forum = (forum == null) ? output.FirstOrDefault(x => x.DisplayName == item) : forum.SubForums.FirstOrDefault(x => x.DisplayName == item); } var subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeEmail = account.GetEmailAddress(),//email, EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumName, IsActive = true, IsDeleted = false, IsSubscribed = true, CreatedDate = DateTime.Now }; ForumSubscriptionService.InsertSubscription(subscriptionModel); if (!subscribeParentOnly) { foreach (var forumItem in forum.SubForums) { subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeEmail = account.GetEmailAddress(), EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumItem.ForumFullPath, IsActive = true, IsDeleted = false, IsSubscribed = true, CreatedDate = DateTime.Now }; ForumSubscriptionService.InsertSubscription(subscriptionModel); WriteChildForums(forumItem, email); } } ForumSubscriptionService.SubscriptionRequestMail(forumName.ForumSplit().ForumJoin(), account.GetEmailAddress(), true); } #endregion #region un-Subscription database writing else if (isSubscribed == "False" && !subscribeParentOnly) { var output = ConvertToForumDetailsListModel(ForumService.GetListofForums(forumName)); var forum = new ForumsDetailsModel(); forum.SubForums.AddRange(output); forum = null; var names = forumName.ForumSplit(); foreach (var item in names) { forum = (forum == null) ? output.FirstOrDefault(x => x.DisplayName == item) : forum.SubForums.FirstOrDefault(x => x.DisplayName == item); } var subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeEmail = account.GetEmailAddress(), EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumName, IsActive = true, IsDeleted = false, IsSubscribed = true, }; subscriptionModel = ForumSubscriptionService.GetSubscriptions(subscriptionModel); if (subscriptionModel != null) { subscriptionModel.IsActive = false; subscriptionModel.IsDeleted = true; ForumSubscriptionService.UpdateSubscription(subscriptionModel); } foreach (var forumItem in forum.SubForums) { subscriptionModel = new Subscription() { CreatedBy = account.GetFullName(), EmployeeEmail = account.GetEmailAddress(), EmployeeName = account.GetUserName(), //User.Identity.Name.Replace("\\", "/"), ForumName = forumItem.ForumFullPath, IsActive = true, IsDeleted = false, IsSubscribed = true, }; subscriptionModel = ForumSubscriptionService.GetSubscriptions(subscriptionModel); if (subscriptionModel != null) { subscriptionModel.IsActive = false; subscriptionModel.IsDeleted = true; ForumSubscriptionService.UnsubscribeAllSubscriptions(subscriptionModel); } RemoveChildForums(forumItem); } ForumSubscriptionService.SubscriptionRequestMail(forumName.ForumSplit().ForumJoin(), account.GetEmailAddress(), false); } #endregion }
private void SetUserFullName() { var account = new AccountInfo(); if (String.IsNullOrEmpty(account.GetFullName())) account.SetFullName(SecurityService.GetLoggedInUserName(account.GetUserName())); }