/// <summary> /// Use strategy of multiple linker for connect entities by specified parameters. /// </summary> /// <param name="entityName">Name of entities.</param> /// <param name="recordsId">Identifier of records.</param> /// <param name="parameters">Strategy parameters.</param> /// <param name="filtersConfig">Filters configuration.</param> public virtual void MultiLinkEntity(string entityName, string[] recordsId, string parameters, string filtersConfig = null) { if (filtersConfig != null) { recordsId = GetRecordsIdFromFilters(entityName, filtersConfig); } IMultiOperationStrategy multiLinkStrategy = GetMultiLinkEntityStrategy(parameters); MultiOperationProvider provider = GetMultiOperationProvider(multiLinkStrategy, entityName, recordsId); provider.DoOperation(); }
protected virtual MultiOperationProvider GetMultiOperationProvider(IMultiOperationStrategy strategy, string entityName, string[] recordsId) { List <Guid> recordsGuid = recordsId.Select(Guid.Parse).ToList(); var multiOperationProviderArgs = new[] { new ConstructorArgument("strategy", strategy), new ConstructorArgument("entityName", entityName), new ConstructorArgument("recordsId", recordsGuid) }; MultiOperationProvider provider = ClassFactory.Get <MultiOperationProvider>(multiOperationProviderArgs); return(provider); }