示例#1
0
        public async Task SubmitApplication(IConfiguration config, FilesSignViewModel model)
        {
            try
            {
                foreach (var file in model.files)
                {
                    if (file.idFileStore != Guid.Empty)
                    {
                        var fileStore = DataService.GetEntity <FileStore>(x => x.Id == file.idFileStore).FirstOrDefault();
                        DataService.Remove(fileStore);
                        await DataService.SaveChangesAsync();

                        var fileStoreNew = new FileStoreDTO
                        {
                            FileType     = FileType.Unknown,
                            OrigFileName = file.name + ".p7s",
                            FileSize     = FileSignHelper.GetOriginalLengthInBytes(file.file),
                            Ock          = file.isSystemFile,
                            EntityId     = fileStore.EntityId,
                            EntityName   = fileStore.EntityName,
                            ContentType  = ".p7s",
                            Description  = "Підписаний файл лікарських засобів"
                        };
                        await FileSignHelper.SaveFile(config, file, fileStoreNew, DataService);
                    }
                    else
                    {
                        var fileStore = new FileStoreDTO
                        {
                            FileType     = FileType.Unknown,
                            OrigFileName = file.name + ".p7s",
                            FileSize     = FileSignHelper.GetOriginalLengthInBytes(file.file),
                            Ock          = file.isSystemFile,
                            EntityId     = model.id,
                            EntityName   = nameof(ImlApplication),
                            ContentType  = ".p7s",
                            Description  = "Підписаний PDF заяви"
                        };


                        await FileSignHelper.SaveFile(config, file, fileStore, DataService);
                    }
                }
            }
            catch (Exception e)
            {
                Log.Error(e.Message);
                throw;
            }
            var app = DataService.GetEntity <ImlApplication>(x => x.Id == model.id)?.FirstOrDefault();

            app.AppState           = "Submitted";
            app.BackOfficeAppState = "Submitted";
            app.IsCreatedOnPortal  = true;
            await DataService.SaveChangesAsync();
        }
示例#2
0
        public async Task <FilesViewModel> GetEDocumentJsonFile(Guid id)
        {
            var applicationBranchesIds = _commonDataService
                                         .GetEntity <ApplicationBranch>(x => x.LimsDocumentId == id && x.RecordState != RecordState.D)
                                         .Select(x => x.BranchId)
                                         .Distinct()
                                         .ToList();
            var applicationEdocumentBranches =
                _commonDataService.GetEntity <BranchEDocument>(x => applicationBranchesIds.Contains(x.BranchId) && x.RecordState != RecordState.D);
            var applicationEdocumentIds = applicationEdocumentBranches.Select(x => x.EDocumentId).Distinct().ToList();
            var applicationEdocuments   = _commonDataService
                                          .GetEntity <EDocument>(x => applicationEdocumentIds.Contains(x.Id) && x.RecordState != RecordState.D).ToList();
            var listEDocJson = new List <EDocumentMD5Model>();

            foreach (var applicationEdocument in applicationEdocuments)
            {
                var fileStore = _commonDataService
                                .GetEntity <FileStore>(x => x.EntityName == "EDocument" && x.EntityId == applicationEdocument.Id && x.RecordState != RecordState.D)
                                .ToList();
                try
                {
                    foreach (var file in fileStore)
                    {
                        var dto = (await _commonDataService.GetDtoAsync <FileStoreDTO>(x => x.Id == file.Id)).FirstOrDefault();
                        // С новым кором переделать FileStoreDTO
                        var dtoCore = new Core.Data.DTO.Common.FileStoreDTO();
                        _objectMapper.Map(dto, dtoCore);
                        if (FileStoreHelper.LoadFile(dtoCore, out var stream, out var contentType))
                        {
                            var plainTextBytes = Encoding.UTF8.GetBytes(dto?.OrigFileName);
                            var base64Name     = Convert.ToBase64String(plainTextBytes);
                            listEDocJson.Add(new EDocumentMD5Model()
                            {
                                Id = file.Id, Name = base64Name, File = FileSignHelper.CalculateMd5(stream)
                            });
                        }
                        else
                        {
                            throw new Exception();
                        }
                    }
                }
示例#3
0
        public async Task SubmitBackOfficeApplication(IConfiguration config, Guid appId)
        {
            var application = DataService.GetEntity <PrlApplication>(x => x.Id == appId).FirstOrDefault();

            if (application == null)
            {
                throw new Exception();
            }
            byte[] file;

            try
            {
                file = await GetApplicationFile(appId, application.AppSort);
            }
            catch (Exception e)
            {
                throw e;
            }
            var fileStore = new FileStoreDTO
            {
                FileType     = FileType.Pdf,
                OrigFileName = "PDF заяви.pdf",
                FileSize     = file.Length,
                EntityId     = appId,
                EntityName   = nameof(PrlApplication),
                ContentType  = ".pdf",
                Description  = "PDF заяви"
            };
            await FileSignHelper.SaveFile(config, new FilesViewModel()
            {
                name = "PDF заяви", file = Convert.ToBase64String(file)
            }, fileStore, DataService);

            application.AppState           = "Submitted";
            application.BackOfficeAppState = "Submitted";
            await DataService.SaveChangesAsync();
        }