Ejemplo n.º 1
0
        public void execution_must_be_fast(
            Type type,
            string key)
        {
            //warm up
            _resourceHelper
            .LookupResource(type, key);

            _resourceHelper
            .ExecutionTimeOf(s => s.LookupResource(type, key))
            .Should()
            .BeLessOrEqualTo(MaxExecutionTime);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Recupera a lista de valores dos atributos Description de um enum
        /// </summary>
        /// <param name="enumType">Tipo do enum</param>
        /// <returns>Lista de valores dos atributos Description</returns>
        private IQueryable <ViewModel.TypeDescriptionResponse> GetDescription(
            Type enumType)
        {
            try
            {
                if (CachedDescriptions == null || !CachedDescriptions.Any(w => w.Key == enumType))
                {
                    Array enumValues = enumType.GetEnumValues();

                    if (enumValues != null && enumValues.Length > 0)
                    {
                        IList <ViewModel.TypeDescriptionResponse> result = new List <ViewModel.TypeDescriptionResponse>();

                        foreach (object item in enumValues)
                        {
                            MemberInfo memberInfo = enumType.GetMember(item.ToString()).FirstOrDefault();

                            if (memberInfo != null)
                            {
                                ViewModel.TypeDescriptionResponse typeDescription = new ViewModel.TypeDescriptionResponse()
                                {
                                    Id = (int)item
                                };

                                DisplayAttribute displayAttribute = memberInfo.GetCustomAttribute <DisplayAttribute>(false);

                                if (displayAttribute != null && displayAttribute.ResourceType != null)
                                {
                                    typeDescription.Description = _resourceHelper.LookupResource(displayAttribute.ResourceType, displayAttribute.Name);
                                }
                                else
                                {
                                    typeDescription.Description = item.ToString();
                                }

                                result.Add(typeDescription);
                            }
                        }

                        CachedDescriptions.TryAdd(enumType, result);

                        return(result.AsQueryable());
                    }
                }
                else
                {
                    return(CachedDescriptions.First(w => w.Key == enumType).Value.AsQueryable());
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
            }

            return(null);
        }