示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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));
        }
示例#4
0
 public async Task <bool> CheckIfUserCan(int projectId, RightDefinition rightDefinition)
 {
     return(await rightService.CheckIfCurrentUserCanInProject(rightDefinition, projectId));
 }
示例#5
0
        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);
        }