Example #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();
        }
Example #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();
        }
Example #3
0
        public async Task <bool> Add(string values)
        {
            var newSubdomainVersionBModel = new SubdomainVersionBusinessModel();

            JsonConvert.PopulateObject(values, newSubdomainVersionBModel);

            var subdomainVersionModel = _mapper.Map <SubdomainVersion>(newSubdomainVersionBModel);

            if (subdomainVersionModel.SourceVersionId != null)
            {
                var sourceId = (int)subdomainVersionModel.SourceVersionId;
                var sourceSubdomainVersion =
                    _subdomainUnitOfWork.SubdomainVersionRepository.GetVersionWithReferencesById(sourceId);
                if (sourceSubdomainVersion.EditLock)
                {
                    return(false);
                }
                else
                {
                    sourceSubdomainVersion.EditLock = true;

                    if (subdomainVersionModel.DexmoVersion == null)
                    {
                        if (sourceSubdomainVersion.DexmoVersion != null)
                        {
                            subdomainVersionModel.DexmoVersion = sourceSubdomainVersion.DexmoVersion;
                        }
                    }

                    foreach (var sourceReference in sourceSubdomainVersion.ReferencedSubdomainVersions)
                    {
                        var newReference = new SubdomainVersionReference();
                        newReference.SubdomainVersion    = subdomainVersionModel;
                        newReference.ReferencedVersionId = sourceReference.ReferencedVersionId;
                        subdomainVersionModel.ReferencedSubdomainVersions.Add(newReference);
                    }

                    var sourceSubdomainVersionRoles = _subdomainUnitOfWork.SubdomainVersionRoleRepository.GetAllVersionRolesBySubdomainVersionId(sourceId);

                    foreach (var sourceSubVersionRole in sourceSubdomainVersionRoles)
                    {
                        var newSubdomainVersionRole = new SubdomainVersionRole();
                        newSubdomainVersionRole.SubdomainVersion = subdomainVersionModel;
                        newSubdomainVersionRole.RoleId           = sourceSubVersionRole.RoleId;
                        _subdomainUnitOfWork.SubdomainVersionRoleRepository.Add(newSubdomainVersionRole);
                    }
                }
            }

            if (newSubdomainVersionBModel.ReferencedVersionIds != null)
            {
                foreach (var referenceId in newSubdomainVersionBModel.ReferencedVersionIds)
                {
                    var newReference = new SubdomainVersionReference();
                    newReference.SubdomainVersion    = subdomainVersionModel;
                    newReference.ReferencedVersionId = referenceId;
                    subdomainVersionModel.ReferencedSubdomainVersions.Add(newReference);
                }
            }


            _subdomainUnitOfWork.SubdomainVersionRepository.Add(subdomainVersionModel);
            _subdomainUnitOfWork.Complete();

            if (subdomainVersionModel.SourceVersionId != null)
            {
                CloneSourceVersionToNewVersion(subdomainVersionModel);
            }

            return(true);
        }