/// <summary>
        /// InsertArchiveBase64.
        /// </summary>
        /// <param name="bindingModel"></param>
        /// <returns></returns>
        public async Task <Boolean> InsertArchiveBase64(ArchiveBase64BindingModel bindingModel)
        {
            Boolean      result      = false;
            ArchiveModel model       = null;
            Guid         archiveId   = Guid.NewGuid();
            String       archivePath = String.Format(ConstantsConfiguration.PATH_IMAGES, archiveId);

            try
            {
                File.WriteAllBytes(archivePath, Convert.FromBase64String(bindingModel.Base64));

                if (!(File.ReadAllBytes(archivePath) is null))
                {
                    model = new ArchiveModel(archiveId, bindingModel.ArchiveType, bindingModel);

                    result = await this._archiveRepository.InsertArchive(model);

                    if (!result)
                    {
                        File.Delete(archivePath);
                    }
                }
            }
            catch (Exception exception)
            {
                if (!(File.ReadAllBytes(archivePath) is null))
                {
                    File.Delete(archivePath);
                }

                throw exception;
            }

            return(result);
        }
示例#2
0
        public ArchiveModel(Guid?archiveId, MimeTypeEnum mimeType, ArchiveBase64BindingModel bindingModel)
        {
            this.ArchiveId   = archiveId?.ToString();
            this.ArchiveName = bindingModel?.ArchiveName;
            this.UserToken   = bindingModel?.UserToken;

            switch (mimeType)
            {
            case MimeTypeEnum.IMAGE: this.ContentType = "image/png"; break;

            case MimeTypeEnum.PDF: this.ContentType = "application/pdf"; break;

            case MimeTypeEnum.DOCX: this.ContentType = "application/msword"; break;

            case MimeTypeEnum.PPT: this.ContentType = "application/vnd.ms-powerpoint"; break;
            }
        }
        public async Task <IActionResult> PostArchiveBase64([FromForm] ArchiveBase64BindingModel model)
        {
            if (!(model is null))
            {
                var result = await this._archiveService.InsertArchiveBase64(model);

                if (result)
                {
                    return(Ok(new ResultViewModel
                    {
                        IsSuccess = result,
                        Data = model,
                        Messages = new String[] { ConstantsConfiguration.STATUS_CODE_200 }
                    }));
                }
                else
                {
                    return(StatusCode(503, new ResultViewModel
                    {
                        IsSuccess = result,
                        Messages = new String[] { ConstantsConfiguration.STATUS_CODE_503 }
                    }));
                }
            }