示例#1
0
        public SlideResponseDto UpdateSlide(int id, SlideDto slide)
        {
            DbContextTransaction transaction = db.Database.BeginTransaction();

            try
            {
                var slideFromDb = db.Slides.FirstOrDefault(n => !n.DelFlag && n.Id == id);
                if (slide == null)
                {
                    return(null);
                }
                slideFromDb.Title    = slide.Title;
                slideFromDb.Path     = slide.Path;
                slideFromDb.ImageUrl = slide.ImageUrl;
                slideFromDb.IsShown  = slide.IsShown;
                db.SaveChanges();
                transaction.Commit();
                return(new SlideResponseDto(slideFromDb));
            }
            catch (Exception)
            {
                transaction.Rollback();
                return(null);
            }
        }
示例#2
0
        public async Task <IActionResult> GetSlide(string presenter, string slug, int number, CancellationToken ct)
        {
            var slide = await _context.Slides
                        .SingleOrDefaultAsync(s => s.Show.Presenter == presenter && s.Show.Slug == slug && s.Number == number, ct)
                        .ConfigureAwait(false);

            return(slide == null?NotFound() : Ok(SlideDto.FromSlide(presenter, slug, slide)));
        }
示例#3
0
        public async Task <IActionResult> GetLatestSlide(string presenter, string slug, CancellationToken ct)
        {
            var slide = await _context.Slides
                        .Where(s => s.Show.Presenter == presenter && s.Show.Slug == slug && s.HasBeenShown)
                        .OrderByDescending(s => s.Number)
                        .Take(1)
                        .SingleOrDefaultAsync(ct)
                        .ConfigureAwait(false);

            return(slide == null?NotFound() : Ok(SlideDto.FromSlide(presenter, slug, slide)));
        }
        public static SlideDto ToSlideDto(this Slide slide)
        {
            var s = new SlideDto
            {
                _id       = slide._id,
                Title     = slide.Title,
                Hidden    = (slide.Hidden == false) ? "Hidden" : "Visible",
                ChapterId = slide.ChapterId.ToString(),
                CDate     = slide.CDate.ToString("MM/dd/yyyy HH:mm:ss.fff",
                                                 CultureInfo.InvariantCulture)
            };

            return(s);
        }
示例#5
0
        public void CanListSlides()
        {
            // Establish Context
            IList <SlideDto> slideSummariesToExpect = new List <SlideDto>();

            SlideDto slideDto = new SlideDto();

            slideSummariesToExpect.Add(slideDto);

            slideManagementService.Expect(r => r.GetSlideSummaries())
            .Return(slideSummariesToExpect);

            // Act
            ViewResult result = slidesController.Index().AssertViewRendered();

            // Assert
            result.ViewData.Model.ShouldNotBeNull();
            (result.ViewData.Model as IList <SlideDto>).ShouldNotBeNull();
            (result.ViewData.Model as IList <SlideDto>).Count.ShouldEqual(1);
        }
        public IHttpActionResult UpdateSlide(int id, [FromBody] SlideDto slideDto)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var result = _slideService.UpdateSlide(id, slideDto);
                if (result == null)
                {
                    return(BadRequest("An error occurred when updating slide. Please try again."));
                }
                return(Ok(result));
            }
            catch (System.Exception e)
            {
                return(InternalServerError(e));
            }
        }
示例#7
0
        public void CanGetSlideSummaries()
        {
            // Establish Context
            IList <SlideDto> slideSummariesToExpect = new List <SlideDto>();

            SlideDto slideDto = new SlideDto();

            slideSummariesToExpect.Add(slideDto);

            slideRepository.Expect(r => r.GetSlideSummaries())
            .Return(slideSummariesToExpect);

            // Act
            IList <SlideDto> slideSummariesRetrieved =
                slideManagementService.GetSlideSummaries();

            // Assert
            slideSummariesRetrieved.ShouldNotBeNull();
            slideSummariesRetrieved.Count.ShouldEqual(1);
            slideSummariesRetrieved[0].ShouldNotBeNull();
            slideSummariesRetrieved[0].ShouldEqual(slideDto);
        }
        public async Task <IActionResult> PhotoUpload(int id, [FromForm] SlideDto slideDto)
        {
            // Slide slide = new Slide();
            // var file = slideDto.File;

            // if (file.Length > 0)
            // {
            //     MemoryStream ms = new MemoryStream();
            //         file.CopyTo(ms);
            //         slide.Image = ms.ToArray();
            //     var result = await _repo.InsertAsync(slide);
            // }
            // return Ok(slide);
            var slideFromRepo = await _repo.GetByIDAsync(id);

            var file = slideDto.File;

            if (file.Length > 0)
            {
                string ImageName = id.ToString() + Path.GetExtension(file.FileName);
                string SavePath  = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/assets/slide", ImageName);
                //string RelatedPath = Path.Combine("../wwwroot/img", ImageName);
                string RelatedPath = Path.Combine("~/wwwroot/assets/slide", ImageName);
                slideFromRepo.ImageUrl = "/assets/slide" + "/" + ImageName;
                MemoryStream ms = new MemoryStream();
                file.CopyTo(ms);
                //slideFromRepo.Image = ms.ToArray();
                var result = await _repo.UpdateAsync(slideFromRepo);

                using (var stream = new FileStream(SavePath, FileMode.Create))
                {
                    file.CopyTo(stream);
                }
            }
            return(Ok(slideFromRepo));
        }
示例#9
0
        public SlideResponseDto AddSlide(SlideDto slide)
        {
            DbContextTransaction transaction = db.Database.BeginTransaction();

            try
            {
                var newslide = db.Slides.Add(new EM.Database.Schema.Slide
                {
                    Title    = slide.Title,
                    ImageUrl = slide.ImageUrl,
                    Path     = slide.Path,
                    IsShown  = slide.IsShown
                });

                db.SaveChanges();
                transaction.Commit();
                return(new SlideResponseDto(newslide));
            }
            catch (Exception)
            {
                transaction.Rollback();
                return(null);
            }
        }