Пример #1
0
        public bool SaveDiagram(Diagram diagram)
        {
            _loadedDiagrams.Set(diagram);
            _createdDiagrams.Delete(diagram.Id);
            var diagramRepo = _dbContext.RepositoryFactory.Get <IDiagramRepository>();

            diagramRepo.SaveDiagram(diagram);

            var painter            = new DiagramPainter();
            var diagramImage       = painter.CreateImage(diagram);
            var diagramImageStream = new MemoryStream();

            diagramImage.Save(diagramImageStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            var diagramImageContent  = Convert.ToBase64String(diagramImageStream.ToArray());
            var diagramThumbnailRepo = _dbContext.RepositoryFactory.Get <IDiagramThumbnailRepository>();
            var diagramThumbnail     = new DiagramThumbnail {
                DiagramId = diagram.Id, Content = diagramImageContent
            };

            diagramThumbnailRepo.Save(diagramThumbnail);

            var updateDate      = DateTime.UtcNow;
            var diagramMetaRepo = _dbContext.RepositoryFactory.Get <IDiagramMetaRepository>();
            var meta            = diagramMetaRepo.GetDiagramMeta(diagram) ?? new DiagramMeta {
                DiagramId = diagram.Id, CreateDate = updateDate
            };

            meta.Title = diagram.Title;
            var titleRegex      = new Regex(@"^(.*)\s(\d+)?$");
            var titleRegexMatch = titleRegex.Match(diagram.Title);

            meta.TitleLetter = titleRegexMatch.Success ? titleRegexMatch.Groups[1].Value : diagram.Title;
            meta.TitleNumber = titleRegexMatch.Success ? int.Parse(titleRegexMatch.Groups[2].Value) : 0;
            meta.UpdateDate  = updateDate;
            diagramMetaRepo.SaveMeta(meta);

            return(true);
        }
Пример #2
0
 public void Save(DiagramThumbnail thumbnail)
 {
     Engine.GetCollection <DiagramThumbnail>().InsertOrUpdate(thumbnail);
 }
 public void Save(DiagramThumbnail thumbnail)
 {
     DatabaseFile.GetCollection <DiagramThumbnail>().Upsert(thumbnail);
 }