예제 #1
0
        /// <summary>
        /// ثبت یک آیتم در جدول مورد نظر
        /// </summary>
        /// <param name="model">مدلی که از سمت کلاینت در حال پاس دادن آن هستیم</param>
        /// <returns></returns>
        public async Task <SweetAlertExtenstion> AddAsync(SubProjectInsertViewModel model)
        {
            try
            {
                var entity = Mapper.Map <SubProject>(model);

                #region InsertFiles

                #region Book Or Sheet
                entity.BookOrSeet = await MFile.Save(model.BookOrSeetAddress, "Uploads/BookOrSeet");

                #endregion

                #region Book Cover
                if (model.BookCoverAddress != null)
                {
                    entity.BookCover = await MFile.Save(model.BookCoverAddress, "Uploads/BookCover");
                }
                #endregion

                #endregion

                if (entity.SubProjectType == DataLayer.SSOT.ProjectTypeSSOT.Book)
                {
                    //TODO check .PDF
                    //if (Path.GetExtension(entity.BookOrSeet).ToLower() == "pdf")
                    {
                        string    filePath  = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/" + entity.BookOrSeet);
                        PdfReader pdfReader = new PdfReader(filePath);
                        entity.BookPageNumber = pdfReader.NumberOfPages;
                    }
                }

                await Entities.AddAsync(entity);

                await DbContext.SaveChangesAsync();

                return(SweetAlertExtenstion.Ok());
            }
            catch (Exception e)
            {
                return(SweetAlertExtenstion.Error());
            }
        }
        public async Task <IActionResult> Insert(SubProjectInsertViewModel model)
        {
            TempData.AddResult(await _subProjectRepository.AddAsync(model));

            return(RedirectToAction("Index", new { id = model.ProjectId }));
        }