Пример #1
0
        public ActionResult Create(MovieViewModel movie)
        {
            if (movie.UploadedFile == null)
            {
                ModelState.AddModelError("UploadedFile", "El campo Imagen es requerido.");
            }
            else if (!FileManager.FileHasValidTypeForImages(movie.UploadedFile))
            {
                ModelState.AddModelError("UploadedFile", "El campo Imagen permite archivos únicamente con formato JPG y PNG.");
            }

            if (ModelState.IsValid)
            {
                var categoriesSelected = db.MovieCategory.
                                         Where(item => movie.SelectedCategories.Contains(item.CategoryId.ToString())).
                                         Select(item => item.BitAssigned).ToList();

                movie.CategoriesAssigned = BitManager.GetBitsSum(categoriesSelected);
                movie.ImagePath          = FileManager.SaveMovieImage(movie.Name, movie.UploadedFile);
                Movie moviedb = ConvertViewModelToMovie(movie);
                db.Movie.Add(moviedb);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.AudienceClassificationId = new SelectList(db.AudienceClassification, "AudienceClassificationId", "Name", movie.AudienceClassificationId);
            return(View(movie));
        }
Пример #2
0
    // Use this for initialization
    void Start()
    {
        theScoreManager = FindObjectOfType <ScoreManager> ();
        theBitManager   = FindObjectOfType <BitManager> ();

        theGameManager = FindObjectOfType <GameManager> ();
    }
Пример #3
0
    // Use this for initialization
    void Start()
    {
        bitwallet  = FindObjectOfType <BitManager> ();
        isunlocked = false;

        characterManager = FindObjectOfType <CharacterManager> ();

        bitbotShop = FindObjectOfType <BuyBitbotsAndAds> ();
    }
Пример #4
0
        public static byte[] Decompress(byte[] compressedData)
        {
            using (var input = new ExtendedBinaryReader(new MemoryStream(compressedData), Encoding.GetEncoding(1252), Endianness.BigEndian))
                using (var output = new MemoryStream())
                {
                    var magic      = input.ReadUInt32();
                    var endianness = input.ReadByte();

                    input.Endianness = endianness == 0 ? Endianness.LittleEndian : Endianness.BigEndian;

                    var version    = input.ReadByte();
                    var headerSize = input.ReadUInt16();

                    var uncompressedSize = input.ReadUInt32();
                    var compressedSize   = input.ReadUInt32();

                    var block = new byte[18];

                    var manager = new BitManager(input);

                    while (input.Position < input.Length)
                    {
                        var type = manager.GetFlagType();

                        switch (type)
                        {
                        case FlagType.Literal:
                            output.WriteByte(input.ReadByte());

                            break;

                        case FlagType.Copy:
                            var(copyPosition, copyCount) = manager.GetCopyInfo();

                            output.Seek(-copyPosition, SeekOrigin.End);
                            output.Read(block, 0, copyCount);
                            output.Seek(0, SeekOrigin.End);
                            output.Write(block, 0, copyCount);

                            break;

                        default:
                            throw new ArgumentOutOfRangeException();
                        }
                    }

                    return(output.ToArray());
                }
        }
Пример #5
0
        private List <MovieRecomendationViewModel> GetRecomendations()
        {
            List <MovieRecomendationViewModel> recomendations   = new List <MovieRecomendationViewModel>();
            List <AvailableMovieViewModel>     cinemasAvailable = (List <AvailableMovieViewModel>)HttpContext.GetValuesFromCache(cinemasAvailableKey);

            if (User.Identity.IsAuthenticated)
            {
                var userId = User.Identity.GetUserId();
                var user   = db.User.Find(new Guid(userId));

                if (user != null && user.CategoryPreferences != 0)
                {
                    foreach (var item in cinemasAvailable)
                    {
                        if (BitManager.ContainsBit(user.CategoryPreferences, item.Category))
                        {
                            recomendations.Add(new MovieRecomendationViewModel()
                            {
                                MovieImagePath = item.MovieImagePath, MovieName = item.MovieName
                            });
                        }
                        if (recomendations.Count == 3)
                        {
                            break;
                        }
                    }
                }
            }

            if (recomendations.Count == 0)
            {
                foreach (var item in cinemasAvailable)
                {
                    recomendations.Add(new MovieRecomendationViewModel()
                    {
                        MovieImagePath = item.MovieImagePath, MovieName = item.MovieName
                    });
                    if (recomendations.Count == 3)
                    {
                        break;
                    }
                }
            }

            return(recomendations);
        }
Пример #6
0
        private IList <SelectListItem> GetCategoriesViewModels(long categoriesSelected)
        {
            List <SelectListItem> categoriesViewModels = new List <SelectListItem>();
            var movieCategories = db.MovieCategory.ToList();

            foreach (var item in movieCategories)
            {
                categoriesViewModels.Add(new SelectListItem()
                {
                    Text     = item.CategoryName,
                    Value    = item.CategoryId.ToString(),
                    Selected = BitManager.ContainsBit(categoriesSelected, item.BitAssigned)
                });
            }

            return(categoriesViewModels);
        }
Пример #7
0
        public ActionResult Index(IndexViewModel indexViewModel)
        {
            var userId = User.Identity.GetUserId();
            var user   = db.User.Find(new Guid(userId));

            if (user != null)
            {
                var categoriesSelected = db.MovieCategory.
                                         Where(item => indexViewModel.SelectedCategories.Contains(item.CategoryId.ToString())).
                                         Select(item => item.BitAssigned).ToList();

                user.CategoryPreferences = BitManager.GetBitsSum(categoriesSelected);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            return(View(indexViewModel));
        }
Пример #8
0
        public ActionResult Create([Bind(Include = "CategoryId,CategoryName")] MovieCategory movieCategory)
        {
            if (ModelState.IsValid)
            {
                #region Default Values

                long lastBitAssigned = (from item in db.MovieCategory select item.BitAssigned).Max();
                long bitToAssign     = BitManager.GetNextBitToAssign(lastBitAssigned);
                movieCategory.BitAssigned = bitToAssign;
                movieCategory.Status      = 1;

                #endregion

                db.MovieCategory.Add(movieCategory);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(movieCategory));
        }
Пример #9
0
        public static byte[] Compress(byte[] uncompressedData)
        {
            using (var ms = new MemoryStream())
                using (var output = new ExtendedBinaryWriter(ms, Encoding.GetEncoding(1252), Endianness.BigEndian))
                {
                    output.Write((uint)0x534c4c5a);
                    output.Write((byte)0x00);
                    output.Write((byte)0x01);

                    output.Endianness = Endianness.LittleEndian;

                    output.Write((ushort)0x0010);
                    output.Write((uint)uncompressedData.Length);
                    output.Write((uint)0);

                    var uncompressedSize = uncompressedData.Length;
                    var currentPosition  = 0;

                    var manager = new BitManager(output);

                    var queue        = new Queue <SllzItem>();
                    var itemsToWrite = 7; // La primera vez se escriben 7 elementos, el resto de las veces, 8

                    while (currentPosition < uncompressedSize)
                    {
                        var match = FindMatch(uncompressedData, currentPosition, true);

                        if (!match.Found)
                        {
                            var item = new SllzItem
                            {
                                IsLiteral = true,
                                Literal   = uncompressedData[currentPosition],
                                CopyFlags = 0
                            };

                            queue.Enqueue(item);

                            manager.SetFlagType(FlagType.Literal);
                        }
                        else
                        {
                            manager.SetFlagType(FlagType.Copy);

                            var copyCount    = (short)((match.Length - 3) & 0x0F);
                            var copyDistance = (short)((match.Distance - 1) << 4);
                            var tuple        = (short)(copyDistance | copyCount);

                            var item = new SllzItem
                            {
                                IsLiteral = false,
                                Literal   = 0,
                                CopyFlags = tuple
                            };

                            queue.Enqueue(item);
                        }

                        currentPosition += match.Length;

                        if (manager.IsByteChange)
                        {
                            for (var i = 0; i < itemsToWrite; i++)
                            {
                                var item = queue.Dequeue();
                                if (item.IsLiteral)
                                {
                                    output.Write(item.Literal);
                                }
                                else
                                {
                                    output.Write(item.CopyFlags);
                                }
                            }

                            itemsToWrite = 8;
                        }
                    }

                    manager.Flush();

                    if (queue.Count > 0)
                    {
                        while (queue.Count > 0)
                        {
                            var item = queue.Dequeue();
                            if (item.IsLiteral)
                            {
                                output.Write(item.Literal);
                            }
                            else
                            {
                                output.Write(item.CopyFlags);
                            }
                        }
                    }

                    var length = output.Length;
                    output.Seek(0x0C, SeekOrigin.Begin);
                    output.Write((uint)length);
                    return(ms.ToArray());
                }
        }