Пример #1
0
        public async Task <DinazorResult> AssignRoleToRoleGroup(long idRole, long idRoleGroup)
        {
            var result = new DinazorResult();
            // check role id
            var exists = _roleOperation.Exists(idRole);

            if (!exists.IsSuccess)
            {
                return(result);
            }
            if (!exists.Data)
            {
                result.Status = ResultStatus.NoSuchObject;
                return(result);
            }
            //check role group id
            exists = _roleGroupOperation.Exists(idRoleGroup);
            if (!exists.IsSuccess)
            {
                return(result);
            }
            if (!exists.Data)
            {
                result.Status = ResultStatus.NoSuchObject;
                return(result);
            }
            //so far so good
            using (var ctx = new DinazorContext())
            {
                //already added
                var alreadyAdded = ctx.RelRoleRoleGroup.Any(l => l.IdRole == idRole && l.IdRoleGroup == idRoleGroup);
                if (alreadyAdded)
                {
                    result.Status = ResultStatus.AlreadyAdded;
                    return(result);
                }
                RelRoleRoleGroup roleRoleGroup = new RelRoleRoleGroup();
                roleRoleGroup.IdRole      = idRole;
                roleRoleGroup.IdRoleGroup = idRoleGroup;

                var willBeAdded = ctx.RelRoleRoleGroup.Add(roleRoleGroup);
                try
                {
                    await ctx.SaveChangesAsync();

                    result.Success();
                    //result.ObjectId = willBeAdded;
                }
                catch (Exception e)
                {
                    result.Status = ResultStatus.UnknownError;
                }
            }
            return(result);
        }