Exemplo n.º 1
0
        private (Guid GroupModelId, Guid PriorityModelId, Guid ServiceModelId) GetNewestCaseModels(UserConnection userConnection)
        {
            var caseModels = Get <ICompositeObjectList <ICompositeObject> >("ReadDataUserTask.ResultCompositeObjectList");

            IDictionary <Guid, DateTime> modelsCreationDictionary = caseModels.ToDictionary(
                caseModelInfo => GetValue <Guid>(caseModelInfo, "Id"),
                caseModelInfo => GetValue <DateTime>(caseModelInfo, "CreatedOn")
                );
            IMLModelLoader modelLoader = ClassFactory.Get <IMLModelLoader>();
            var            ids         = modelsCreationDictionary.Keys.ToList();

            if (ids.Count == 0)
            {
                return(Guid.Empty, Guid.Empty, Guid.Empty);
            }
            var caseModelConfigs = modelLoader.LoadEnabledModels(userConnection, modelsCreationDictionary.Keys.ToList());

            var groupModelIds = caseModelConfigs.Where(item => item.PredictedResultColumnName == "GroupId")
                                .Select(item => item.Id);
            Guid groupModelId =
                groupModelIds.OrderByDescending(id => modelsCreationDictionary[id]).FirstOrDefault();

            var priorityModelIds = caseModelConfigs.Where(item => item.PredictedResultColumnName == "PriorityId")
                                   .Select(item => item.Id);
            Guid priorityModelId =
                priorityModelIds.OrderByDescending(id => modelsCreationDictionary[id]).FirstOrDefault();

            var serviceModelIds = caseModelConfigs.Where(item => item.PredictedResultColumnName == "ServiceItemId")
                                  .Select(item => item.Id);
            Guid serviceModelId =
                serviceModelIds.OrderByDescending(id => modelsCreationDictionary[id]).FirstOrDefault();

            return(groupModelId, priorityModelId, serviceModelId);
        }