public async Task <HttpResponseMessage> PostAsync([FromBody] CharacterCreateViewModel newCharacter)
        {
            List <Character> charsKilled       = new List <Character>();
            Character        characterToCreate = new Character();

            if (newCharacter.charactersKilled != null)
            {
                newCharacter.charactersKilled.ToList().ForEach(c =>
                {
                    charsKilled.Add(_characterRepository.getCharacter(c));
                });
            }

            characterToCreate = Mapper.Map <CharacterCreateViewModel, Character>(newCharacter);

            if (newCharacter.avatar != "")
            {
                Bitmap bitImage = ImageHelper.bitmapFromBase64String(newCharacter.avatar);

                Models.Image.Builder img = new Models.Image.Builder(_imageRepository);
                img.setFormat(ImageHelper.getImageFormatFromBase64String(newCharacter.avatar));
                img.setType(image_type.Character);
                await img.fromBitmapAsync(bitImage, _env);

                var image = img.build();
                //characterToCreate.avatar = img.build();
                characterToCreate.avatarId = image.id;
                _imageRepository.addImage(image);
            }

            characterToCreate.charactersKilled = charsKilled;

            _characterRepository.addCharacter(characterToCreate);
            return(new HttpResponseMessage(HttpStatusCode.Created));
        }
        // GET: Characters/Create
        public IActionResult Create()
        {
            CharacterCreateViewModel model = new CharacterCreateViewModel(_context);


            return(View(model));
        }
示例#3
0
        private CharacterCreateViewModel PopulateLists(CharacterCreateViewModel model)
        {
            model.Races     = work.RaceRepository.GetAll().Select(e => RaceModel.GenerateRaceModelFromDTO(e)).ToList();
            model.Classes   = work.ClassRepository.GetAll().Select(e => ClassModel.GenerateClassModelFromDTO(e)).ToList();
            model.BaseStats = work.BaseStatRepository.GetAll().Select(e => BaseStatModel.GeneralBaseStatModelFromDTO(e)).ToList();
            model.Skills    = work.SkillRepository.GetAll().Select(e => SkillModel.GenerateSkillModelFromDTO(e));

            return(model);
        }
示例#4
0
        public IActionResult Create(int partyId)
        {
            var model = new CharacterCreateViewModel()
            {
                PartyId         = partyId,
                AvailableLevels = characterService.GetAvailableLevels(partyId)
            };

            return(View(model));
        }
        public IActionResult Create()
        {
            var races = _allRaces.Races.ToList();

            var characterViewModel = new CharacterCreateViewModel
            {
                CharClasses = _allClasses.CharClasses.ToList(),
                Races       = races.ToList()
            };

            ViewData["Title"] = "Новый персонаж";

            return(View(characterViewModel));
        }
示例#6
0
        public IActionResult Create(CharacterCreateViewModel model)
        {
            var character = model.Character;

            character.ExperiencePoints             = characterService.CalculateExperienceBasedOnLevel(model.Character.Level);
            character.Gold                         = characterService.CalculateGoldBasedOnLevel(model.Character.Level);
            character.PartyId                      = (int)model.PartyId;
            character.NumberOfConsumablesAvailable = (int)Math.Round((decimal)(model.Character.Level / 2), 0, MidpointRounding.AwayFromZero);

            using (var gloomhavenTrackerContext = (GloomhavenTrackerContext)provider.GetService(typeof(GloomhavenTrackerContext)))
            {
                gloomhavenTrackerContext.Characters.Add(model.Character);
                gloomhavenTrackerContext.SaveChanges();
            }

            return(RedirectToAction("Detail", "Character", new { id = model.Character.Id }));
        }
示例#7
0
        private string ProcessUploadedFile(CharacterCreateViewModel item)
        {
            string uniqueFileName = null;

//       if (item.Photo != null)
//       {
//         string uploadFolder = Path.Combine(_hostingEnv.WebRootPath, "images");
//         uniqueFileName = Guid.NewGuid().ToString() + "_" + item.Photo.FileName;
//         string filePath = Path.Combine(uploadFolder, uniqueFileName);
//
//         using (var fileStream = new FileStream(filePath, FileMode.Create))
//         {
//           item.Photo.CopyTo(fileStream);
//         }
//       }

            return(uniqueFileName);
        }
示例#8
0
        public IActionResult Create(int?gameID)
        {
            var model = new CharacterCreateViewModel();

            model.GameID = gameID;
            PopulateLists(model);

            model.CharacterModel = new CharacterModel()
            {
                BaseStats = model.BaseStats.Where(e => e.Default),
                Skills    = model.Skills.Where(e => e.Default)
            };

            foreach (var baseStat in model.CharacterModel.BaseStats)
            {
                baseStat.Value = 10;
            }

            return(View(model));
        }
示例#9
0
        public IActionResult Create(CharacterCreateViewModel item)
        {
//       if (ModelState.IsValid)
//       {
//         string uniqueFileName = ProcessUploadedFile(item);
//
//         Character character = new Character()
//         {
//           Name = item.Name,
//           Email = item.Email,
//           AccountType = item.AccountType,
//           ImagePath = uniqueFileName
//         };
//
//         _context.Add(character);
//         return RedirectToAction("Details", new { id = character.Id });
//       }

            return(View());
        }
示例#10
0
        public ActionResult Create(CharacterCreateViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // get the current user's account
            var account = m_session.Accounts.GetByEmail(User.Identity.Name);

            if (account == null)
            {
                return(RedirectToAction("Logout", "Account"));
            }

            try
            {
                // insert the desired character details
                var character = m_session.Characters.Insert(new Character
                {
                    Name    = model.Name,
                    Race    = model.Race,
                    Class   = model.Class,
                    Faction = model.Faction,
                    Account = account
                });

                // save the new character to the database
                if (m_session.SaveChanges())
                {
                    return(RedirectToAction("Index"));
                }
            }
            catch (DbEntityValidationException ex)
            {
                ControllerUtilities.MergeValidationErrors(ModelState, ex);
            }

            return(View(model));
        }
示例#11
0
        public async Task <IActionResult> Create([FromBody] CharacterCreateViewModel model)
        {
            var user = await m_UserManager.FindByIdAsync(model.UserId);

            var response = new CharacterCreateResponseViewModel();

            response.ErrorMessage = String.Empty;

            if (user == null)
            {
                response.ErrorMessage = "Invalid UserId";
                return(Json(response));
            }

            // Check name
            bool NameAlreadyTaken = m_Repository.GetAllCharacters().Any(item => item.Name == model.Name);

            if (NameAlreadyTaken)
            {
                response.ErrorMessage = "Name Already taken";
                return(Json(response));
            }

            Character character = new Character()
            {
                Name        = model.Name,
                AccountSlot = model.AccountSlot,
                Gender      = model.Gender,
                Race        = model.Race,
                Class       = model.Class,
                Realm       = model.Realm,
                Account     = user
            };

            m_Repository.Add(character);

            return(Json(response));
        }
        public IActionResult Create(Character character)
        {
            if (ModelState.IsValid)
            {
                var userId = _allUsers.Users.FirstOrDefault(u => u.Email == User.Identity.Name)?.Id;
                if (userId != null)
                {
                    character.UserId = userId.Value;
                }
                _character.CreateCharacter(character);
                return(RedirectToAction("Complete"));
            }

            var races = _allRaces.Races.ToList();

            var characterViewModel = new CharacterCreateViewModel
            {
                Character   = character,
                CharClasses = _allClasses.CharClasses.ToList(),
                Races       = races
            };

            return(View(characterViewModel));
        }
示例#13
0
        public ActionResult Create()
        {
            var model = new CharacterCreateViewModel();

            return(View(model));
        }
示例#14
0
        public IActionResult Create(CharacterCreateViewModel model, string submit, string deletestat, string deleteskill)
        {
            //this is kind of an abomination (but it works)

            if (!string.IsNullOrWhiteSpace(deletestat))
            {
                var baseStats = model.CharacterModel.BaseStats.ToList();
                baseStats.Remove(baseStats[int.Parse(deletestat)]);
                model.CharacterModel.BaseStats = baseStats;
                model = PopulateLists(model);

                foreach (var modelValue in ModelState.Values)
                {
                    modelValue.Errors.Clear();
                }
                return(View(model));
            }

            else if (!string.IsNullOrWhiteSpace(deleteskill))
            {
                var skills = model.CharacterModel.Skills.ToList();
                skills.Remove(skills[int.Parse(deleteskill)]);
                model.CharacterModel.Skills = skills;
                model = PopulateLists(model);


                foreach (var modelValue in ModelState.Values)
                {
                    modelValue.Errors.Clear();
                }
                return(View(model));
            }

            else
            {
                switch (submit)
                {
                case "statadd":
                    var baseStats = model.CharacterModel.BaseStats.ToList();
                    baseStats.Add(new BaseStatModel());
                    model.CharacterModel.BaseStats = baseStats;
                    model = PopulateLists(model);

                    foreach (var modelValue in ModelState.Values)
                    {
                        modelValue.Errors.Clear();
                    }
                    return(View(model));

                case "skilladd":
                    var skills = model.CharacterModel.Skills.ToList();
                    skills.Add(new SkillModel());
                    model.CharacterModel.Skills = skills;
                    model = PopulateLists(model);

                    foreach (var modelValue in ModelState.Values)
                    {
                        modelValue.Errors.Clear();
                    }
                    return(View(model));

                case "submit":
                    if (!ModelState.IsValid)
                    {
                        model = PopulateLists(model);

                        return(View(model));
                    }

                    work.TemplateCharacterRepository.Add(CharacterModel.GenerateCharacterDTOFromModel(model.CharacterModel));
                    work.Save();

                    if (model.GameID != null)
                    {
                        return(RedirectToAction("AddCharacter", "Game", new { id = model.GameID }));
                    }
                    return(RedirectToAction("Index"));

                default:
                    model = PopulateLists(model);

                    return(View(model));
                }
            }
        }
示例#15
0
        public async Task <IActionResult> Create([Bind("CharacterId,CharacterName,Gender,Level,ApplicationUserId,AncestryId")] Character character)
        {
            if (ModelState.IsValid)

            {
                //get current user and set user property on character to user
                ApplicationUser user = await GetCurrentUserAsync();

                character.ApplicationUserId = user.Id;

                //connection to veiw model
                CharacterCreateViewModel model = new CharacterCreateViewModel(_context);

                //make dropdown and assign to property on viewmodel
                model.AncestriesList = new SelectList(_context.Ancestry, "AncestryId", "AncestryId", character.AncestryId);

                //assign to property character on model
                model.Character = character;

                //if user selects non-human
                _context.Add(character);
                await _context.SaveChangesAsync();

                //if User select Human
                if (model.Character.AncestryId == 1)
                {
                    return(RedirectToAction("HumanAbilitiesForm", "HumanAbilities"));
                }

                else if (model.Character.AncestryId == 2)
                {
                    var abt = (from ab in _context.AncestryBaseTraits
                               join a in _context.Ancestry on ab.AncestryId equals a.AncestryId
                               where ab.AncestryId == 2
                               select ab.BaseValue)
                              .ToList();

                    CharTrait changelingTraitStrength = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 1,
                        CharTraitValue = abt.ElementAt(0).ToString()
                    };

                    //add to hold in db context
                    _context.Add(changelingTraitStrength);

                    CharTrait changelingTraitAgility = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 2,
                        CharTraitValue = abt.ElementAt(1).ToString()
                    };

                    //add to hold in db context
                    _context.Add(changelingTraitAgility);

                    CharTrait changelingTraitIntellect = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 3,
                        CharTraitValue = abt.ElementAt(2).ToString()
                    };

                    //add to hold in db context
                    _context.Add(changelingTraitIntellect);

                    CharTrait changelingTraitWill = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 4,
                        CharTraitValue = abt.ElementAt(3).ToString()
                    };

                    //add to hold in db context and save context to db
                    _context.Add(changelingTraitWill);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("UserHome", "ApplicationUser"));
                }
                //begin clockwork
                if (model.Character.AncestryId == 3)
                {
                    var abt = (from ab in _context.AncestryBaseTraits
                               join a in _context.Ancestry on ab.AncestryId equals a.AncestryId
                               where ab.AncestryId == 3
                               select ab.BaseValue)
                              .ToList();

                    CharTrait clockworkTraitStrength = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 1,
                        CharTraitValue = abt.ElementAt(0).ToString()
                    };

                    //add to hold in db context
                    _context.Add(clockworkTraitStrength);

                    CharTrait clockworkTraitAgility = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 2,
                        CharTraitValue = abt.ElementAt(1).ToString()
                    };

                    //add to hold in db context
                    _context.Add(clockworkTraitAgility);

                    CharTrait clockworkTraitIntellect = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 3,
                        CharTraitValue = abt.ElementAt(2).ToString()
                    };

                    //add to hold in db context
                    _context.Add(clockworkTraitIntellect);

                    CharTrait clockworkTraitWill = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 4,
                        CharTraitValue = abt.ElementAt(3).ToString()
                    };

                    //add to hold in db context and save context to db
                    _context.Add(clockworkTraitWill);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("Create", "ClockworkPurposes"));
                }
                //end clockwork
                //begin dwarf
                if (model.Character.AncestryId == 4)
                {
                    var abt = (from ab in _context.AncestryBaseTraits
                               join a in _context.Ancestry on ab.AncestryId equals a.AncestryId
                               where ab.AncestryId == 4
                               select ab.BaseValue)
                              .ToList();

                    CharTrait dwarfTraitStrength = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 1,
                        CharTraitValue = abt.ElementAt(0).ToString()
                    };

                    //add to hold in db context
                    _context.Add(dwarfTraitStrength);

                    CharTrait dwarfTraitAgility = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 2,
                        CharTraitValue = abt.ElementAt(1).ToString()
                    };

                    //add to hold in db context
                    _context.Add(dwarfTraitAgility);

                    CharTrait dwarfTraitIntellect = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 3,
                        CharTraitValue = abt.ElementAt(2).ToString()
                    };

                    //add to hold in db context
                    _context.Add(dwarfTraitIntellect);

                    CharTrait dwarfTraitWill = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 4,
                        CharTraitValue = abt.ElementAt(3).ToString()
                    };

                    //add to hold in db context and save context to db
                    _context.Add(dwarfTraitWill);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("UserHome", "ApplicationUser"));
                }
                //end dwarf
                //begin goblin
                if (model.Character.AncestryId == 5)
                {
                    var abt = (from ab in _context.AncestryBaseTraits
                               join a in _context.Ancestry on ab.AncestryId equals a.AncestryId
                               where ab.AncestryId == 5
                               select ab.BaseValue)
                              .ToList();

                    CharTrait goblinTraitStrength = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 1,
                        CharTraitValue = abt.ElementAt(0).ToString()
                    };

                    //add to hold in db context
                    _context.Add(goblinTraitStrength);

                    CharTrait goblinTraitAgility = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 2,
                        CharTraitValue = abt.ElementAt(1).ToString()
                    };

                    //add to hold in db context
                    _context.Add(goblinTraitAgility);

                    CharTrait goblinTraitIntellect = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 3,
                        CharTraitValue = abt.ElementAt(2).ToString()
                    };

                    //add to hold in db context
                    _context.Add(goblinTraitIntellect);

                    CharTrait goblinTraitWill = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 4,
                        CharTraitValue = abt.ElementAt(3).ToString()
                    };

                    //add to hold in db context and save context to db
                    _context.Add(goblinTraitWill);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("UserHome", "ApplicationUser"));
                }
                //end goblin
                //begin orc
                if (model.Character.AncestryId == 6)
                {
                    var abt = (from ab in _context.AncestryBaseTraits
                               join a in _context.Ancestry on ab.AncestryId equals a.AncestryId
                               where ab.AncestryId == 6
                               select ab.BaseValue)
                              .ToList();

                    CharTrait orcTraitStrength = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 1,
                        CharTraitValue = abt.ElementAt(0).ToString()
                    };

                    //add to hold in db context
                    _context.Add(orcTraitStrength);

                    CharTrait orcTraitAgility = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 2,
                        CharTraitValue = abt.ElementAt(1).ToString()
                    };

                    //add to hold in db context
                    _context.Add(orcTraitAgility);

                    CharTrait orcTraitIntellect = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 3,
                        CharTraitValue = abt.ElementAt(2).ToString()
                    };

                    //add to hold in db context
                    _context.Add(orcTraitIntellect);

                    CharTrait orcTraitWill = new CharTrait
                    {
                        CharacterId    = model.Character.CharacterId,
                        TraitId        = 4,
                        CharTraitValue = abt.ElementAt(3).ToString()
                    };

                    //add to hold in db context and save context to db
                    _context.Add(orcTraitWill);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("UserHome", "ApplicationUser"));
                }
                //end orc

                return(View(character));
            }
            return(View());
        }