public void EditScenario([FromBody] Scenario input) { var currentScenario = _scenarioRepository.Scenarios.Where(x => x.Id == input.Id).FirstOrDefault(); if (currentScenario == null) { throw new Exception("Такого сценария не существует"); } var children = _userGroupRepository.GetChildrenGroups(GetUserGroupId()); if (children.Contains(currentScenario.UserGroupId)) { _scenarioRepository.EditScenario(input); _scenarioRepository.SaveChanges(); } else { throw new Exception("Этот сценарий вам не доступен"); } }
public async Task EditScenario([FromBody] Scenario input) { if (User.Claims.FirstOrDefault(x => x.Type == ClaimsIdentity.DefaultRoleClaimType).Value == Constants.RoleNames.SimpleUser) { throw new Exception("Не доступно простому пользователю"); } var currentScenario = _scenarioRepository.Scenarios.FirstOrDefault(x => x.Id == input.Id); if (currentScenario == null) { throw new Exception("Такого сценария не существует"); } if (User.Claims.FirstOrDefault(x => x.Type == ClaimsIdentity.DefaultRoleClaimType).Value == Constants.RoleNames.Admin) { _scenarioRepository.EditScenario(input); foreach (var controller in _connections.All.Include(x => x.Controller) .Where(x => x.ScenarioId == input.Id).Select(x => x.Controller)) { await ControllerInfoSender.UpdateAsync(controller.Adress, input.Id); } _scenarioRepository.SaveChanges(); } var children = _userGroupRepository.GetChildrenGroups(GetUserGroupId()); if (children.Contains(currentScenario.UserGroupId)) { _scenarioRepository.EditScenario(input); foreach (var controller in _connections.All.Include(x => x.Controller) .Where(x => x.ScenarioId == input.Id).Select(x => x.Controller)) { await ControllerInfoSender.UpdateAsync(controller.Adress, input.Id); } _scenarioRepository.SaveChanges(); } else { throw new Exception("Этот сценарий вам не доступен"); } }