Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. using ProjectManager.Core.Commands.Contracts;
  2. using ProjectManager.Core.Factories.Contracts;
  3. using ProjectManager.Core.Providers;
  4. using ProjectManager.Entities.Boards.Contracts;
  5. using ProjectManager.LocalDatabase.Contracts;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9.  
  10. namespace ProjectManager.Core.Commands.CreateCommands
  11. {
  12. public class CreateBoardCommand : ICommand
  13. {
  14. private readonly IDatabase database;
  15. private readonly IBoardFactory boardFactory;
  16. private readonly IActivityFactory activityFactory;
  17.  
  18. public CreateBoardCommand(IDatabase database, IBoardFactory boardFactory, IActivityFactory activityFactory)
  19. {
  20. this.database = database;
  21. this.boardFactory = boardFactory;
  22. this.activityFactory = activityFactory;
  23. }
  24.  
  25. public string Execute(IList<string> inputparameters)
  26. {
  27. string teamName = inputparameters[0];
  28. string boardName = inputparameters[1];
  29.  
  30. bool isTeamFound = this.database.Teams.Any(x => x.Name == teamName);
  31. if(isTeamFound == false)
  32. {
  33. throw new ArgumentException(string.Format(GlobalConstants.ItemNotFound, teamName));
  34. }
  35.  
  36. bool doesBoardAlreadyExists = this.database.Teams.Any(x => x.Boards.Any(s => s.Name == boardName));
  37. if (doesBoardAlreadyExists)
  38. {
  39. throw new ArgumentException(string.Format(GlobalConstants.BoardAlreadyExistsWithinTeam, boardName));
  40. }
  41.  
  42. IBoard board = this.boardFactory.CreateBoard(boardName);
  43.  
  44. this.database.Teams.FirstOrDefault(x => x.Name == teamName).AddBoardToTeam(board);
  45.  
  46. string message = string.Format(GlobalConstants.SuccessfullyCreated, board.GetType().Name, board.Name);
  47.  
  48. var activity = this.activityFactory.CreateActivityMsg(message);
  49. board.AddActivity(activity);
  50.  
  51. return message;
  52. }
  53. }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement