Ejemplo n.º 1
0
        public async Task<ActionResult> Edit(CharacterDbModel character)
        {
            if (ModelState.IsValid)
            {
                var user = db.Users.Find(User.Identity.GetUserId());

                Character characterModel =
                    new Character(
                        Request.Form,
                        Request.Files,
                        user);

                CharacterDbModel dbModel =
                    new CharacterDbModel(
                        characterModel,
                        user);

                db.Entry(character).State = EntityState.Modified;
                await db.SaveChangesAsync();
                return RedirectToAction("Index");
            }
            return View(character);
        }
Ejemplo n.º 2
0
        public async Task<ActionResult> Create(CharacterViewModel Model)
        {
            if (ModelState.IsValid)
            {
                var user = db.Users.Find(User.Identity.GetUserId());

                Character characterModel = 
                    new Character(
                        Request.Form,
                        Request.Files,
                        user);

                CharacterDbModel dbModel = 
                    new CharacterDbModel(
                        characterModel,
                        user);

                db.Characters.Add(dbModel);
                await db.SaveChangesAsync();
                return RedirectToAction("Index");
            }

            return View(Model);
        }
Ejemplo n.º 3
0
        // Konstruktor tworzący gotowy model. Dane pobiera zarówno z bazy danych, jak i z pliku
        // XML, dlatego warto upewnić się, że plik rzeczywiście istnieje.
        //
        // todo: Obsługa wyjątków w przypadku, gdy odczytywanie pliku nie powiedzie się:
        //       * ArgumentNullException    - gdy nie zostanie przekazana nazwa pliku (CharacterID)
        //       * FileNotFoundException    - gdy plik nie istnieje
        //       * NullReferenceException   - następstwo dwóch poprzednich, powstanie pusty obiekt,
        //                                    z którego będziemy próbowali odczytać dane
        /// <summary>Tworzy kompletny obiekt gracza zawierający wszystkie informacje</summary>
        /// <param name="characterDb">Model z danymi z bazy</param>
        public Character(
            CharacterDbModel characterDb
            )
        {
            // Przepisywanie danych do obiektu z bazy danych
            CharacterID = characterDb.CharacterID;
            ChartID     = characterDb.ChartID;
            UserID      = characterDb.UserID;
            Name        = characterDb.CharacterName;
            AvatarImg   = characterDb.AvatarImgSrc;

            // Uzupełnianie danych użytkownika, który stworzył gracza
            if (UserID != null)
            {
                UserData = new User(ApplicationDbContext.Create().Users.Find(UserID));
            }
            else UserData = null;

            // Odczytywanie pliku XML
            // UWAGA - Nie sprawdza, czy plik istnieje, możliwy wyjątek!
            XmlModels.Character characterXml = new XmlModels.Character(CharacterID);

            // Przepisywanie danych do obiektu z pliku XML
            Data            = DefaultMethods.ToDictionary(characterXml.Data);
            Stats           = DefaultMethods.ToDictionary(characterXml.Stat);
            Attributes      = DefaultMethods.ToDictionary(characterXml.Attribute);
            Skills          = DefaultMethods.ToDictionary(characterXml.Skill);
            if (characterXml.Equipment != null)
            Equipment   = characterXml.Equipment.ToArray();
            else
                Equipment   = null;
            if (characterXml.Description != null)
                Description = characterXml.Description.ToString();
            else
                Description = null;
        }