public List <CustomFormat> ParseCustomFormat(MovieHistory history)
        {
            var movie  = _movieService.GetMovie(history.MovieId);
            var parsed = _parsingService.ParseMovieInfo(history.SourceTitle, null);

            Enum.TryParse(history.Data.GetValueOrDefault("indexerFlags"), true, out IndexerFlags flags);
            long.TryParse(history.Data.GetValueOrDefault("size"), out var size);

            var info = new ParsedMovieInfo
            {
                MovieTitle         = movie.Title,
                SimpleReleaseTitle = parsed?.SimpleReleaseTitle ?? history.SourceTitle.SimplifyReleaseTitle(),
                Quality            = history.Quality,
                Languages          = history.Languages,
                ReleaseGroup       = parsed?.ReleaseGroup,
                Edition            = parsed?.Edition,
                Year      = movie.Year,
                ImdbId    = movie.ImdbId,
                ExtraInfo = new Dictionary <string, object>
                {
                    { "IndexerFlags", flags },
                    { "Size", size }
                }
            };

            return(ParseCustomFormat(info));
        }
Exemple #2
0
        public static HistoryResource ToResource(this MovieHistory model, ICustomFormatCalculationService formatCalculator)
        {
            if (model == null)
            {
                return(null);
            }

            return(new HistoryResource
            {
                Id = model.Id,

                MovieId = model.MovieId,
                SourceTitle = model.SourceTitle,
                Languages = model.Languages,
                Quality = model.Quality,
                CustomFormats = formatCalculator.ParseCustomFormat(model).ToResource(),

                //QualityCutoffNotMet
                Date = model.Date,
                DownloadId = model.DownloadId,

                EventType = model.EventType,

                Data = model.Data
            });
        }
Exemple #3
0
        protected HistoryResource MapToResource(MovieHistory model)
        {
            var resource = model.ToResource();

            resource.Movie = model.Movie.ToResource();

            if (model.Movie != null)
            {
                resource.QualityCutoffNotMet = _qualityUpgradableSpecification.QualityCutoffNotMet(model.Movie.Profile, model.Quality);
            }

            return(resource);
        }
        public MovieHistory Save(int idMovie, MovieHistory history)
        {
            history.DtCreation = DateTime.Now;
            history.IdMovie    = idMovie;

            if (history.IdMovieHistory == 0)
            {
                history.IdMovieHistory = (int)db.InsertEntity(history);
            }
            else
            {
                throw new Exception($"Already have an ID for this movieHistory: {history.IdMovieHistory}");
            }

            return(history);
        }
        // ---------------------------------------------------------------------------
        public void Write(Stream stream)
        {
            MovieLinks1   ml  = new MovieLinks1();
            MovieHistory  mh  = new MovieHistory();
            List <byte[]> pdf = new List <byte[]>()
            {
                Utility.PdfBytes(ml),
                Utility.PdfBytes(mh)
            };

            string[] names = { ml.ToString(), mh.ToString() };
            using (ZipFile zip = new ZipFile())
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    // step 1
                    using (Document document = new Document())
                    {
                        // step 2
                        using (PdfCopy copy = new PdfCopy(document, ms))
                        {
                            // step 3
                            document.Open();
                            // step 4
                            for (int i = 0; i < pdf.Count; ++i)
                            {
                                zip.AddEntry(Utility.ResultFileName(names[i] + ".pdf"), pdf[i]);
                                PdfReader reader = new PdfReader(pdf[i]);
                                // loop over the pages in that document
                                int n = reader.NumberOfPages;
                                for (int page = 0; page < n;)
                                {
                                    copy.AddPage(copy.GetImportedPage(reader, ++page));
                                }
                                copy.FreeReader(reader);
                                reader.Close();
                            }
                        }
                    }
                    zip.AddEntry(RESULT, ms.ToArray());
                }
                zip.Save(stream);
            }
        }
Exemple #6
0
// ---------------------------------------------------------------------------
        public void Write(Stream stream)
        {
            using (ZipFile zip = new ZipFile()) {
                MovieTemplates      m        = new MovieTemplates();
                byte[]              pdf      = Utility.PdfBytes(m);
                BookmarkedTimeTable b        = new BookmarkedTimeTable();
                byte[]              bttBytes = b.ManipulatePdf(pdf);
                MovieHistory        mh       = new MovieHistory();
                byte[]              mhBytes  = Utility.PdfBytes(mh);
                List <byte[]>       src      = new List <byte[]>()
                {
                    bttBytes, mhBytes
                };
                ConcatenateBookmarks cb = new ConcatenateBookmarks();
                zip.AddEntry(RESULT, cb.ManipulatePdf(src));
                zip.AddEntry(Utility.ResultFileName(b.ToString() + ".pdf"), bttBytes);
                zip.AddEntry(Utility.ResultFileName(mh.ToString() + ".pdf"), mhBytes);
                zip.Save(stream);
            }
        }
Exemple #7
0
        protected HistoryResource MapToResource(MovieHistory model, bool includeMovie)
        {
            if (model.Movie == null)
            {
                model.Movie = _movieService.GetMovie(model.MovieId);
            }

            var resource = model.ToResource(_formatCalculator);

            if (includeMovie)
            {
                resource.Movie = model.Movie.ToResource(0);
            }

            if (model.Movie != null)
            {
                resource.QualityCutoffNotMet = _upgradableSpecification.QualityCutoffNotMet(model.Movie.Profile, model.Quality);
            }

            return(resource);
        }
Exemple #8
0
        public static HistoryResource ToResource(this MovieHistory model)
        {
            if (model == null)
            {
                return(null);
            }

            return(new HistoryResource
            {
                Id = model.Id,
                MovieId = model.MovieId,
                SourceTitle = model.SourceTitle,
                Quality = model.Quality,

                //QualityCutoffNotMet
                Date = model.Date,
                DownloadId = model.DownloadId,

                EventType = model.EventType,

                Data = model.Data
            });
        }
Exemple #9
0
// ---------------------------------------------------------------------------
        public void Write(Stream stream)
        {
            using (ZipFile zip = new ZipFile()) {
                MovieLinks1  ml = new MovieLinks1();
                byte[]       r1 = Utility.PdfBytes(ml);
                MovieHistory mh = new MovieHistory();
                byte[]       r2 = Utility.PdfBytes(mh);
                using (MemoryStream ms = new MemoryStream()) {
                    // step 1
                    using (Document document = new Document()) {
                        // step 2
                        using (PdfCopy copy = new PdfCopy(document, ms)) {
                            // step 3
                            document.Open();
                            // step 4
                            // reader for document 1
                            PdfReader reader1 = new PdfReader(r1);
                            int       n1      = reader1.NumberOfPages;
                            // reader for document 2
                            PdfReader reader2 = new PdfReader(r2);
                            int       n2      = reader2.NumberOfPages;
                            // initializations
                            PdfImportedPage   page;
                            PdfCopy.PageStamp stamp;
                            // Loop over the pages of document 1
                            for (int i = 0; i < n1;)
                            {
                                page  = copy.GetImportedPage(reader1, ++i);
                                stamp = copy.CreatePageStamp(page);
                                // add page numbers
                                ColumnText.ShowTextAligned(
                                    stamp.GetUnderContent(), Element.ALIGN_CENTER,
                                    new Phrase(string.Format("page {0} of {1}", i, n1 + n2)),
                                    297.5f, 28, 0
                                    );
                                stamp.AlterContents();
                                copy.AddPage(page);
                            }

                            // Loop over the pages of document 2
                            for (int i = 0; i < n2;)
                            {
                                page  = copy.GetImportedPage(reader2, ++i);
                                stamp = copy.CreatePageStamp(page);
                                // add page numbers
                                ColumnText.ShowTextAligned(
                                    stamp.GetUnderContent(), Element.ALIGN_CENTER,
                                    new Phrase(string.Format("page {0} of {1}", n1 + i, n1 + n2)),
                                    297.5f, 28, 0
                                    );
                                stamp.AlterContents();
                                copy.AddPage(page);
                            }
                        }
                    }
                    zip.AddEntry(RESULT, ms.ToArray());
                    zip.AddEntry(Utility.ResultFileName(ml.ToString() + ".pdf"), r1);
                    zip.AddEntry(Utility.ResultFileName(mh.ToString() + ".pdf"), r2);
                }
                zip.Save(stream);
            }
        }
        private ActionResult SaveMovie(int?id, RegisterEditMovieViewModel formData)
        {
            if (!ModelState.IsValid)
            {
                PopulateViewBag();
                return(View());
            }

            var userId = User.Identity.GetUserId();

            if (MoviesHelper.CheckIfMovieAlreadyExists(id,
                                                       formData.MovieName,
                                                       userId))
            {
                ModelState.AddModelError(nameof(RegisterEditMovieViewModel.MovieName),
                                         "Movie name should be unique");

                PopulateViewBag();
                return(View());
            }

            string fileExtension;

            //Validating file upload
            if (formData.Media != null)
            {
                fileExtension = Path.GetExtension(formData.Media.FileName);

                if (!Constants.AllowedFileExtensions.Contains(fileExtension))
                {
                    ModelState.AddModelError("", "File extension is not allowed.");
                    PopulateViewBag();
                    return(View());
                }
            }

            Movie movie;

            if (!id.HasValue)
            {
                movie        = new Movie();
                movie.UserId = userId;
                DbContext.Movies.Add(movie);
            }
            else
            {
                movie = MoviesHelper.GetMovieById(id.Value, userId);

                if (movie == null)
                {
                    return(RedirectToAction(nameof(MovieController.Index)));
                }

                movie.DateUpdated = DateTime.Now;
            }

            movie.Name        = formData.MovieName;
            movie.Rating      = formData.Rating.Value;
            movie.Category    = formData.Category;
            movie.Description = formData.Description;

            //Handling file upload
            if (formData.Media != null)
            {
                if (!Directory.Exists(Constants.MappedUploadFolder))
                {
                    Directory.CreateDirectory(Constants.MappedUploadFolder);
                }

                var fileName         = formData.Media.FileName;
                var fullPathWithName = Constants.MappedUploadFolder + fileName;

                formData.Media.SaveAs(fullPathWithName);

                movie.MediaUrl = Constants.UploadFolder + fileName;
            }

            if (id.HasValue)
            {
                var originalValues = DbContext.Entry(movie).OriginalValues;
                var currentValues  = DbContext.Entry(movie).CurrentValues;

                foreach (var property in originalValues.PropertyNames)
                {
                    if (property == nameof(Movie.DateUpdated))
                    {
                        continue;
                    }

                    var originalValue = originalValues[property]?.ToString();
                    var currentValue  = currentValues[property]?.ToString();

                    if (originalValue != currentValue)
                    {
                        var history = new MovieHistory();
                        history.OldValue    = originalValue;
                        history.NewValue    = currentValue;
                        history.DateCreated = DateTime.Now;
                        history.Property    = property;
                        history.MovieId     = id.Value;

                        DbContext.MovieHistories.Add(history);
                    }
                }
            }

            DbContext.SaveChanges();

            return(RedirectToAction(nameof(MovieController.Index)));
        }