private string GetEmptyHierarchyValue(string columnName, EntitySchema entitySchema) { string message = new LocalizableString(UserConnection.ResourceStorage, nameof(ForecastHierarchyRowDataRepository), "LocalizableStrings.EmptyHierarchyValue.Value"); var entityColumn = entitySchema.GetSchemaColumnByPath(columnName); return(string.Format(message, entityColumn.Caption)); }
/// <summary> /// Save recommendation prediction result using model parameters. /// </summary> /// <param name="modelConfig">Model config.</param> /// <param name="predictionResult">Prediction result.</param> public virtual void SaveRecommendationPrediction(MLModelConfig modelConfig, RecommendationResponse predictionResult) { EntitySchema schema = _userConnection.EntitySchemaManager.GetInstanceByUId(modelConfig.CFResultSchemaUId); var entityCollection = new EntityCollection(_userConnection, schema); EntitySchemaColumn userColumn = schema.GetSchemaColumnByPath(modelConfig.CFResultUserColumnName); EntitySchemaColumn itemColumn = schema.GetSchemaColumnByPath(modelConfig.CFResultItemColumnName); EntitySchemaColumn valueColumn = modelConfig.CFResultValueColumnName.IsNotNullOrWhiteSpace() ? schema.FindSchemaColumnByPath(modelConfig.CFResultValueColumnName) : null; EntitySchemaColumn modelColumn = modelConfig.CFResultModelColumnName.IsNotNullOrWhiteSpace() ? schema.FindSchemaColumnByPath(modelConfig.CFResultModelColumnName) : null; EntitySchemaColumn timestampColumn = modelConfig.CFResultTimestampColumnName.IsNotNullOrWhiteSpace() ? schema.FindSchemaColumnByPath(modelConfig.CFResultTimestampColumnName) : null; foreach (RecommendationOutput output in predictionResult.Outputs) { foreach (RecommendedItem item in output.Items) { Entity entity = schema.CreateEntity(_userConnection); entity.UseAdminRights = UseAdminRights; entity.SetColumnValue("Id", Guid.NewGuid()); entity.SetColumnValue(userColumn, output.UserId); entity.SetColumnValue(itemColumn, item.ItemId); if (valueColumn != null) { entity.SetColumnValue(valueColumn, item.Score); } if (modelColumn != null) { entity.SetColumnValue(modelColumn, modelConfig.Id); } if (timestampColumn != null) { entity.SetColumnValue(timestampColumn, DateTime.UtcNow); } entityCollection.Add(entity); } } entityCollection.Save(); }
/// <summary> /// Gets entity type column value. /// </summary> /// <param name="entitySchema"<see cref="EntitySchema"/> instance.</param> /// <param name="recordId">Record unique identifier.</param> /// <param name="typeColumnName">Entity type column name.</param> /// <returns>Return entity type column value.</returns> private Guid GetEntityTypeColumnValue(EntitySchema entitySchema, Guid recordId, string typeColumnName) { if (string.IsNullOrEmpty(typeColumnName)) { return(Guid.Empty); } var typeColumn = entitySchema.GetSchemaColumnByPath(typeColumnName); var select = new Select(UserConnection) .Column(typeColumn.ColumnValueName) .From(entitySchema.Name) .Where(entitySchema.PrimaryColumn.Name).IsEqual(Column.Parameter(recordId)) as Select; try { return(select.ExecuteScalar <Guid>()); } catch (Exception ex) { throw new NotFoundEntityException($"Entity not found with name = {entitySchema.Name}, recordId = {recordId}", ex); } }