예제 #1
0
        public async Task SwitchColumns(int prevPosition, ColumnViewDTO column)
        {
            int currentPosition = column.SortBy;

            if (currentPosition < prevPosition)
            {
                var result = await _columnRepository
                             .GetAllWithSkip(column.BoardId, currentPosition);

                for (int i = 0; i < result.Count; i++)
                {
                    if (result[i].SortBy < prevPosition)
                    {
                        result[i].SortBy++;
                        await _columnRepository.Update(result[i]);
                    }
                }
            }
            else
            {
                var result = await _columnRepository
                             .GetAllWithSkip(column.BoardId, currentPosition);

                result = result.Take(currentPosition - prevPosition).ToList();

                for (int i = 0; i < result.Count; i++)
                {
                    result[i].SortBy--;
                    await _columnRepository.Update(result[i]);
                }
            }
        }
        public async Task <ActionResult <ColumnViewDTO> > MoveColumn([FromBody] ColumnViewDTO column)
        {
            Guid userId     = GetUserId();
            var  moveResult = await _columnService.Move(column, userId);

            return(Ok(moveResult));
        }
예제 #3
0
        public async Task <ColumnViewDTO> Create(ColumnViewDTO column, Guid userId)
        {
            var validationResult = _columnViewValidator.Validate(column);

            if (!validationResult.IsValid)
            {
                throw new Exception(validationResult.ToString());
            }
            else
            {
                var newColumn    = _mapper.Map <ColumnViewDTO, Column>(column);
                var createResult = await _columnRepository.Create(newColumn);

                var history = await _historyService.CreateHistoryObject(
                    UserActions.CreateColumn,
                    userId,
                    column.Title,
                    null,
                    null,
                    column.BoardId
                    );

                var mapperResult = _mapper.Map <Column, ColumnViewDTO>(createResult);
                return(mapperResult);
            }
        }
        public async Task <ActionResult <ColumnViewDTO> > CreateNewColumn([FromBody] ColumnViewDTO column)
        {
            Guid userId       = GetUserId();
            var  createResult = await _columnService.Create(column, userId);

            return(Ok(createResult));
        }
예제 #5
0
        public async Task <ColumnViewDTO> Move(ColumnViewDTO movedColumn, Guid userId)
        {
            var validationResult = _columnViewValidator.Validate(movedColumn);

            if (!validationResult.IsValid)
            {
                throw new Exception(validationResult.ToString());
            }
            else
            {
                Column updatedColumn = await _columnRepository.GetOne(movedColumn.Id);

                await _columnsSortService.SwitchColumns(updatedColumn.SortBy, movedColumn);

                updatedColumn.SortBy      = movedColumn.SortBy;
                updatedColumn.UpdatedDate = DateTime.Now;
                var updateResult = await _columnRepository.Update(updatedColumn);

                var history = await _historyService.CreateHistoryObject(
                    UserActions.MoveColumn,
                    userId,
                    movedColumn.Title,
                    null,
                    null,
                    movedColumn.BoardId
                    );

                var mapperResult = _mapper.Map <Column, ColumnViewDTO>(updateResult);
                return(mapperResult);
            }
        }