Example #1
0
 private static IEnumerable <Guid> GetIdGuids(
     IEnumerable <CodeOperation> codeInstructions,
     CodeOperationSource codeOperationSource,
     OperationInstruction operationInstruction)
 {
     return(codeInstructions.Where(ci => ci.Instruction == operationInstruction && ci.Source == codeOperationSource)
            .Select(ci => ci.Value));
 }
Example #2
0
        private IEnumerable <ICodeSystemCode> GetCodesForInstruction(
            ClientTermValueSetApiModel model,
            OperationInstruction operationInstruction)
        {
            var codes = new List <ICodeSystemCode>();

            var valueSetGuids = GetIdGuids(model.CodeOperations, CodeOperationSource.ValueSet, operationInstruction);
            var codeGuids     = GetIdGuids(model.CodeOperations, CodeOperationSource.CodeSystemCode, operationInstruction);

            codes.AddRange(this.GetCodeSystemCodesByValueSets(valueSetGuids));
            codes.AddRange(this.GetCodeSystemCodes(codeGuids));

            return(codes.GroupBy(csc => csc.CodeGuid)
                   .Select(group => group.FirstOrDefault())
                   .Where(csc => csc != null)
                   .ToList());
        }
        public static void Main(string[] args)
        {
            if (args.Length < 3)
            {
                PrintUsage();
            }
            else
            {
                using (CoreServiceProvider coreService = new CoreServiceProvider())
                {
                    ICoreService client = coreService.Client;

                    string componentId = args[1];
                    string destinationRepositoryId = args[2];
                    OperationInstruction instruction = new OperationInstruction { Mode = OperationMode.FailOnError };
                    ReadOptions readOptions = coreService.ReadOptions;

                    RepositoryLocalObjectData originalData = (RepositoryLocalObjectData)client.Read(componentId, readOptions);
                    Console.WriteLine("Original item:\t{0} | Publication: \"{1}\"",
                        originalData.Id, originalData.BluePrintInfo.OwningRepository.Title);

                    try
                    {
                        OperationResultDataOfRepositoryLocalObjectData result = null;
                        switch (args[0])
                        {
                            case "promote":
                                result = client.Promote(componentId, destinationRepositoryId, instruction, readOptions);
                                break;

                            case "demote":
                                result = client.Demote(componentId, destinationRepositoryId, instruction, readOptions);
                                break;

                            default:
                                PrintUsage();
                                break;
                        }

                        if (result != null)
                        {
                            if (result.ValidationWarnings.Length > 0)
                            {
                                Console.WriteLine("Validation warnings:");
                                foreach (ValidationWarningData warning in result.ValidationWarnings)
                                {
                                    Console.WriteLine("\tMessage:{0} | Source:{1} | Location:{2}",
                                        warning.Message, warning.Source, warning.Location);
                                }
                            }
                            else
                            {
                                RepositoryLocalObjectData objectData = result.Result;
                                Console.WriteLine("Moved item:\t{0} | Publication: \"{1}\"",
                                    objectData.Id, objectData.BluePrintInfo.OwningRepository.Title);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        Console.Error.WriteLine("Fail: " + e);
                    }
                }
            }

            Console.Write("Press any key...");
            Console.ReadKey();
        }