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(); }