Exemple #1
0
        public async Task <int> CreateProject(ProjectCreateDTO projectCreateDto, int userId)
        {
            var project = _mapper.Map <Project>(projectCreateDto);
            var user    = await _userService.GetUserDetailsById(userId);

            project.AuthorId       = userId;
            project.CreatedAt      = DateTime.Now;
            project.AccessModifier = projectCreateDto.Access;
            var userEditorSettings      = (await _userService.GetUserDetailsById(userId)).EditorSettings;
            var newProjectEditorSetting = new EditorSettingDTO
            {
                CursorStyle          = userEditorSettings.CursorStyle,
                FontSize             = userEditorSettings.FontSize,
                ScrollBeyondLastLine = userEditorSettings.ScrollBeyondLastLine,
                RoundedSelection     = userEditorSettings.RoundedSelection,
                TabSize     = userEditorSettings.TabSize,
                LineHeight  = userEditorSettings.LineHeight,
                LineNumbers = userEditorSettings.LineNumbers,
                ReadOnly    = userEditorSettings.ReadOnly,
                Theme       = userEditorSettings.Theme,
                Language    = (projectCreateDto.Language.ToString()).ToLower()
            };
            var createDTO = await _editorSettingService.CreateEditorSettings(newProjectEditorSetting);

            project.EditorProjectSettingsId = _mapper.Map <EditorSetting>(createDTO).Id;

            _context.Projects.Add(project);
            await _context.SaveChangesAsync();

            _logger.LogInformation($"project created {project.Name}");
            return(project.Id);
        }
        public async Task <UserDTO> Update(UserDetailsDTO userDTO)
        {
            var targetUser = await GetUserByIdInternal(userDTO.Id);

            if (targetUser == null)
            {
                _logger.LogWarning(LoggingEvents.HaveException, $"update user not found");
                throw new NotFoundException(nameof(targetUser), userDTO.Id);
            }

            if (targetUser.EditorSettings == null)
            {
                targetUser.EditorSettingsId = (await _editorSettingService.CreateEditorSettings(userDTO.EditorSettings)).Id;
            }

            _context.Users.Update(targetUser);
            await _context.SaveChangesAsync();

            return(await GetUserById(userDTO.Id));
        }