public async Task <TranslatorDTO> SetTranslatorRight(int userId, int teamId, RightDefinition definition) { var translator = (await uow.GetRepository <TeamTranslator>().GetAsync(t => t.TeamId == teamId && t.TranslatorId == userId)); var right = (await uow.GetRepository <Right>().GetAsync(r => r.Definition == definition)); if (right == null) { right = (await uow.GetRepository <Right>().CreateAsync(new Right() { Definition = definition })); } translator.TranslatorRights.Add(new TranslatorRight() { RightId = right.Id, TeamTranslatorId = translator.Id }); var newTranslator = await uow.GetRepository <TeamTranslator>().Update(translator); await uow.SaveAsync(); return(newTranslator != null?mapper.Map <TranslatorDTO>(newTranslator) : null); }
public async Task <bool> CheckIfCurrentUserCanInProject(RightDefinition definition, int projectId) { var userRights = (await _currentUser.GetRightsInProject(projectId)).Select(r => r.RightDefinition).Distinct(); if (userRights.Contains(definition)) { return(true); } return(false); }
public async Task <IActionResult> RemoveRightFromTranslator(int teamId, int userId, [FromBody] RightDefinition rightDefinition) { var entity = await rightService.RemoveTranslatorRight(userId, teamId, rightDefinition); return(entity == null?StatusCode(304) as IActionResult : Ok(entity)); }
public async Task <bool> CheckIfUserCan(int projectId, RightDefinition rightDefinition) { return(await rightService.CheckIfCurrentUserCanInProject(rightDefinition, projectId)); }
public async Task <TranslatorDTO> RemoveTranslatorRight(int userId, int teamId, RightDefinition definition) { var translator = (await uow.GetRepository <TeamTranslator>().GetAsync(t => t.TeamId == teamId && t.TranslatorId == userId)); var right = (await uow.GetRepository <Right>().GetAsync(r => r.Definition == definition)); var translatorRight = translator.TranslatorRights .FirstOrDefault(tr => tr.RightId == right.Id && tr.TeamTranslatorId == translator.Id); translator.TranslatorRights.Remove(translatorRight); var newTranslator = await uow.GetRepository <TeamTranslator>().Update(translator); await uow.SaveAsync(); return(newTranslator != null?mapper.Map <TranslatorDTO>(newTranslator) : null); }