Example #1
0
        public async Task SaveParameterData(ParameterData parameterData)
        {
            var existingData = await GetParameterDataStorageModel(parameterData.ParameterId, parameterData.ScenarioId);

            var dataModel = new ParameterDataStorageModel
            {
                Id           = existingData?.Id ?? Guid.NewGuid(),
                ScenarioId   = parameterData.ScenarioId,
                ModelId      = parameterData.ModelId,
                ParameterId  = parameterData.ParameterId,
                DefaultValue = parameterData.DefaultValue,
                Sets         = parameterData.Sets,
            };
            var itemBundles = parameterData.Data
                              .Select((val, index) => new { Index = index, Value = val })
                              .GroupBy(i => i.Index / ItemStorageBundleSize)
                              .Select(x => new ParameterDataItemBundleStorageModel
            {
                ParameterDataId = dataModel.Id,
                ItemBundle      = x.Select(v => v.Value).ToList(),
            })
                              .ToList();
            await _parameterDataCollection.ReplaceOneAsync(x => x.Id == dataModel.Id, dataModel, new UpdateOptions
            {
                IsUpsert = true,
            });

            await _parameterDataItemBundleCollection.DeleteManyAsync(x => x.ParameterDataId == dataModel.Id);

            if (itemBundles.Any())
            {
                await _parameterDataItemBundleCollection.InsertManyAsync(itemBundles);
            }
        }
Example #2
0
        public async Task SaveParameterData(ParameterData parameterData)
        {
            var existingData = await GetParameterDataStorageModel(parameterData.ParameterId, parameterData.ScenarioId);

            var dataModel = new ParameterDataStorageModel
            {
                Id           = existingData?.Id ?? Guid.NewGuid(),
                ScenarioId   = parameterData.ScenarioId,
                ModelId      = parameterData.ModelId,
                ParameterId  = parameterData.ParameterId,
                DefaultValue = parameterData.DefaultValue,
                Sets         = parameterData.Sets,
            };
            var itemsModel = parameterData.Data.Select(d => new ParameterDataItemStorageModel
            {
                ParameterDataId = dataModel.Id,
                Coordinates     = d.C,
                Value           = d.V,
            }).ToList();
            await _parameterDataCollection.ReplaceOneAsync(x => x.Id == dataModel.Id, dataModel, new UpdateOptions
            {
                IsUpsert = true,
            });

            await _parameterDataItemCollection.DeleteManyAsync(x => x.ParameterDataId == dataModel.Id);

            if (itemsModel.Any())
            {
                await _parameterDataItemCollection.InsertManyAsync(itemsModel);
            }
        }
Example #3
0
 public async Task SaveParameterData(ParameterData parameterData)
 {
     var existingData = await GetParameterDataStorageModel(parameterData.ParameterId, parameterData.ScenarioId);
     var dataModel = new ParameterDataStorageModel
     {
         Id = existingData?.Id ?? Guid.NewGuid(),
         ScenarioId = parameterData.ScenarioId,
         ModelId = parameterData.ModelId,
         ParameterId = parameterData.ParameterId,
         DefaultValue = parameterData.DefaultValue,
         Sets = parameterData.Sets,
     };
     var itemsModel = parameterData.Data.Select(d => new ParameterDataItemStorageModel
     {
         ParameterDataId = dataModel.Id,
         Coordinates = d.C,
         Value = d.V,
     }).ToList();
     await _parameterDataCollection.ReplaceOneAsync(x => x.Id == dataModel.Id, dataModel, new UpdateOptions
     {
         IsUpsert = true,
     });
     await _parameterDataItemCollection.DeleteManyAsync(x => x.ParameterDataId == dataModel.Id);
     if (itemsModel.Any())
     {
         await _parameterDataItemCollection.InsertManyAsync(itemsModel);
     }
 }