예제 #1
0
        public long CreateFeedback(CreateFeedbackContract data)
        {
            var userId   = m_authenticationManager.GetCurrentUserId();
            var resultId = new CreateFeedbackWork(m_mapper, m_portalRepository, data, FeedbackType.Generic, userId).Execute();

            return(resultId);
        }
예제 #2
0
        public long CreateFavoritePage(CreateFavoritePageContract data)
        {
            var userId   = m_authenticationManager.GetCurrentUserId();
            var work     = new CreateFavoritePageWork(m_favoritesRepository, m_resourceRepository, data, userId);
            var resultId = work.Execute();

            return(resultId);
        }
예제 #3
0
        public string RegenerateSingleUserGroupName()
        {
            var userId  = m_authenticationManager.GetCurrentUserId();
            var work    = new RegenerateSingleUserGroupNameWork(m_userRepository, userId, m_codeGenerator);
            var newCode = work.Execute();

            return(newCode);
        }
예제 #4
0
        public long CreatePage(long projectId, CreatePageContract pageData)
        {
            var userId = m_authenticationManager.GetCurrentUserId();
            var work   = new CreateOrUpdatePageWork(m_resourceRepository, pageData, projectId, null, userId);

            work.Execute();

            return(work.ResourceId);
        }
예제 #5
0
        public long CreateProject(CreateProjectContract projectData)
        {
            var currentUserId = m_authenticationManager.GetCurrentUserId();
            var work          = new CreateProjectWork(m_projectRepository, projectData, currentUserId, m_defaultUserProvider, m_mapper);
            var resultId      = work.Execute();

            if (projectData.ProjectType == ProjectTypeContract.Community && projectData.BookTypesForForum != null)
            {
                m_forumSiteManager.CreateOrUpdateForums(resultId, projectData.BookTypesForForum.Select(x => (short)x).ToArray());
            }

            return(resultId);
        }
예제 #6
0
 public IActionResult UpdateCurrentPassword([FromBody] UpdateUserPasswordContract data)
 {
     try
     {
         var userId = m_authenticationManager.GetCurrentUserId();
         m_userManager.UpdateUserPassword(userId, data);
         return(Ok());
     }
     catch (HttpErrorCodeException exception)
     {
         return(StatusCode(exception.StatusCode, exception.Message));
     }
 }
예제 #7
0
        public long CreateEditionNoteVersion(long projectId, CreateEditionNoteContract data)
        {
            var userId            = m_authenticationManager.GetCurrentUserId();
            var resourceVersionId = new CreateEditionNoteVersionWork(m_resourceRepository, projectId, data, userId).Execute();

            return(resourceVersionId);
        }
예제 #8
0
        public long CreateNewsSyndicationItem(CreateNewsSyndicationItemContract data)
        {
            var userId   = m_authenticationManager.GetCurrentUserId();
            var work     = new CreateNewsWork(m_portalRepository, data, userId, m_mapper);
            var resultId = work.Execute();

            return(resultId);
        }
예제 #9
0
        public long CreateNewComment(long textId, CreateTextCommentContract newComment)
        {
            var userId = m_authenticationManager.GetCurrentUserId();
            var createNewCommentWork = new CreateNewTextCommentWork(m_resourceRepository, textId, newComment, userId);
            var resultId             = createNewCommentWork.Execute();

            return(resultId);
        }
예제 #10
0
        public long CreateSnapshot(CreateSnapshotContract data)
        {
            var userId           = m_authenticationManager.GetCurrentUserId();
            var bookTypes        = m_mapper.Map <IList <BookTypeEnum> >(data.BookTypes);
            var defaultBookTypes = m_mapper.Map <BookTypeEnum>(data.DefaultBookType);

            var projectInfo     = m_projectRepository.InvokeUnitOfWork(x => x.GetProject(data.ProjectId));
            var fulltextStorage = m_fulltextStorageProvider.GetFulltextStorage(projectInfo.ProjectType);

            var snapshotId = new CreateSnapshotWork(m_projectRepository, m_resourceRepository, data.ProjectId, userId,
                                                    data.ResourceVersionIds, data.Comment, bookTypes, defaultBookTypes, fulltextStorage).Execute();

            return(snapshotId);
        }
예제 #11
0
        public void ProcessSessionAsImport(string sessionId, long?projectId, string comment)
        {
            var userId = m_authenticationManager.GetCurrentUserId();
            var allAutoImportPermissions = m_permissionManager.GetAutoImportSpecialPermissions();
            var projectType         = m_portalTypeProvider.GetDefaultProjectType();
            var fulltextStorageType = m_fulltextStorageProvider.GetStorageType((ProjectTypeEnum)projectType);

            ImportResultContract importResult;

            using (var client = m_communicationProvider.GetFileProcessingClient())
            {
                try
                {
                    importResult = client.ProcessSession(sessionId, projectId, userId, comment, (ProjectTypeContract)projectType, (FulltextStoreTypeContract)fulltextStorageType, allAutoImportPermissions);
                    if (!importResult.Success)
                    {
                        throw new MainServiceException(MainServiceErrorCode.ImportFailed, "Import failed");
                    }
                }
                catch (FileProcessingImportFailedException exception)
                {
                    throw new MainServiceException(MainServiceErrorCode.ImportFailedWithError, $"Import failed with error: {exception.InnerException?.Message}", descriptionParams: exception.InnerException?.Message);
                }
            }

            if (projectType == DataContracts.Contracts.Type.ProjectTypeContract.Community)
            {
                try
                {
                    m_forumSiteManager.CreateOrUpdateForums(importResult.ProjectId);
                }
                catch (ForumException e)
                {
                    throw new MainServiceException(MainServiceErrorCode.ImportSucceedForumFailed,
                                                   $"Import succeeded. Forum creation failed. {e.Message}", HttpStatusCode.BadRequest, new object[] { e.Code });
                }
            }
        }
예제 #12
0
        public long CreateNewProjectMetadataVersion(long projectId, ProjectMetadataContract data)
        {
            var resultId = new CreateNewMetadataVersionWork(m_metadataRepository, projectId, data, m_authenticationManager.GetCurrentUserId()).Execute();

            return(resultId);
        }