private void UpdateCategoriesAndDistributionList(IEnumerable<IssueCategory> categories) { var issueAssignedCategories = new List<IssueAssignedCategory>(); var users = new List<QuickUser>(); foreach (IssueCategory category in categories) { IssueCategory currentCategory = (from x in CMS.Cache.IssueCategories where x.Id == category.Id select x).FirstOrDefault(); var issueCategoryUsers = new List<IssueCategoryUser>(); foreach (IssueCategoryUser categoryUser in currentCategory.IssueCategoryUsers) { var user = (from x in CMS.Cache.Users where x.Id == categoryUser.UserId select x).FirstOrDefault(); users.Add(user); issueCategoryUsers.Add(new IssueCategoryUser { Id = user.Id, User = new User { Id = user.Id, FirstName = user.FirstName, LastName = user.LastName, ActiveUser = user.IsActive } }); } var newCategory = new IssueCategory { Id = currentCategory.Id, Name = currentCategory.Name, IssueCategoryUsers = issueCategoryUsers }; var issueAssignedCategory = new IssueAssignedCategory { IssueId = mIssue.Id, IssueCategoryId = category.Id, IssueCategory = newCategory, }; issueAssignedCategories.Add(issueAssignedCategory); } mIssue.IssueAssignedCategories.Clear(); foreach (IssueAssignedCategory issueAssignedCategory in issueAssignedCategories) { if (!mIssue.IssueAssignedCategories.Contains(issueAssignedCategory)) { mIssue.IssueAssignedCategories.Add(issueAssignedCategory); } } //Add users to the Distribution List View.IssuesPanel.IssueDistributionControl.ViewModel.AddDistributionUsers(users, DistributionUserType.UserFromCategory); RaisePropertyChanged("Categories"); }
public void ImportIssueCategories() { mForm.AddMessage(MessageType.Info, "-------------------- Importing Issue Categories --------------------"); List<Category> categories = (from x in mOldIssuesDataContext.Categories select x).ToList(); foreach (var category in categories) { IssueCategory newCategory = new IssueCategory() { Name = category.Name, Ordinal = category.Ordinal }; var categoryExist = (from x in mCee.IssueCategories where x.Name == newCategory.Name select x).FirstOrDefault(); if (categoryExist == null) { string message = String.Format("Adding Issue Category '{0}'", newCategory.Name); mForm.AddMessage(MessageType.Info, message); mCee.IssueCategories.AddObject(newCategory); } else { string message = String.Format("Issue Category '{0}' already exist, skipping", categoryExist.Name); mForm.AddMessage(MessageType.Warning, message); } } mCee.SaveChanges(); }
public IssueCategory SaveIssueCategory(IssueCategory issueCategory) { using (var cee = new CmsEntities()) { //Check if the issue category exist IssueCategory originalIssueCategory = (from x in cee.IssueCategories where x.Id == issueCategory.Id select x).FirstOrDefault(); if (originalIssueCategory == null) { issueCategory.IssueCategoryUsers.ToList().ForEach(x => { x.User = null; x.IssueCategory = null; }); //Add new Issue Category issueCategory.Code = issueCategory.Name.Replace(" ", ""); issueCategory.IsActive = true; cee.IssueCategories.Add(issueCategory); } else { //Delete IssueCategoryUsers List<IssueCategoryUser> originalIssueCategoryUsers = (from x in cee.IssueCategoryUsers where x.IssueCategoryId == issueCategory.Id select x).ToList(); originalIssueCategoryUsers.ForEach(x => cee.IssueCategoryUsers.Remove(x)); //Update existing Category originalIssueCategory.Name = issueCategory.Name; originalIssueCategory.Description = issueCategory.Description; originalIssueCategory.Ordinal = issueCategory.Ordinal; //Assign Issue Category Users foreach (IssueCategoryUser issueCategoryUser in issueCategory.IssueCategoryUsers) { var newIssueCategoryUser = new IssueCategoryUser(); newIssueCategoryUser.IssueCategoryId = issueCategoryUser.IssueCategoryId; newIssueCategoryUser.UserId = issueCategoryUser.UserId; newIssueCategoryUser.IssueCategory = null; newIssueCategoryUser.User = null; cee.IssueCategoryUsers.Add(newIssueCategoryUser); } } cee.SaveChanges(); } return issueCategory; }
public void LoadModel() { mIssueTypes = CMS.Cache.IssueTypes.ToList(); IssueType allType = new IssueType { Id = -1, Name = "All" }; mIssueTypes.Insert(0, allType); mSelectedType = allType; RaisePropertyChanged("IssueTypes"); mIssueCategories = new List<IssueCategory>();// CMS.Cache.IssueCategories.ToList(); //Only add categories that are assigned to the issue mIssueAssignedCategories.ForEach(x => mIssueCategories.Add(CMS.Cache.IssueCategories.FirstOrDefault(y => y.Id == x.IssueCategoryId) )); IssueCategory allCategory = new IssueCategory { Id = -1, Name = "All" }; mIssueCategories.Insert(0, allCategory); mSelectedCategory = allCategory; RaisePropertyChanged("IssueCategories"); CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetIssueStandardActionsCompleted += (s, e) => { var issueCategoriesIds = mIssueCategories.Select(x => x.Id); var result = e.Result; if (result != null) { StandardActions = result.Where(x => issueCategoriesIds.Contains(x.IssueCategoryId)).ToList(); } mStandardActionsLoaded = true; RaiseLoaded(); }; cmsWebServiceClient.GetIssueStandardActionsAsync(); }
private void UpdateCategories(IEnumerable<IssueCategory> categories) { var roleApprovalCategories = new List<RoleApprovalCategory>(); foreach (IssueCategory category in categories) { IssueCategory currentCategory = (from x in CMS.Cache.IssueCategories where x.Id == category.Id select x).FirstOrDefault(); if (currentCategory == null) { string errorMsg = String.Format("Selected category Id = '{0}' Name = '{1}' does not exist in the cache in RoleControlViewModel.UpdateCategories()", category.Id, category.Name); throw new Exception(errorMsg); } var newCategory = new IssueCategory { Id = currentCategory.Id, Name = currentCategory.Name, }; var issueAssignedCategory = new RoleApprovalCategory { RoleId = mRole.Id, IssueCategoryId = category.Id, IssueCategory = newCategory, }; roleApprovalCategories.Add(issueAssignedCategory); } //Clear the current Approval Categories mRole.RoleApprovalCategories.Clear(); foreach (RoleApprovalCategory roleApprovalCategory in roleApprovalCategories) { if (!mRole.RoleApprovalCategories.Contains(roleApprovalCategory)) { mRole.RoleApprovalCategories.Add(roleApprovalCategory); } } RaisePropertyChanged("Categories"); Validate("Categories", Categories); }