public EnvironmentModel UpdateEnvironment(EnvironmentModel model)
        {
            if (model == null)
                throw new ArgumentNullException("model");

            Environment environmentInDb;

            using (var unitOfWork = new UnitOfWork(_connectionString))
            {
                bool userAuthorized = UserAuthorizedToAccessSuite(unitOfWork, model.UserId, model.SuiteId,
                    new[] {RoleType.Admin});
                if (!userAuthorized)
                    throw new UnauthorizedUserException(
                        "User does not have access or sufficient privileges for this action to suite:" + model.SuiteId);

                environmentInDb =
                    unitOfWork.Context.Environments.FirstOrDefault(
                        x => x.EnvironmentId == model.EnvironmentId && x.SuiteId == model.SuiteId);
                if (environmentInDb != null)
                {
                    environmentInDb.EnvironmentTypeId = (int) model.EnvironmentType;
                    environmentInDb.EnvironmentName = model.EnvironmentName;

                    unitOfWork.Update(environmentInDb);
                }
                else
                {
                    throw new InvalidOperationException("No environment exists with id:" + model.EnvironmentId +
                                                        " and suite id: " + model.SuiteId);
                }
            }

            return environmentInDb.ToModel();
        }
        public EnvironmentModel AddEnvironment(EnvironmentModel model)
        {
            if (model == null)
                throw new ArgumentNullException("model");

            Environment environmentToReturn = null;

            using (var unitOfWork = new UnitOfWork(_connectionString))
            {
                bool userAuthorised = UserAuthorizedToAccessSuite(unitOfWork, model.UserId, model.SuiteId,
                    new[] {RoleType.Admin});
                if (!userAuthorised)
                    throw new UnauthorizedUserException(
                        "User does not have access or sufficient privileges for this action to suite: " + model.SuiteId);

                environmentToReturn = model.ToNewDbObject();
                unitOfWork.Add(environmentToReturn);
            }

            return environmentToReturn.ToModel();
        }