コード例 #1
0
        public async Task Update(string values, int id)
        {
            var role = _roleUnitOfWork.RoleRepository.GetById(id);

            var roleSubdomainVersions =
                _roleUnitOfWork.SubdomainVersionRoleRepository.GetAllRoleVersionsByRoleId(id);

            JsonConvert.PopulateObject(values, role);

            RoleBusinessModel roleBusinessModel = new RoleBusinessModel();

            roleBusinessModel.SubdomainVersionRoleIds = new int[roleSubdomainVersions.Count()];
            int i = 0;

            foreach (var roleSubdomainVersion in roleSubdomainVersions)
            {
                roleBusinessModel.SubdomainVersionRoleIds[i] = (int)roleSubdomainVersion.SubdomainVersionId;
                _roleUnitOfWork.SubdomainVersionRoleRepository.Remove(roleSubdomainVersion);
                i++;
            }

            JsonConvert.PopulateObject(values, roleBusinessModel);

            foreach (var latestRoleVersionId in roleBusinessModel.SubdomainVersionRoleIds)
            {
                var newSubdomainVersionRole = new SubdomainVersionRole();
                newSubdomainVersionRole.SubdomainVersionId = latestRoleVersionId;
                newSubdomainVersionRole.Role = role;
                role.SubdomainVersionRoles.Add(newSubdomainVersionRole);
            }

            _roleUnitOfWork.Complete();
        }
コード例 #2
0
        public void Add(string values)
        {
            RoleBusinessModel roleViewModel = new RoleBusinessModel();

            JsonConvert.PopulateObject(values, roleViewModel);
            var newRole = _mapper.Map <Role>(roleViewModel);

            if (roleViewModel.SubdomainVersionRoleIds != null)
            {
                foreach (var SubdomainVersionId in roleViewModel.SubdomainVersionRoleIds)
                {
                    SubdomainVersionRole subdomainVersionRole = new SubdomainVersionRole();
                    subdomainVersionRole.SubdomainVersionId = SubdomainVersionId;
                    subdomainVersionRole.Role = newRole;
                    newRole.SubdomainVersionRoles.Add(subdomainVersionRole);
                }
            }

            _roleUnitOfWork.RoleRepository.Add(newRole);
            _roleUnitOfWork.Complete();
        }