コード例 #1
0
 public DetailedStudyMaterialDTO(StudyMaterialDTO baseDTO)
 {
     Uri             = baseDTO.Uri;
     Name            = baseDTO.Name;
     StudyMaterialId = baseDTO.StudyMaterialId;
     CategoryId      = baseDTO.CategoryId;
     UploadDate      = baseDTO.UploadDate;
     StudentId       = baseDTO.StudentId;
     TotalRating     = baseDTO.TotalRating;
     Deleted         = baseDTO.Deleted;
 }
コード例 #2
0
        /// <summary>
        /// Saves list of study materials in specified category within specific course, relating those study materials with
        /// specific student.
        /// </summary>
        /// <param name="categoryId">Unique identifier for the category</param>
        /// <param name="studentId">Unique identifier for the student</param>
        /// <param name="fileInfos">List of file information</param>
        /// <returns>True if upload succeeds, false if not</returns>
        public async Task <ResultMessage <bool> > SaveStudyMaterials(int categoryId, int studentId, List <BasicFileInfo> fileInfos)
        {
            try
            {
                using (IDbContextTransaction transaction = await _context.Database.BeginTransactionAsync())
                {
                    foreach (BasicFileInfo fileInfo in fileInfos)
                    {
                        ResultMessage <CategoryDTO> choosenCategory = await _categoryService
                                                                      .GetSingleOrDefault(x => x.CategoryId == categoryId);

                        if (!choosenCategory.IsSuccess)
                        {
                            return(new ResultMessage <bool>(false, choosenCategory.Status, choosenCategory.Message));
                        }

                        StudyMaterialDTO data = new StudyMaterialDTO()
                        {
                            StudentId  = studentId,
                            CategoryId = categoryId,
                            Name       = fileInfo.FileName,
                            UploadDate = DateTime.Now,
                            Uri        = PathBuilder.BuildPathForStudyMaterial(choosenCategory.Result.CourseId, categoryId, fileInfo.FileName)
                        };

                        ResultMessage <StudyMaterialDTO> studyMaterialResult = await _studyMaterialService.Add(data);

                        if (!studyMaterialResult.IsSuccess)
                        {
                            return(new ResultMessage <bool>(false, studyMaterialResult.Status, studyMaterialResult.Message));
                        }

                        ResultMessage <bool> fsUploadResult = await _documentService.UploadDocumentToStorage(data.Uri, fileInfo.FileData);

                        if (!fsUploadResult.IsSuccess)
                        {
                            return(new ResultMessage <bool>(false, fsUploadResult.Status, fsUploadResult.Message));
                        }
                    }
                    transaction.Commit();
                }
                return(new ResultMessage <bool>(OperationStatus.Success));
            }
            catch (DbUpdateException ex)
            {
                return(new ResultMessage <bool>(false, _errorHandler.Handle(ex)));
            }
        }