コード例 #1
0
 public ActionResult AddTagsToProjectModal(BulkTagProjectsViewModel viewModel)
 {
     if (!ModelState.IsValid)
     {
         return(new ModalDialogFormJsonResult());
     }
     AddTagsToProjectImpl(viewModel);
     return(new ModalDialogFormJsonResult());
 }
コード例 #2
0
        public ActionResult AddTagsToProject(BulkTagProjectsViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(new JsonResult());
            }
            var existingTag = AddTagsToProjectImpl(viewModel);

            HttpRequestStorage.DatabaseEntities.SaveChanges();
            return(Json(new BootstrapTag(existingTag)));
        }
コード例 #3
0
        public ActionResult RemoveTagsFromProject(BulkTagProjectsViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(new JsonResult());
            }
            // find tag, remove it from this project
            var existingTag = HttpRequestStorage.DatabaseEntities.Tags.GetTag(viewModel.TagName);

            existingTag.DeleteChildren(HttpRequestStorage.DatabaseEntities);
            return(new ModalDialogFormJsonResult());
        }
コード例 #4
0
        public PartialViewResult BulkTagProjects(BulkTagProjectsViewModel viewModel)
        {
            var projectDisplayNames = new List <string>();

            if (viewModel.ProjectIDList != null)
            {
                var projects = HttpRequestStorage.DatabaseEntities.Projects.Where(x => viewModel.ProjectIDList.Contains(x.ProjectID)).ToList();
                projectDisplayNames = projects.Select(x => x.GetDisplayName()).ToList();
            }
            var viewData = new BulkTagProjectsViewData(projectDisplayNames);

            return(RazorPartialView <BulkTagProjects, BulkTagProjectsViewData, BulkTagProjectsViewModel>(viewData, viewModel));
        }
コード例 #5
0
        public ActionResult RemoveTagsFromProject(BulkTagProjectsViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(new JsonResult());
            }
            // find tag, remove it from this project
            var existingTag = HttpRequestStorage.DatabaseEntities.Tags.GetTag(viewModel.TagName);

            if (existingTag != null)
            {
                HttpRequestStorage.DatabaseEntities.ProjectTags.DeleteProjectTag(existingTag.ProjectTags.Where(x => viewModel.ProjectIDList.Contains(x.ProjectID)).ToList());
            }
            return(new ModalDialogFormJsonResult());
        }
コード例 #6
0
        private static Tag AddTagsToProjectImpl(BulkTagProjectsViewModel viewModel)
        {
            var existingTag = HttpRequestStorage.DatabaseEntities.Tags.GetTag(viewModel.TagName);

            if (existingTag == null)
            {
                existingTag = new Tag(viewModel.TagName);
                HttpRequestStorage.DatabaseEntities.AllTags.Add(existingTag);
            }

            var newProjectTags =
                viewModel.ProjectIDList.Select(projectID => new ProjectTag(projectID, existingTag.TagID))
                .ToList();

            HttpRequestStorage.DatabaseEntities.ProjectTags.Load();
            var allProjectTags = HttpRequestStorage.DatabaseEntities.AllProjectTags.Local;

            existingTag.ProjectTags.MergeNew(newProjectTags, (x, y) => x.ProjectID == y.ProjectID && x.TagID == y.TagID, allProjectTags);
            return(existingTag);
        }