Advertisement
Guest User

Untitled

a guest
Feb 18th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.82 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using WorkItemManagement.Core.Commands.Global.Contracts;
  5. using WorkItemManagement.Core.Contracts;
  6. using WorkItemManagement.Core.Engine;
  7. using WorkItemManagement.Core.Factory.Contracts;
  8. using WorkItemManagement.Core.Utills;
  9.  
  10. namespace WorkItemManagement.Core.Commands
  11. {
  12.     public class CreateBoard : ICommand
  13.     {
  14.         private readonly IWIMFactory factory;
  15.         private readonly IDatabase database;
  16.  
  17.         public CreateBoard(IWIMFactory factory, IDatabase database)
  18.  
  19.         {
  20.             this.factory = factory;
  21.             this.database = database;
  22.         }
  23.  
  24.         public string Execute(IList<string> parameters)
  25.         {
  26.             if (parameters.Count != 2)
  27.             {
  28.                 throw new ArgumentException(GlobalConstants.ParametersCountInvalid);
  29.             }
  30.  
  31.             string boardName = parameters[0];
  32.             string teamName = parameters[1];
  33.  
  34.             if (!database.IsTeamPresentInCollection(teamName))
  35.             {
  36.                 return string.Format(GlobalConstants.TeamDoesNotExist, teamName);
  37.             }
  38.  
  39.  
  40.             var team = database.ListAllTeams.Where(t => t.Name == teamName).FirstOrDefault();
  41.  
  42.             if (team.ListOfBoards.Any(b => b.Name == boardName))
  43.             {
  44.                 return string.Format(GlobalConstants.BoardAlreadyExistInTeam, boardName);
  45.             }
  46.  
  47.             var board = this.factory.CreateBoard(boardName);
  48.             team.AddBoardInTeam(board);
  49.  
  50.             string result = string.Format(GlobalConstants.BoardAddedToTeam, boardName, teamName);
  51.  
  52.             var history = this.factory.CreateActivity(result);
  53.             board.AddBoardActivity(history);
  54.             team.AddTeamActivity(history);
  55.  
  56.             return result;
  57.         }
  58.  
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement