Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using ProjectManager.Core.Commands.Contracts;
- using ProjectManager.Core.Factories.Contracts;
- using ProjectManager.Core.Providers;
- using ProjectManager.Entities.Boards.Contracts;
- using ProjectManager.LocalDatabase.Contracts;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace ProjectManager.Core.Commands.CreateCommands
- {
- public class CreateBoardCommand : ICommand
- {
- private readonly IDatabase database;
- private readonly IBoardFactory boardFactory;
- private readonly IActivityFactory activityFactory;
- public CreateBoardCommand(IDatabase database, IBoardFactory boardFactory, IActivityFactory activityFactory)
- {
- this.database = database;
- this.boardFactory = boardFactory;
- this.activityFactory = activityFactory;
- }
- public string Execute(IList<string> inputparameters)
- {
- string teamName = inputparameters[0];
- string boardName = inputparameters[1];
- bool isTeamFound = this.database.Teams.Any(x => x.Name == teamName);
- if(isTeamFound == false)
- {
- throw new ArgumentException(string.Format(GlobalConstants.ItemNotFound, teamName));
- }
- bool doesBoardAlreadyExists = this.database.Teams.Any(x => x.Boards.Any(s => s.Name == boardName));
- if (doesBoardAlreadyExists)
- {
- throw new ArgumentException(string.Format(GlobalConstants.BoardAlreadyExistsWithinTeam, boardName));
- }
- IBoard board = this.boardFactory.CreateBoard(boardName);
- this.database.Teams.FirstOrDefault(x => x.Name == teamName).AddBoardToTeam(board);
- string message = string.Format(GlobalConstants.SuccessfullyCreated, board.GetType().Name, board.Name);
- var activity = this.activityFactory.CreateActivityMsg(message);
- board.AddActivity(activity);
- return message;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement