public SuccessfulMessageResponse CreateCard([FromBody] CardsCreationModel model, string token, long laneId) { var session = IsTokenExpired(token); var laneToAddCard = _readOnlyRepository.GetById <Lane>(laneId); var board = _readOnlyRepository.First <Board>(board1 => board1.Lanes.Contains(laneToAddCard)); var account = _readOnlyRepository.First <Account>(account1 => account1.Id == session.User.Id); if (laneToAddCard != null && account != null) { var cardToAdd = _mappingEngine.Map <CardsCreationModel, Card>(model); cardToAdd.IsArchived = false; cardToAdd.Position = laneToAddCard.Cards.Count() + 1; cardToAdd.AddMember(account); account.AddCard(cardToAdd); laneToAddCard.AddCards(cardToAdd); Card cardCreated = _writeOnlyRepository.Create(cardToAdd); if (cardCreated != null) { string activityDone = "Add " + cardCreated.Text + " to " + board.Title; board.AddActivity(ActivityHelper.CreateActivity(session.User, activityDone)); return(new SuccessfulMessageResponse("Lane was successfully created")); } } throw new BadRequestException("YThis Lane does not exist"); }
public SuccessfulMessageResponse MoveCard([FromBody] CardMovedModel model, string token) { var session = IsTokenExpired(token); var cardToMove = _readOnlyRepository.GetById <Card>(model.CardToMove_id); var laneFromMove = _readOnlyRepository.GetById <Lane>(model.OldLane_id); var laneToMove = _readOnlyRepository.GetById <Lane>(model.NewLane_id); var lane = _readOnlyRepository.First <Lane>(lane1 => lane1.Cards.Contains(cardToMove)); var board = _readOnlyRepository.First <Board>(board1 => board1.Lanes.Contains(laneToMove)); if (laneFromMove != null && laneToMove != null && cardToMove != null) { laneFromMove.Cards.ToList().Remove(cardToMove); laneToMove.AddCards(cardToMove); Lane laneFromMoveUpdated = _writeOnlyRepository.Update(laneFromMove); Lane laneToMoveUpdated = _writeOnlyRepository.Update(laneToMove); cardToMove.Position = 5; laneToMove.AddCards(cardToMove); Card cardMoved = _writeOnlyRepository.Update(cardToMove); if (cardMoved != null && laneFromMoveUpdated != null && laneToMoveUpdated != null) { string activityDone = "Moved " + cardMoved.Text + " from " + laneFromMove.Title + " to " + laneToMove.Title; board.AddActivity(ActivityHelper.CreateActivity(session.User, activityDone)); return(new SuccessfulMessageResponse("Card was successfully moved")); } } throw new BadRequestException("Card could not be moved"); }
public BoardModel AddMemberToBoard([FromBody] AddMemberBoardModel model, string token) { var session = IsTokenExpired(token); var memberToAdd = _readOnlyRepository.GetById <Account>(model.MemberId); var board = _readOnlyRepository.GetById <Board>(model.BoardId); if (board != null && memberToAdd != null) { board.AddMember(memberToAdd); memberToAdd.AddBoard(board); var updateBoard = _writeOnlyRepository.Update(board); var boardModel = _mappingEngine.Map <Board, BoardModel>(updateBoard); string activityDone = "Add " + memberToAdd.FirstName + " " + memberToAdd.LastName; board.AddActivity(ActivityHelper.CreateActivity(session.User, activityDone)); return(boardModel); } throw new BadRequestException("Member or Board does not exist"); }
public SuccessfulMessageResponse DeletBoard([FromBody] BoardsRemovedModel model, string token) { var session = IsTokenExpired(token); var account = _readOnlyRepository.GetById <Account>(session.User.Id); var boardToRemove = _readOnlyRepository.GetById <Board>(model.Id); if (boardToRemove != null && boardToRemove.Administrador == account) { Board boardDeleted = _writeOnlyRepository.Archive(boardToRemove); if (boardDeleted != null) { string activityDone = "Deleted " + boardToRemove.Title; boardToRemove.AddActivity(ActivityHelper.CreateActivity(session.User, activityDone)); return(new SuccessfulMessageResponse("The board has been deleted")); } } throw new BadRequestException("You aren't the administrator of the Board"); }
public SuccessfulMessageResponse DeletCard([FromBody] CardRemoveModel model, string token) { var session = IsTokenExpired(token); var cardToRemove = _readOnlyRepository.GetById <Card>(model.Card_id); var lane = _readOnlyRepository.First <Lane>(lane1 => lane1.Cards.Contains(cardToRemove)); var board = _readOnlyRepository.First <Board>(board1 => board1.Lanes.Contains(lane)); if (cardToRemove != null) { Card cardDeleted = _writeOnlyRepository.Archive(cardToRemove); if (cardDeleted != null) { string activityDone = "Deleted " + cardDeleted.Text + " from " + lane.Title; board.AddActivity(ActivityHelper.CreateActivity(session.User, activityDone)); return(new SuccessfulMessageResponse("Card was successfully removed")); } } throw new BadRequestException("Card could not be removed"); }
public SuccessfulMessageResponse RenameBoard([FromBody] RenameBoardModel model, string token) { var session = IsTokenExpired(token); var account = _readOnlyRepository.First <Account>(account1 => account1.Id == session.User.Id); var boardToRename = _readOnlyRepository.First <Board>(board1 => board1.Id == model.BoardToRename); if (boardToRename != null && boardToRename.Administrador == account) { boardToRename.Title = model.NewTitle; Board boardCreated = _writeOnlyRepository.Update(boardToRename); if (boardCreated != null) { string activityDone = "Changed " + model.BoardToRename + " for " + model.NewTitle; boardToRename.AddActivity(ActivityHelper.CreateActivity(session.User, activityDone)); return(new SuccessfulMessageResponse("The board has been renamed")); } throw new BadRequestException("You can't change the Title"); } throw new BadRequestException("You aren't the administrator of the Board"); }
public BoardModel CreateBoard([FromBody] BoardsCreationModel model, string token, long idOrganization) { var session = IsTokenExpired(token); var account = _readOnlyRepository.First <Account>(account1 => account1.Id == session.User.Id); var organization = _readOnlyRepository.GetById <Organization>(idOrganization); var boardToAdd = _mappingEngine.Map <BoardsCreationModel, Board>(model); boardToAdd.Administrador = account; boardToAdd.AddMember(account); boardToAdd.IsArchived = false; account.AddBoard(boardToAdd); organization.AddBoard(boardToAdd); Board boardCreated = _writeOnlyRepository.Create(boardToAdd); if (boardCreated != null) { string activityDone = "Add " + boardToAdd.Title; boardToAdd.AddActivity(ActivityHelper.CreateActivity(session.User, activityDone)); return(new BoardModel { Title = boardCreated.Title, Id = boardCreated.Id }); } throw new BadRequestException("The board could not be created"); }