public void AddPoint(IHdaPoint point) { if (point == null) { throw new ArgumentNullException("point"); } var values = point.GetValues().ToList(); if (values == null || !values.Any()) { throw new ArgumentException("Точка не содержит значений."); } var fileGroupId = Guid.NewGuid(); var rootPath = Path.GetTempPath() + Assembly.GetExecutingAssembly().GetName().Name + "\\" + fileGroupId.ToString() + "\\"; new FileInfo(rootPath).Directory.Create(); var blockFiles = CompressedBlocksUtils.SaveToFileByParts(values, "points", rootPath, HDDDataManager.BLOCK_SIZE); //Сохраняем заголовок (ссылку на саму точку не храним, ибо она очень много весит) AddedPoints.Add(new PointInfo { Folder = rootPath, Item = point.Item, Description = point.Description, EngUnit = point.EngUnit, BlockFiles = blockFiles, ValuesCount = values.Count }); }
public ActionResult <ScoreDto> Put(Guid userId, Guid courseId, [FromBody] AddedPoints addedPoints) { if (!_writeScoreRepository.Exists( userId, courseId)) { _writeScoreRepository.Create(new Score(courseId, userId)); _writeScoreRepository.SaveChanges(); } _writeScoreRepository.AddPoints(userId, courseId, addedPoints.Points); _writeScoreRepository.SaveChanges(); return(NoContent()); }