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(); }
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(); }