public async Task <ActionResult <CardViewDTO> > MoveCard([FromBody] CardViewDTO card) { Guid userId = GetUserId(); var result = await _cardsService.Move(card, userId); return(Ok(result)); }
public async Task SwitchCards(int prevPosition, CardViewDTO card) { int currentPosition = card.SortBy; if (currentPosition < prevPosition) { var result = await _cardRepository .GetAllWithSkip(card.ColumnId, currentPosition); for (int i = 0; i < result.Count; i++) { if (result[i].SortBy < prevPosition) { result[i].SortBy++; await _cardRepository.Update(result[i]); } } } else { var result = await _cardRepository .GetAllWithSkip(card.ColumnId, prevPosition + 1); result = result .Take(currentPosition - prevPosition) .ToList(); for (int i = 0; i < result.Count; i++) { result[i].SortBy--; await _cardRepository.Update(result[i]); } } await db.SaveChangesAsync(); }
public async Task <CardViewDTO> Move(CardViewDTO movedCard, Guid userId) { var validationResult = _cardViewValidator.Validate(movedCard); if (!validationResult.IsValid) { throw new Exception(validationResult.ToString()); } else { Card updatedCard = await _cardRepository.GetOne(movedCard.Id); Column column = await _columnRepository.GetOne(updatedCard.ColumnId); await _sortService.SwitchCards(updatedCard.SortBy, movedCard); updatedCard.SortBy = movedCard.SortBy; updatedCard.UpdatedDate = DateTime.Now; var updateResult = await _cardRepository.Update(updatedCard); var historyObject = await _historyService.CreateHistoryObject( UserActions.MoveCard, userId, updatedCard.Title, null, movedCard.ColumnId, column.BoardId ); var mapperResult = _mapper.Map <Card, CardViewDTO>(updateResult); return(mapperResult); } }
public async Task MoveOnNewColumn(CardViewDTO card) { int currentPosition = card.SortBy; var result = await _cardRepository.GetAllWithSkip(card.ColumnId, currentPosition); for (int i = 0; i < result.Count; i++) { result[i].SortBy++; } await db.SaveChangesAsync(); }