public void Execute(DocumentTemplateFile file)
        {
            var repo = Uow.GetRepository <DocumentTemplateFile>();

            repo.Update(file);

            Uow.SaveChanges();
        }
예제 #2
0
        private static void UploadDocumentTemplateFiles(
            Dictionary <string, string> templateEntities,
            string rootPath,
            string templatesRootPath,
            NiisWebContext context)
        {
            foreach (var template in templateEntities)
            {
                var type = context.DicDocumentTypes.FirstOrDefault(d => d.Code == template.Key);

                if (type != null)
                {
                    using (var transaction = context.Database.BeginTransaction())
                    {
                        context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[DocumentTemplateFiles] ON");
                        var dbTemplate = context.DocumentTemplateFiles.SingleOrDefault(x => x.Id == type.Id);

                        var path = Path.Combine($"{rootPath}/{templatesRootPath}",
                                                $"{template.Value}.{FileTypes.Docx}");

                        var fileBytes = File.ReadAllBytes(path);

                        if (dbTemplate != null)
                        {
                            dbTemplate.DateUpdate = DateTimeOffset.Now;
                            dbTemplate.File       = fileBytes;
                            dbTemplate.FileSize   = fileBytes.Length;

                            context.DocumentTemplateFiles.Update(dbTemplate);
                        }
                        else
                        {
                            dbTemplate = new DocumentTemplateFile
                            {
                                DateCreate = DateTimeOffset.Now,
                                DateUpdate = DateTimeOffset.Now,
                                File       = fileBytes,
                                FileSize   = fileBytes.Length,
                                FileName   = $"{template.Value}.{FileTypes.Docx}",
                                Id         = type.Id
                            };

                            context.DocumentTemplateFiles.Add(dbTemplate);
                        }

                        type.TemplateFileId = dbTemplate.Id;
                        context.DicDocumentTypes.Update(type);
                        context.SaveChanges();
                        context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[DocumentTemplateFiles] OFF");

                        transaction.Commit();
                    }
                }
            }
        }