public AttachSVNToTicketActivity(
     ISearchTicketService ticketSearchService,
     IWorkflowManager workflowManager)
 {
     this.workflowManager     = workflowManager;
     this.ticketSearchService = ticketSearchService;
 }
 public TicketsForContentItemDriver(
     IWorkContextAccessor workContextAccessor,
     IOrchardServices services,
     ISearchTicketService searchTicketService,
     ICRMContentOwnershipService crmContentOwnershipService,
     IGroupQuery groupQuery,
     IBasicDataService basicDataService)
     : base(services)
 {
     this.searchTicketService        = searchTicketService;
     this.workContextAccessor        = workContextAccessor;
     this.crmContentOwnershipService = crmContentOwnershipService;
     this.groupQuery       = groupQuery;
     this.basicDataService = basicDataService;
 }
 public SuiteCRMSyncService(
     IActivityStreamService streamService,
     IRepository <PriorityRecord> priorityRepository,
     IRepository <StatusRecord> statusRepository,
     ISuiteCRMDataService suiteCRMProjectService,
     IOrchardServices services,
     ISearchTicketService searchTicketService,
     IExtendedProjectService projectService)
 {
     this.streamService          = streamService;
     this.priorityRepository     = priorityRepository;
     this.statusRepository       = statusRepository;
     this.projectService         = projectService;
     this.searchTicketService    = searchTicketService;
     this.suiteCRMProjectService = suiteCRMProjectService;
     this.services = services;
     Logger        = NullLogger.Instance;
 }
예제 #4
0
 public TicketController(
     Lazy <IEnumerable <IContentHandler> > handlers,
     IProjectService projectService,
     IIndexProvider indexProvider,
     ISearchTicketService searchTicketService,
     IContentOwnershipHelper contentOwnershipHelper,
     IRepository <UserRolesPartRecord> userRolesRepository,
     ICRMContentOwnershipService crmContentOwnershipService,
     IExtendedContentManager extendedContentManager,
     ITransactionManager transactionManager,
     IWidgetService widgetService,
     IThemeAwareViewEngine themeAwareViewEngine,
     IShapeFactory shapeFactory,
     IContentManager contentManager,
     IOrchardServices services,
     IDisplayHelperFactory displayHelperFactory,
     IBusinessUnitService businessUnitService,
     ISiteService siteService,
     IBasicDataService basicDataService,
     IContentDefinitionManager contentDefinitionManager,
     IRepository <BusinessUnitMemberPartRecord> businessUnitMembersRepository,
     IIndexManager indexManager,
     IWorkContextAccessor workContextAccessor,
     IActivityStreamService streamService,
     IContentItemDescriptorManager contentItemDescriptorManager)
     : base("Ticket", "Ticket_Edit", indexProvider, services, crmContentOwnershipService, transactionManager, extendedContentManager, contentManager, widgetService, themeAwareViewEngine, shapeFactory, displayHelperFactory, basicDataService, contentOwnershipHelper, streamService, contentItemDescriptorManager)
 {
     this.handlers                      = handlers;
     this.projectService                = projectService;
     this.workContextAccessor           = workContextAccessor;
     this.searchTicketService           = searchTicketService;
     this.userRolesRepository           = userRolesRepository;
     this.businessUnitService           = businessUnitService;
     this.siteService                   = siteService;
     this.contentDefinitionManager      = contentDefinitionManager;
     this.indexManager                  = indexManager;
     this.businessUnitMembersRepository = businessUnitMembersRepository;
     this.T                = NullLocalizer.Instance;
     this.Logger           = NullLogger.Instance;
     this.defaultQueryHint = this.defaultQueryHint.ExpandRecords <TicketPartRecord>();
     this.defaultQueryHint = this.defaultQueryHint.ExpandRecords <ContentItemPermissionPartRecord>();
     this.defaultQueryHint = this.defaultQueryHint.ExpandRecords <CRMCommentsPartRecord>();
 }
예제 #5
0
 public ProjectSearchService(
     ISearchTicketService searchTicketService,
     IProjectService projectService,
     IIndexManager indexManager,
     IBasicDataService basicDataService,
     ICRMContentOwnershipService crmContentOwnershipService,
     IOrchardServices services,
     ISiteService siteService)
 {
     this.searchTicketService        = searchTicketService;
     this.projectService             = projectService;
     this.basicDataService           = basicDataService;
     this.siteService                = siteService;
     this.crmContentOwnershipService = crmContentOwnershipService;
     this.services     = services;
     this.indexManager = indexManager;
     this.Logger       = NullLogger.Instance;
     this.T            = NullLocalizer.Instance;
 }
예제 #6
0
        public ProjectHandler(
            ISearchTicketService searchTicketService,
            IContentManager contentManager,
            IMenuService menuService,
            IRepository <ProjectPartRecord> repository,
            IRepository <AttachToProjectPartRecord> attachToProjectRepository,
            IExtendedProjectService projectService)
        {
            OnCreated <ProjectPart>((context, projectPart) =>
            {
                projectService.CreateProjectDependencies(projectPart);
            });

            OnRemoved <ProjectPart>((context, projectPart) =>
            {
                // Delete menu and menu widget
                var menu = menuService.GetMenu(projectPart.MenuId);
                if (menu != null)
                {
                    contentManager.Remove(menu.ContentItem);

                    var projectMenuWidget = projectService.GetProjectMenuWidget(projectPart.Id);
                    if (projectMenuWidget != null)
                    {
                        contentManager.Remove(projectMenuWidget);
                    }
                }

                // update all tickets who are attached to the project
                var attachToProjects = contentManager.HqlQuery <AttachToProjectPart>().Where(c => c.ContentPartRecord <AttachToProjectPartRecord>(), c => c.Eq("Project.Id", projectPart.Record.Id)).List();
                foreach (var attachToProject in attachToProjects)
                {
                    contentManager.Remove(attachToProject.ContentItem);
                }
            });

            OnLoaded <ProjectPart>((context, projectPart) =>
            {
                if (projectPart.RelatedItemsHaveBeenInitialized == false)
                {
                    projectService.CreateMilestoneAndBacklogForProject(projectPart);
                    projectPart.RelatedItemsHaveBeenInitialized = true;
                }

                // if the project doesn't have a menu, create a new one for it.
                if (projectPart.MenuId == default(int))
                {
                    projectService.CreateProjectMenu(projectPart);
                }
            });

            OnPublished <ProjectPart>((context, projectPart) =>
            {
                ProjectDashboardEditorPart dashboardPart = projectPart.As <ProjectDashboardEditorPart>();
                int[] portletIds          = dashboardPart.PortletList ?? new int[] { };
                ContentItem projectDetail = contentManager
                                            .Query()
                                            .ForType(ContentTypes.ProjectDetailContentType)
                                            .Where <AttachToProjectPartRecord>(c => c.Project.Id == projectPart.Id)
                                            .Slice(1)
                                            .FirstOrDefault();

                if (projectDetail == null)
                {
                    return;
                }

                // portlets
                var currentPortlets = contentManager.Query().Where <CommonPartRecord>(c => c.Container.Id == projectDetail.Id).List();

                var portletTemplates = contentManager.GetMany <ContentItem>(portletIds, VersionOptions.Published, new QueryHints());

                // add new portlets
                int position = -1;
                foreach (var portletId in portletIds)
                {
                    position++;
                    var currentPortlet = currentPortlets.FirstOrDefault(c => c.As <InfosetPart>().Retrieve <int>(FieldNames.ProjectDashboardPortletTemplateId) == portletId);
                    if (currentPortlet != null)
                    {
                        ContainablePart containablePart = currentPortlet.As <ContainablePart>();
                        containablePart.Position        = position;
                        continue;
                    }

                    var portletTemplate = portletTemplates.FirstOrDefault(c => c.Id == portletId);

                    if (portletTemplate == null)
                    {
                        continue;
                    }

                    projectService.AddPortlet(projectDetail, portletTemplate, position);
                }

                // delete existing portlets that are not exist in the portletIds
                foreach (var portlet in currentPortlets)
                {
                    var templateId = portlet.As <InfosetPart>().Retrieve <int>(FieldNames.ProjectDashboardPortletTemplateId);

                    if (!portletIds.Contains(templateId))
                    {
                        contentManager.Remove(portlet);
                    }
                }
            });
        }
예제 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SearchController" /> class.
 /// </summary>
 /// <param name="userService">The user service.</param>
 /// <param name="ticketService">The ticket service.</param>
 public SearchController(ISearchUserService userService, ISearchTicketService ticketService, IBus bus)
 {
     _userService   = userService;
     _ticketService = ticketService;
     _bus           = bus;
 }