Exemplo n.º 1
0
        public async Task <IActionResult> Update([FromRoute] Guid?domainId, [FromRoute] string code, [FromBody] Dictionary <string, string> lookupData)
        {
            IActionResult result = null;

            try
            {
                if (result == null && (!domainId.HasValue || Guid.Empty.Equals(domainId.Value)))
                {
                    result = BadRequest("Missing domain id parameter value");
                }
                if (result == null && string.IsNullOrEmpty(code))
                {
                    result = BadRequest("Missing lookup code parameter value");
                }
                if (result == null)
                {
                    using ILifetimeScope scope = _container.BeginLifetimeScope();
                    SettingsFactory settingsFactory = scope.Resolve <SettingsFactory>();
                    CoreSettings    settings        = settingsFactory.CreateCore(_settings.Value);
                    ILookupFactory  factory         = scope.Resolve <ILookupFactory>();
                    ILookup         innerLookup     = null;
                    Func <CoreSettings, ILookupSaver, ILookup, Task> save = (sttngs, svr, lkup) => svr.Update(sttngs, lkup);
                    if (!(await VerifyDomainAccount(domainId.Value, settingsFactory, _settings.Value, scope.Resolve <IDomainService>())))
                    {
                        result = StatusCode(StatusCodes.Status401Unauthorized);
                    }
                    if (result == null)
                    {
                        innerLookup = await factory.GetByCode(settings, domainId.Value, code);
                    }
                    if (result == null && innerLookup == null)
                    {
                        innerLookup = factory.Create(domainId.Value, code);
                        save        = (sttngs, svr, lkup) => svr.Create(sttngs, lkup);
                    }
                    if (result == null && innerLookup != null)
                    {
                        innerLookup.Data = lookupData;
                        await save(settings, scope.Resolve <ILookupSaver>(), innerLookup);

                        IMapper mapper = MapperConfigurationFactory.CreateMapper();
                        result = Ok(
                            mapper.Map <Lookup>(innerLookup)
                            );
                    }
                }
            }
            catch (Exception ex)
            {
                using (ILifetimeScope scope = _container.BeginLifetimeScope())
                {
                    await LogException(ex, scope.Resolve <IExceptionService>(), scope.Resolve <SettingsFactory>(), _settings.Value);
                }
                result = StatusCode(StatusCodes.Status500InternalServerError);
            }
            return(result);
        }
Exemplo n.º 2
0
        public ISingleFieldToMultiselectHtmlRenderer <TModel, TValue> DataSource(Action <ILookupDataSource> provider)
        {
            var dsProvider = new MultiSelectLookupDataSourceProvider();

            provider(dsProvider);
            ILookupFactory  factory = dsProvider.LazyFactory.Compile()();
            ILookupFunction lookup  = factory.Create <ILookupFunction>(dsProvider.TargetLookup);
            var             lookups = lookup.GetRecordsForLookup();

            _container.LookupValueFields = lookups.Select(o => MultiSelectLookup.Create(o.Text, o.Value));
            return(new SingleFieldToMultiselectHtmlRenderer <TModel, TValue>(_container));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> GetHistoryByCode([FromRoute] Guid?domainId, [FromRoute] string code)
        {
            IActionResult result = null;

            try
            {
                if (result == null && (!domainId.HasValue || Guid.Empty.Equals(domainId.Value)))
                {
                    result = BadRequest("Missing domain id parameter value");
                }
                if (result == null && string.IsNullOrEmpty(code))
                {
                    result = BadRequest("Missing lookup code parameter value");
                }
                if (result == null)
                {
                    using ILifetimeScope scope = _container.BeginLifetimeScope();
                    SettingsFactory settingsFactory = scope.Resolve <SettingsFactory>();
                    ILookupFactory  factory         = scope.Resolve <ILookupFactory>();
                    if (!(await VerifyDomainAccount(domainId.Value, settingsFactory, _settings.Value, scope.Resolve <IDomainService>())))
                    {
                        result = StatusCode(StatusCodes.Status401Unauthorized);
                    }
                    else
                    {
                        ILookup lookup = await factory.GetByCode(settingsFactory.CreateCore(_settings.Value), domainId.Value, code);

                        if (lookup == null)
                        {
                            result = NotFound();
                        }
                        else
                        {
                            IMapper mapper = MapperConfigurationFactory.CreateMapper();
                            result = Ok(
                                (await lookup.GetHistory(settingsFactory.CreateCore(_settings.Value)))
                                .Select <ILookupHistory, LookupHistory>(hist => mapper.Map <LookupHistory>(hist))
                                );
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                using (ILifetimeScope scope = _container.BeginLifetimeScope())
                {
                    await LogException(ex, scope.Resolve <IExceptionService>(), scope.Resolve <SettingsFactory>(), _settings.Value);
                }
                result = StatusCode(StatusCodes.Status500InternalServerError);
            }
            return(result);
        }
Exemplo n.º 4
0
        public async Task <IActionResult> GetCodes([FromRoute] Guid?domainId)
        {
            IActionResult result = null;

            try
            {
                if (result == null && (!domainId.HasValue || Guid.Empty.Equals(domainId.Value)))
                {
                    result = BadRequest("Missing domain id parameter value");
                }
                if (result == null)
                {
                    using ILifetimeScope scope = _container.BeginLifetimeScope();
                    SettingsFactory settingsFactory = scope.Resolve <SettingsFactory>();
                    ILookupFactory  factory         = scope.Resolve <ILookupFactory>();
                    if (!(await VerifyDomainAccount(domainId.Value, settingsFactory, _settings.Value, scope.Resolve <IDomainService>())))
                    {
                        result = StatusCode(StatusCodes.Status401Unauthorized);
                    }
                    else
                    {
                        result = Ok(
                            await factory.GetCodes(settingsFactory.CreateCore(_settings.Value), domainId.Value)
                            );
                    }
                }
            }
            catch (Exception ex)
            {
                using (ILifetimeScope scope = _container.BeginLifetimeScope())
                {
                    await LogException(ex, scope.Resolve <IExceptionService>(), scope.Resolve <SettingsFactory>(), _settings.Value);
                }
                result = StatusCode(StatusCodes.Status500InternalServerError);
            }
            return(result);
        }
Exemplo n.º 5
0
 private LookupProvider()
 {
     _factory = new LookupFactory(ReflectionHelper.Instance, new UnitOfWorkWrapper(), "Pfizer.Service");
 }