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");
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }
Example #5
0
        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);
        }