public BaseReferenceDataHub(
     IHubEventBase eventBase,
     ILogger logger,
     ReferenceDataTypes referenceDataType)
 {
     _eventBase         = eventBase;
     _logger            = logger;
     _referenceDataType = referenceDataType;
 }
示例#2
0
        public static bool AnyConnectionIds(ReferenceDataTypes type)
        {
            lock (LockObject)
            {
                var found = ReferenceDataConnectedIds.TryGetValue(type, out var connectionIds);

                return(found && connectionIds.Any());
            }
        }
示例#3
0
 public static void RemoveConnectionId(ReferenceDataTypes type, string connectionId)
 {
     lock (LockObject)
     {
         if (ReferenceDataConnectedIds.ContainsKey(type))
         {
             ReferenceDataConnectedIds[type].Remove(connectionId);
         }
     }
 }
示例#4
0
        protected List <SelectListItem> PopulateSelectListItems(ReferenceDataTypes refDataType, int?userSelectedValue, dynamic items)
        {
            var selectListItems = new List <SelectListItem>();

            foreach (var i in items)
            {
                selectListItems.Add(new SelectListItem(i.Name, i.ID.ToString(), userSelectedValue == i.ID ? true : false));
            }

            selectListItems = selectListItems.OrderBy(x => x.Text).ToList();
            selectListItems.Insert(0, new SelectListItem("Please choose one", "", false, false));

            return(selectListItems);
        }
示例#5
0
        public static void AddConnectionId(ReferenceDataTypes type, string connectionId)
        {
            lock (LockObject)
            {
                var found = ReferenceDataConnectedIds.TryGetValue(type, out var connectionIds);

                if (!found)
                {
                    connectionIds = new HashSet <string>();
                    ReferenceDataConnectedIds.Add(type, connectionIds);
                }

                connectionIds.Add(connectionId);
            }
        }
示例#6
0
        public IViewComponentResult Invoke(ReferenceDataTypes refDataType, List <WhereClauseDTO> selectionCriteria, string elementName, string htmlClasses, int?userSelectedValue, bool required = false, bool disabled = false)
        {
            var userSelectedVals = userSelectedValue == null ? new List <int>() : new List <int>()
            {
                (int)userSelectedValue
            };

            return(View("Default", new SelectBoxDisplayViewModel()
            {
                ElementName = elementName,
                SelectListItems = PopulateSelectListItems(refDataType, userSelectedValue, _refDataService.FetchItemsList(refDataType, selectionCriteria, userSelectedVals)),
                HtmlAttributes = SetHtmlAttributes(htmlClasses, required, disabled),
                UserSelectedValue = userSelectedValue
            }));
        }
        public ReferenceDataListViewModel GetReferenceData(ReferenceDataTypes type)
        {
            try
            {
                var referenceData = _referenceDataService.Get(type);

                var referenceDataViewModel = referenceData.Select(m => _referenceDataDomainToViewModelMapper.ConvertToViewModel(m));
                IEnumerable <ReferenceDataViewModel> referenceDataViewModels = referenceDataViewModel as IList <ReferenceDataViewModel> ?? referenceDataViewModel.ToList();
                if (!referenceDataViewModels.IsNullOrEmpty())
                {
                    return(new ReferenceDataListViewModel(referenceDataViewModels));
                }
                return(new ReferenceDataListViewModel());
            }
            catch (System.Exception)
            {
                //todo: log error using preferred logging mechanism
                return(new ReferenceDataListViewModel());
            }
        }
        public dynamic FetchItemsList(ReferenceDataTypes refDataType, IList <WhereClauseDTO> selectionCriteria, IList <int> userSelectedValues)
        {
            ParameterExpression parameter  = Expression.Parameter(AllRefDataTypes[refDataType], "x");
            MemberExpression    activeFrom = Expression.Property(parameter, "EffectiveFromDate");
            MemberExpression    activeTill = Expression.Property(parameter, "EffectiveTillDate");
            ConstantExpression  today      = Expression.Constant(DateTime.Now);
            BinaryExpression    criteria1  = Expression.GreaterThanOrEqual(today, activeFrom); // Today >= x.EffectiveFromDate
            BinaryExpression    criteria2  = Expression.LessThanOrEqual(today, activeTill);    // Today <= x.EffectiveTillDate
            Expression          body       = Expression.AndAlso(criteria1, criteria2);

            if (userSelectedValues.Count > 0)
            {
                foreach (int usv in userSelectedValues)
                {
                    MemberExpression   member3   = Expression.Property(parameter, "ID");
                    ConstantExpression constant2 = Expression.Constant(usv);
                    BinaryExpression   criteria3 = Expression.Equal(member3, constant2); // x.ID == userSelectValue

                    body = Expression.Or(body, criteria3);
                }
            }

            foreach (var prop in selectionCriteria)
            {
                PropertyInfo thisProp    = AllRefDataTypes[refDataType].GetProperty(prop.PropertyName);
                Expression   propertyExp = Expression.Property(parameter, thisProp);
                Expression   valueExp    = Expression.Constant(prop.PropertyValue);
                valueExp = Expression.Convert(valueExp, thisProp.PropertyType);
                Expression criteria = ComposeComparisonExpression(prop.Operator, propertyExp, valueExp);
                body = AppendWhereExpressions(prop.WhereAndOrCondition ?? ProjectConstants.Operators.SqlWhere.AND, body, criteria);
            }

            Type             delegateType = typeof(Func <,>).MakeGenericType(AllRefDataTypes[refDataType], typeof(bool));
            LambdaExpression predicate    = Expression.Lambda(delegateType, body, parameter);

            MethodInfo findWhereMethod        = _repositoryService.GetType().GetMethod("FindWhere");
            MethodInfo findWhereMethodGeneric = findWhereMethod.MakeGenericMethod(AllRefDataTypes[refDataType]);
            dynamic    items = findWhereMethodGeneric.Invoke(_repositoryService, new object[] { predicate });

            return(items);
        }
        public MediatorResponse <ReferenceDataListViewModel> GetReferenceData(ReferenceDataTypes type)
        {
            var result = _referenceDataProvider.GetReferenceData(type);

            return(GetMediatorResponse(ReferenceDataMediatorCodes.ReferenceData.Success, result));
        }
示例#10
0
        public IEnumerable <ReferenceData> Get(ReferenceDataTypes type)
        {
            var data = GetReferenceData(type.ToString());

            return(data);
        }