Пример #1
0
        /// <summary>
        /// Returns the object name for an id
        /// </summary>
        /// <param name="exportTemplates">Id of the object</param>
        /// <param name="objectDbAccess">Object Db Access</param>
        /// <param name="templateDbAccess">Template Db Access</param>
        /// <typeparam name="T">Type of the object</typeparam>
        /// <returns>Objects using template</returns>
        private async Task <List <ObjectUsingTemplate> > GetObjectsUsingTemplates <T>(List <ExportTemplate> exportTemplates, IFlexFieldObjectDbAccess <T> objectDbAccess, IFlexFieldObjectDbAccess <T> templateDbAccess) where T : FlexFieldObject
        {
            List <string> objectIds     = exportTemplates.Select(t => t.CustomizedObjectId).ToList();
            List <T>      templateNames = await templateDbAccess.ResolveFlexFieldObjectNames(objectIds);

            List <ObjectUsingTemplate> objectsUsingTemplate = templateNames.Select(o => new ObjectUsingTemplate {
                ObjectId         = o.Id,
                IsObjectTemplate = true,
                ObjectName       = o.Name
            }).ToList();

            List <string> objectIdsWithoutTemplate = objectIds.Where(i => !objectsUsingTemplate.Any(ou => ou.ObjectId == i)).ToList();

            if (objectIdsWithoutTemplate != null && objectIdsWithoutTemplate.Count > 0)
            {
                List <T> objectNames = await objectDbAccess.ResolveFlexFieldObjectNames(objectIdsWithoutTemplate);

                objectsUsingTemplate.AddRange(objectNames.Select(o => new ObjectUsingTemplate {
                    ObjectId         = o.Id,
                    IsObjectTemplate = false,
                    ObjectName       = o.Name
                }).ToList());
            }

            return(objectsUsingTemplate);
        }
        public async Task <IActionResult> ResolveFlexFieldObjectNames([FromBody] List <string> objectIds)
        {
            List <T> objectNames = await _objectDbAccess.ResolveFlexFieldObjectNames(objectIds);

            return(Ok(objectNames));
        }