コード例 #1
0
        /// <summary>
        /// Удаляет документ пользователя
        /// </summary>
        /// <param name="userDocument"></param>
        /// <returns></returns>
        public async Task RemoveUserDocumentAsync(UserDocument userDocument)
        {
            _context.UserDocuments.Remove(userDocument);
            await RemoveFileModelAsync(userDocument.FileModel);

            await _context.SaveChangesAsync();
        }
        /// <summary>
        /// Загружает на сервер документ об образовании и
        /// создаёт соответствующую запись в таблице UserDocuments
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="uploadedFile"></param>
        /// <param name="typeOfEducationDocument">Тип документа об образовании</param>
        /// <returns></returns>
        public async Task <UserDocument> CreateEducationDocumentAsync(string userName,
                                                                      IFormFile uploadedFile,
                                                                      FileDataTypeEnum typeOfEducationDocument)
        {
            var userId    = _userProfileRepository.GetAppUserId(userName);
            var fileModel = await _fileModelRepository.UploadEducationDocumentAsync(uploadedFile, typeOfEducationDocument);

            if (fileModel == null)
            {
                return(null);
            }

            var userDocument = new UserDocument
            {
                AppUserId      = userId,
                FileModelId    = fileModel.Id,
                FileDataTypeId = (int)typeOfEducationDocument
            };

            await _context.AddAsync(userDocument);

            await _context.SaveChangesAsync();

            return(userDocument);
        }
        /// <summary>
        /// Обновляет документ пользователя
        /// </summary>
        /// <param name="userDocument"></param>
        /// <param name="uploadedFile"></param>
        /// <returns></returns>
        public async Task UpdateUserDocument(UserDocument userDocument, IFormFile uploadedFile)
        {
            if (userDocument == null)
            {
                throw new NullReferenceException();
            }
            var entry = await GetUserDocumentAsync(userDocument.UserDocumentId);

            entry.AppUserId      = userDocument.AppUserId;
            entry.FileDataTypeId = userDocument.FileDataTypeId;
            entry.RowStatusId    = userDocument.RowStatusId;
            entry.Remark         = userDocument.Remark;

            if (userDocument.FileDataTypeId != entry.FileDataTypeId)
            {
                entry.FileDataTypeId = userDocument.FileDataTypeId;
                foreach (var fileToFileType in entry.FileModel.FileToFileTypes)
                {
                    fileToFileType.FileDataTypeId = userDocument.FileDataTypeId;
                }
            }

            if (uploadedFile != null)
            {
                if (entry.FileModelId == 0)
                {
                    var newFileModel = await _fileModelRepository.UploadFileAsync(uploadedFile, (FileDataTypeEnum)entry.FileDataTypeId);
                }
                else
                {
                    await _fileModelRepository.ReloadFileAsync(entry.FileModelId, uploadedFile);
                }
            }

            _context.UserDocuments.Update(entry);

            await _context.SaveChangesAsync();
        }
        /// <summary>
        /// Загружает на сервер согласие на обработку персональных данных и
        /// создаёт соответствующую запись в таблице UserDocuments
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="uploadedFile"></param>
        /// <returns></returns>
        public async Task <UserDocument> CreateApplicationForProcessingPersonalDataAsync(string userName, IFormFile uploadedFile)
        {
            var userId    = _userProfileRepository.GetAppUserId(userName);
            var fileModel = await _fileModelRepository.UploadApplicationForProcessingPersonalDataAsync(uploadedFile);

            if (fileModel == null)
            {
                return(null);
            }

            var userDocument = new UserDocument
            {
                AppUserId      = userId,
                FileModelId    = fileModel.Id,
                FileDataTypeId = (int)FileDataTypeEnum.SoglasieNaObrabotkuPersonalnihDannih
            };

            await _context.AddAsync(userDocument);

            await _context.SaveChangesAsync();

            return(userDocument);
        }
        /// <summary>
        /// Загружает на сервер скан-копию СНИЛС и
        /// создаёт соответствующую запись в таблице UserDocuments
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="uploadedFile"></param>
        /// <returns></returns>
        public async Task <UserDocument> CreateSNILS(string userName, IFormFile uploadedFile)
        {
            var userId    = _userProfileRepository.GetAppUserId(userName);
            var fileModel = await _fileModelRepository.UploadSNILSAsync(uploadedFile);

            if (fileModel == null)
            {
                return(null);
            }

            var userDocument = new UserDocument
            {
                AppUserId      = userId,
                FileModelId    = fileModel.Id,
                FileDataTypeId = (int)FileDataTypeEnum.UserDocuments_SNILS,
                RowStatusId    = (int)RowStatusEnum.NotConfirmed
            };

            await _context.AddAsync(userDocument);

            await _context.SaveChangesAsync();

            return(userDocument);
        }
 /// <summary>
 /// Устанавливает замечание к документу
 /// </summary>
 /// <param name="userDocument"></param>
 /// <param name="remark"></param>
 /// <returns></returns>
 public async Task SetUserDocumentRemarkAsync(UserDocument userDocument, string remark)
 {
     userDocument.Remark = remark;
     await _context.SaveChangesAsync();
 }