コード例 #1
0
 public ReadSubMethodInfo(LaesInputType input, SourceUsageOrder localAction)
     : this()
 {
     this.Input = input;
     LocalDataProviderOption = localAction;
     UpdateMethod            = (personRegistration) => Local.UpdateDatabase.UpdatePersonRegistration(PersonIdentifier, personRegistration);
 }
コード例 #2
0
 public ListFacadeMethodInfo(ListInputType inp, SourceUsageOrder sourceUsage, string appToken, string userToken)
     : base(appToken, userToken)
 {
     input = inp;
     this.InitializationMethod  = new Action(InitializationMethod);
     this.AggregationFailOption = AggregationFailOption.FailOnAll;
     this.sourceUsageOrder      = sourceUsage;
 }
コード例 #3
0
        public IEnumerable <TInterface> CreateDataProviders(SourceUsageOrder sourceUsageOrder)
        {
            DataProvidersConfigurationSection section = DataProvidersConfigurationSection.GetCurrent();

            DataProvider[] dbProviders = DataProviderManager.ReadDatabaseDataProviders();

            var dataProviders = DataProviderManager.GetDataProviderList(section, dbProviders, typeof(TInterface), sourceUsageOrder)
                                .Select(p => p as TInterface);

            return(dataProviders);
        }
コード例 #4
0
        private bool search(PartManager partManager, SoegInputType1 soegObject, BatchLine batchLine, SourceUsageOrder SourceUsageOrder)
        {
            var searchResult = partManager.SearchList(
                BrokerContext.Current.UserToken,
                BrokerContext.Current.ApplicationToken,
                soegObject,
                SourceUsageOrder);

            if (StandardReturType.IsSucceeded(searchResult.StandardRetur))
            {
                if (batchLine.FillFrom(searchResult))
                {
                    return(true);
                }
                else
                {
                    batchLine.Error = "Person not found";
                    return(false);
                }
            }
            else
            {
                batchLine.Error = string.Format("{0}-{1}", searchResult.StandardRetur.StatusKode, searchResult.StandardRetur.FejlbeskedTekst);
                return(false);
            }
        }
コード例 #5
0
 public ReadFacadeMethodInfo(LaesInputType input, SourceUsageOrder localAction, string appToken, string userToken)
     : base(appToken, userToken)
 {
     this.Input       = input;
     this.LocalAction = localAction;
 }
コード例 #6
0
ファイル: PartManager.cs プロジェクト: magenta-aps/cprbroker
        public static ListOutputType1 List(string userToken, string appToken, ListInputType input, SourceUsageOrder localAction, out QualityLevel?qualityLevel)
        {
            ListOutputType1 ret = null;

            ret = GetMethodOutput <ListOutputType1, LaesResultatType[]>(
                new ListFacadeMethodInfo(input, localAction, appToken, userToken)
                );

            //TODO: remove quality level because it applies to individual elements rather than the whole result
            qualityLevel = QualityLevel.LocalCache;
            return(ret);
        }
コード例 #7
0
ファイル: PartManager.cs プロジェクト: magenta-aps/cprbroker
        public static LaesOutputType Read(string userToken, string appToken, LaesInputType input, SourceUsageOrder localAction, out QualityLevel?qualityLevel)
        {
            ReadFacadeMethodInfo facadeMethod = new ReadFacadeMethodInfo(input, localAction, appToken, userToken);
            var ret = GetMethodOutput <LaesOutputType, LaesResultatType>(facadeMethod);

            qualityLevel = facadeMethod.QualityLevel;
            return(ret);
        }
コード例 #8
0
        public StandardReturType CreateDataProviders(out IEnumerable <ISingleDataProvider <TInputElement, TOutputElement> > dataProviders, SourceUsageOrder sourceUsageOrder)
        {
            DataProvidersConfigurationSection section = DataProvidersConfigurationSection.GetCurrent();

            DataProvider[] dbProviders = DataProviderManager.ReadDatabaseDataProviders();

            dataProviders = DataProviderManager.GetDataProviderList(section, dbProviders, InterfaceType, sourceUsageOrder)
                            .Select(p => p as ISingleDataProvider <TInputElement, TOutputElement>);
            if (dataProviders.FirstOrDefault() == null)
            {
                Local.Admin.AddNewLog(TraceEventType.Warning, BrokerContext.Current.WebMethodMessageName, TextMessages.NoDataProvidersFound, null, null);
                return(StandardReturType.Create(HttpErrorCode.DATASOURCE_UNAVAILABLE));
            }
            return(StandardReturType.OK());
        }
コード例 #9
0
        public static IEnumerable <IDataProvider> GetDataProviderList(DataProvidersConfigurationSection section, DataProvider[] dbProviders, Type interfaceType, SourceUsageOrder localOption)
        {
            switch (localOption)
            {
            case SourceUsageOrder.ExternalOnly:
                return(LoadExternalDataProviders(dbProviders, interfaceType));

            case SourceUsageOrder.LocalOnly:
                return(LoadLocalDataProviders(section, interfaceType));

            case SourceUsageOrder.LocalThenExternal:
                return(LoadLocalDataProviders(section, interfaceType)
                       .Concat(
                           LoadExternalDataProviders(dbProviders, interfaceType)
                           ));

            default:
                return(new IDataProvider[0]);
            }
        }
コード例 #10
0
        public static ListOutputType1 ListPeriod(ListPeriodInputType input, string appToken, string userToken, SourceUsageOrder sourceUsageOrder)
        {
            var facade = new ListPeriodLookupFacadeMethodInfo()
            {
                ApplicationToken = appToken,
                UserToken        = userToken,
                Input            = new PeriodLookupInput()
                {
                    UUIDs            = input.UUID,
                    EffectDateFrom   = input.VirkningFraDato,
                    EffectDateTo     = input.VirkningTilDato,
                    SourceUsageOrder = sourceUsageOrder
                }
            };
            ListOutputType1 result = GetMethodOutput <ListOutputType1, LaesResultatType[]>(facade);

            string[] emptyRecords = ValidateResults(result.LaesResultat);
            CprBroker.Engine.Local.Admin.LogFormattedSuccess("# of empty records: {0}", emptyRecords.Length);
            if (emptyRecords.Length == 0)
            {
                result.StandardRetur = StandardReturType.OK();
            }
            else
            {
                result.StandardRetur = StandardReturType.NoContent(emptyRecords);
            }
            return(result);
        }
コード例 #11
0
        public static ListOutputType1 ListAtTime(ListOejebliksbilledeInputType input, string appToken, string userToken, SourceUsageOrder sourceUsageOrder)
        {
            var facade = new ListPeriodLookupFacadeMethodInfo()
            {
                ApplicationToken = appToken,
                UserToken        = userToken,
                Input            = new PeriodLookupInput()
                {
                    UUIDs            = input.UUID,
                    EffectDateFrom   = input.VirkningDato,
                    EffectDateTo     = input.VirkningDato,
                    SourceUsageOrder = sourceUsageOrder
                }
            };
            ListOutputType1 result = GetMethodOutput <ListOutputType1, LaesResultatType[]>(facade);

            String[] emptyRecords = ValidateResults(result.LaesResultat);
            if (emptyRecords.Length == 0)
            {
                result.StandardRetur = StandardReturType.OK();
            }
            else
            {
                result.StandardRetur = StandardReturType.NoContent(emptyRecords);
            }
            return(result);
        }
コード例 #12
0
        public static LaesOutputType ReadPeriod(LaesPeriodInputType input, string appToken, string userToken, SourceUsageOrder sourceUsageOrder)
        {
            var facade = new ReadPeriodLookupFacadeMethodInfo()
            {
                ApplicationToken = appToken,
                UserToken        = userToken,
                Input            = new PeriodLookupInput()
                {
                    UUIDs            = new string[] { input.UUID },
                    EffectDateFrom   = input.VirkningFraDato,
                    EffectDateTo     = input.VirkningTilDato,
                    SourceUsageOrder = sourceUsageOrder
                }
            };
            LaesOutputType result = GetMethodOutput <LaesOutputType, LaesResultatType>(facade);

            if (IsValidateResult(result.LaesResultat))
            {
                result.StandardRetur = StandardReturType.OK();
            }
            else
            {
                result.StandardRetur = StandardReturType.NoContent(new string[] { ((FiltreretOejebliksbilledeType)result.LaesResultat.Item).UUID });
            }
            return(result);
        }