예제 #1
0
        internal static void Extract(string gameDirectory)
        {
            FileStream ImageFile;

            try
            {
                ImageFile = File.OpenRead(gameDirectory + "/scenes/scenes.image");
            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine("Didn't find scenes.image");
                Console.WriteLine(e.Message);
                return;
            }
            catch (UnauthorizedAccessException f)
            {
                Console.WriteLine("Cannot read scenes.image file.");
                Console.WriteLine(f.Message);
                return;
            }
            MemoryStream image = new MemoryStream();

            ImageFile.CopyTo(image);
            ImageFile.Close();
            image.Position = 0;
            VSIF_Header Header = PopulateHeader(image);

            if (Header.ID != Common.FourCC("VSIF", false))
            {
                Console.WriteLine("Scenes.image has incorrect Magic");
                return;
            }
            if (Header.Version != 2)
            {
                Console.WriteLine("Scenes.image has incorrect version");
                return;
            }
            if (Header.ScenesCount == 0)
            {
                Console.WriteLine("Scenes.image is empty");
                return;
            }
            Console.WriteLine("Extracting scenes.image ({0} scenes)\n", Header.ScenesCount);

            /* Extraction */
            for (int i = 0; i < Header.ScenesCount; i++)
            {
                ExtractScene(ref image, i, Header); //there's only one VSIF Header
            }
            //VSIF_ExtractScene(Image, i, Maps, MapsCount, GameDirectory);

            //free(Image);
            //printf("Finished extracting scenes from game %s\n", GameDirectory);
            //return 0;
            image.Close();
            Console.WriteLine("Finished extracting scenes from {0}", gameDirectory);
        }
        public string GetFileString()
        {
            string fileString;

            using (MemoryStream ms = new MemoryStream())
            {
                ImageFile.CopyTo(ms);
                byte[] array = ms.GetBuffer();
                fileString = Convert.ToBase64String(array);
            }

            return(fileString);
        }
        public async Task <IActionResult> OnPostAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            var userid      = _userManager.GetUserId(User);
            var userprofile = _context.UserProfiles.Where(u => u.UserId == userid).FirstOrDefault();

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            if (!ModelState.IsValid)
            {
                await LoadAsync(user);

                return(Page());
            }

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            var fName = userprofile.FirstName;
            var lName = userprofile.LastName;

            if (Input.PhoneNumber != phoneNumber)
            {
                var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, Input.PhoneNumber);

                if (!setPhoneResult.Succeeded)
                {
                    StatusMessage = "Unexpected error when trying to set phone number.";
                    return(RedirectToPage());
                }
            }

            if (Input.FirstName != fName)
            {
                userprofile.FirstName = Input.FirstName;
            }

            if (Input.LastName != lName)
            {
                userprofile.LastName = Input.LastName;
            }

            string fileName = string.Empty;
            string uploads  = Path.Combine(hosting.WebRootPath, "Upload/images");

            if (ImageFile != null)
            {
                fileName = Guid.NewGuid().ToString() + "_" + ImageFile.FileName;

                //image path
                string Fullpath = Path.Combine(uploads, fileName);

                //copy (upload) image to that path
                ImageFile.CopyTo(new FileStream(Fullpath, FileMode.Create));

                //if (userprofile.Image != null)
                //{
                //    string OldImgPath = Path.Combine(uploads, userprofile.Image);
                //    try
                //    {
                //        System.IO.File.Delete(OldImgPath);
                //    }
                //    catch
                //    {
                //        StatusMessage = "Unexpected error when trying to set Photo.";
                //    }
                //}
                userprofile.Image = fileName;
            }
            else
            {
                if (RemoveImage == "true")
                {
                    if (userprofile.Image != null)
                    {
                        System.IO.File.Delete(Path.Combine(uploads, userprofile.Image));
                    }

                    userprofile.Image = null;
                }
            }

            _context.SaveChanges();
            await _signInManager.RefreshSignInAsync(user);

            StatusMessage = "Your profile has been updated";

            return(RedirectToPage());
        }