コード例 #1
0
        public async Task <ActionResult <Character> > PostCharacter(CharacterDTO character)
        {
            character.UserName = User.FindFirst("UserName").Value;

            await _character.Create(character);

            await _log.CreateLog(HttpContext, User.FindFirst("UserName").Value);

            return(CreatedAtAction("GetCharacter", new { id = character.Id }, character));
        }
コード例 #2
0
 /// <summary>
 /// Gets the game character dto.
 /// </summary>
 /// <param name="id">The identifier.</param>
 /// <returns></returns>
 internal static CharacterDTO GetDTO(DndDmHelperContext context, int id)
 {
     return(context.GameCharacters
            .Include(e => e.Race)
            .Include(e => e.Class)
            .Include(e => e.BaseStats)
            .ThenInclude(e => e.BaseStat)
            .Select(e => CharacterDTO.GenerateDTOFromGameCharacter(e))
            .FirstOrDefault(e => e.ID == id));
 }
コード例 #3
0
        public void EditCharacter(CharacterDTO c)
        {
            var character = _characters.FindBy(ch => ch.CharacterId == c.CharacterId).Single();

            character.Name      = c.Name;
            character.Level     = c.Level;
            character.Spellbook = ToSpellList(c.Spellbook);

            _characters.Save();
        }
コード例 #4
0
        public CharacterInfoControl(CharacterDTO character)
        {
            InitializeComponent();
            lblName.Text = character.Name;
            ResourceManager resourceManager = new ResourceManager("FableWorld.Resources", GetType().Assembly);
            Bitmap          image           = (Bitmap)resourceManager.GetObject("Warrior");


            pbCharacter1.Image = image;
        }
コード例 #5
0
ファイル: CharacterDAO.cs プロジェクト: unknownforces/OpenNos
        private CharacterDTO Update(Character entity, CharacterDTO character, OpenNosContext context)
        {
            if (entity != null)
            {
                _mapper.Map(character, entity);
                context.SaveChanges();
            }

            return(_mapper.Map <CharacterDTO>(entity));
        }
コード例 #6
0
        public async Task <IActionResult> Create(CharacterDTO character)
        {
            if (ModelState.IsValid)
            {
                await _character.Create(character);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(character));
        }
コード例 #7
0
 private Character ToCharacter(CharacterDTO dto)
 {
     return(new Character()
     {
         CharacterId = dto.CharacterId,
         Name = dto.Name,
         Level = dto.Level,
         Spellbook = ToSpellList(dto.Spellbook)
     });
 }
コード例 #8
0
        public async Task <ActionResult <CharacterDTO> > GetCharacter(int id)
        {
            CharacterDTO character = new CharacterDTO(await repository.Read(id));

            if (character == null)
            {
                return(NotFound());
            }

            return(character);
        }
コード例 #9
0
        internal Character ConvertCharacter(CharacterDTO character)
        {
            int maxLength = 20;

            if (maxLength < character.Name.Length || string.IsNullOrEmpty(character.Name) || string.IsNullOrEmpty(character.SpecializationName))
            {
                throw new ArgumentOutOfRangeException();
            }

            return(new Character(character.CharacterId, character.Name, character.CreatedOn, character.SpecializationName, character.Score));
        }
コード例 #10
0
        public async Task <IActionResult> Post(CharacterDTO newCharacter)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var characterCreationResult = await _characterEditor.Create(newCharacter);

            return(HandleResponseDefault(characterCreationResult,
                                         () => CreatedAtAction(nameof(Get), new { id = characterCreationResult.Value.Id }, characterCreationResult.Value)));
        }
コード例 #11
0
        public void ConvertCharacterDTOFailTest()
        {
            //Arrange
            CharacterCollection characterCollection = new CharacterCollection(new CharacterMemoryContext());
            DateTime            date      = DateTime.Now;
            CharacterDTO        character = new CharacterDTO(0, "John", date, "Paladin", 200);
            //Act
            Character convertedCharacter = characterCollection.ConvertCharacter(character);

            //Assert
            Assert.AreNotEqual(new Character(0, "John", date, "Wizard", 200), convertedCharacter);
        }
コード例 #12
0
ファイル: FamilyPacketHandler.cs プロジェクト: Uneska/OpenNos
        public void FamilyKick(string packet)
        {
            string[] packetsplit = packet.Split(' ');
            if (packetsplit.Length == 3)
            {
                if (Session.Character.Family == null || Session.Character.FamilyCharacter == null)
                {
                    return;
                }
                if (Session.Character.FamilyCharacter.Authority == FamilyAuthority.Member)
                {
                    Session.SendPacket(Session.Character.GenerateInfo(string.Format(Language.Instance.GetMessageFromKey("NOT_ALLOWED_KICK"))));
                    return;
                }
                ClientSession kickSession = ServerManager.Instance.GetSessionByCharacterName(packetsplit[2]);
                if (kickSession != null && kickSession.Character.Family?.FamilyId == Session.Character.Family.FamilyId)
                {
                    if (kickSession.Character.FamilyCharacter?.Authority == FamilyAuthority.Head)
                    {
                        Session.SendPacket(Session.Character.GenerateInfo(Language.Instance.GetMessageFromKey("CANT_KICK_HEAD")));
                        return;
                    }
                    if (kickSession.Character.CharacterId == Session.Character.CharacterId)
                    {
                        Session.SendPacket(Session.Character.GenerateInfo(Language.Instance.GetMessageFromKey("CANT_KICK_YOURSELF")));
                        return;
                    }
                    DAOFactory.FamilyCharacterDAO.Delete(packetsplit[2]);
                    Session.Character.Family.InsertFamilyLog(FamilyLogType.FamilyManage, kickSession.Character.Name, "", "", "", 0, 0, 0, 0, 0);

                    System.Reactive.Linq.Observable.Timer(TimeSpan.FromMilliseconds(100))
                    .Subscribe(
                        o =>
                    {
                        kickSession.CurrentMapInstance?.Broadcast(kickSession.Character.GenerateGidx());
                    });
                }
                else
                {
                    CharacterDTO dbCharacter = DAOFactory.CharacterDAO.LoadByName(packetsplit[2]);
                    if (dbCharacter != null)
                    {
                        FamilyCharacterDTO dbFamilyCharacter = DAOFactory.FamilyCharacterDAO.LoadByCharacterId(dbCharacter.CharacterId);
                        if (dbFamilyCharacter != null && dbFamilyCharacter.FamilyId == Session.Character.Family.FamilyId)
                        {
                            DAOFactory.FamilyCharacterDAO.Delete(packetsplit[2]);
                            Session.Character.Family.InsertFamilyLog(FamilyLogType.FamilyManage, dbCharacter.Name, "", "", "", 0, 0, 0, 0, 0);
                        }
                    }
                }
            }
        }
コード例 #13
0
        public void FamilyKick(string packet)
        {
            string[] packetsplit = packet.Split(' ');
            if (packetsplit.Length == 3)
            {
                if (Session.Character.Family == null || Session.Character.FamilyCharacter == null)
                {
                    return;
                }
                if (Session.Character.FamilyCharacter.Authority == FamilyAuthority.Member)
                {
                    Session.SendPacket(UserInterfaceHelper.Instance.GenerateInfo(string.Format(Language.Instance.GetMessageFromKey("NOT_ALLOWED_KICK"))));
                    return;
                }
                ClientSession kickSession = ServerManager.Instance.GetSessionByCharacterName(packetsplit[2]);
                if (kickSession != null && kickSession.Character.Family?.FamilyId == Session.Character.Family.FamilyId)
                {
                    if (kickSession.Character.FamilyCharacter?.Authority == FamilyAuthority.Head)
                    {
                        Session.SendPacket(UserInterfaceHelper.Instance.GenerateInfo(Language.Instance.GetMessageFromKey("CANT_KICK_HEAD")));
                        return;
                    }
                    if (kickSession.Character.CharacterId == Session.Character.CharacterId)
                    {
                        Session.SendPacket(UserInterfaceHelper.Instance.GenerateInfo(Language.Instance.GetMessageFromKey("CANT_KICK_YOURSELF")));
                        return;
                    }
                    DAOFactory.FamilyCharacterDAO.Delete(packetsplit[2]);
                    Session.Character.Family.InsertFamilyLog(FamilyLogType.FamilyManaged, kickSession.Character.Name);

                    kickSession.CurrentMapInstance?.Broadcast(kickSession.Character.GenerateGidx());
                }
                else
                {
                    CharacterDTO dbCharacter = DAOFactory.CharacterDAO.LoadByName(packetsplit[2]);
                    if (dbCharacter != null)
                    {
                        FamilyCharacterDTO dbFamilyCharacter = DAOFactory.FamilyCharacterDAO.LoadByCharacterId(dbCharacter.CharacterId);
                        if (dbFamilyCharacter != null && dbFamilyCharacter.FamilyId == Session.Character.Family.FamilyId)
                        {
                            if (dbFamilyCharacter.Authority == FamilyAuthority.Head)
                            {
                                Session.SendPacket(UserInterfaceHelper.Instance.GenerateInfo(Language.Instance.GetMessageFromKey("CANT_KICK_HEAD")));
                                return;
                            }
                            DAOFactory.FamilyCharacterDAO.Delete(packetsplit[2]);
                            Session.Character.Family.InsertFamilyLog(FamilyLogType.FamilyManaged, dbCharacter.Name);
                        }
                    }
                }
            }
        }
コード例 #14
0
        public IHttpActionResult GetCharacterById(int id)
        {
            CharacterDTO Character = GameManager.Instance.GetCharacterById(id);

            if (Character.Id == -1)
            {
                return(NotFound());
            }
            else
            {
                return(Ok(Character));
            }
        }
コード例 #15
0
        public async Task <ActionResult <CharacterDTO> > DeleteCharacter(int id)
        {
            Character character = await repository.Delete(id);

            if (character == null)
            {
                return(NotFound());
            }

            CharacterDTO characterDTO = new CharacterDTO(character);

            return(characterDTO);
        }
コード例 #16
0
        // POST: api/Characters
        public IHttpActionResult Post([FromBody] CharacterDTO value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid data"));
            }

            ThronesTournamentManager m = new ThronesTournamentManager();

            m.AddCharacter(value.Transform());

            return(Ok());
        }
コード例 #17
0
        private static CharacterDTO insert(CharacterDTO character, OpenNosContext context)
        {
            Character entity = new Character();

            Mapper.Mappers.CharacterMapper.ToCharacter(character, entity);
            context.Character.Add(entity);
            context.SaveChanges();
            if (Mapper.Mappers.CharacterMapper.ToCharacterDTO(entity, character))
            {
                return(character);
            }
            return(null);
        }
コード例 #18
0
ファイル: TemplateCharacter.cs プロジェクト: Worble/DndHelper
        /// <summary>
        /// Updates the specified character.
        /// </summary>
        /// <param name="characterDTO">The character to update.</param>
        /// <exception cref="System.NotImplementedException"></exception>
        internal static void Update(DndDmHelperContext context, CharacterDTO characterDTO)
        {
            var character = context.TemplateCharacters.Find(characterDTO.ID);

            character.Name        = characterDTO.Name;
            character.Description = characterDTO.Description;
            character.Level       = characterDTO.Level;
            character.ClassID     = characterDTO.Class.ID;
            character.RaceID      = characterDTO.Race.ID;

            context.Attach(character);
            context.Entry(character).State = EntityState.Modified;
        }
コード例 #19
0
        // PUT: api/Characters/{id}
        public IHttpActionResult Put(int id, [FromBody] CharacterDTO value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Not a valid model"));
            }

            ThronesTournamentManager m = new ThronesTournamentManager();

            m.UpdateCharacter(value.Transform());

            return(Ok());
        }
コード例 #20
0
        public async Task Get_given_non_existing_returns_NotFound()
        {
            var dto        = new CharacterDTO();
            var repository = new Mock <ICharacterRepository>();

            var controller = new CharactersController(repository.Object);

            var get = await controller.Get(42);

            var result = get.Result;

            Assert.IsType <NotFoundResult>(result);
        }
コード例 #21
0
 public bool Update()
 {
     try
     {
         CharacterDTO characterToUpdate = Mapper.Map <CharacterDTO>(this);
         DAOFactory.CharacterDAO.InsertOrUpdate(ref characterToUpdate);
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
コード例 #22
0
        public async Task TestGetCharacter()
        {
            Mock <IRepository <Character> > mockRepository = new Mock <IRepository <Character> >();

            mockRepository.Setup(r => r.Read(1)).ReturnsAsync(TestData.GetCharacters()[0]);

            CharactersController        controller = new CharactersController(mockRepository.Object);
            ActionResult <CharacterDTO> response   = await controller.GetCharacter(1);

            CharacterDTO character = response.Value;

            Assert.IsTrue(TestData.GetCharacters()[0].IsDataEqual(new Character(character)));
        }
コード例 #23
0
        public async Task TestPostCharacter()
        {
            Mock <IRepository <Character> > mockRepository = new Mock <IRepository <Character> >();

            mockRepository.Setup(r => r.Create(It.IsAny <Character>())).ReturnsAsync(TestData.GetCharacters()[0]);

            CharactersController        controller = new CharactersController(mockRepository.Object);
            ActionResult <CharacterDTO> response   = await controller.PostCharacter(new CharacterDTO(TestData.GetCharacters()[0]));

            CharacterDTO character = ((CreatedAtActionResult)response.Result).Value as CharacterDTO;

            Assert.IsTrue(TestData.GetCharacters()[0].IsDataEqual(new Character(character)));
        }
コード例 #24
0
        public async Task Get_given_existing_returns_dto()
        {
            var dto        = new CharacterDTO();
            var repository = new Mock <ICharacterRepository>();

            repository.Setup(s => s.FindAsync(42)).ReturnsAsync(dto);

            var controller = new CharactersController(repository.Object);

            var get = await controller.Get(42);

            Assert.Equal(dto, get.Value);
        }
コード例 #25
0
    public CharacterDTO GetCharDTO(int characterid)
    {
        CharacterDTO dto = null;

        for (int i = 0; i < chDtos.Count; i++)
        {
            if (chDtos[i].id == characterid)
            {
                dto = chDtos[i];
            }
        }
        return(dto);
    }
コード例 #26
0
        public async Task <CharacterDTO> UpdateCharacter(Character character)
        {
            var updCharacter = new CharacterDTO
            {
                Id        = character.CharacterRef,
                IsRetired = character.IsRetired,
                IsActive  = character.IsActive,
                Name      = character.Name,
                PlayerId  = character.PlayerId,
                Xp        = character.Xp
            };

            return(await UpdateCharacter(updCharacter));
        }
コード例 #27
0
        public CharacterDTO GetCharacterInformation(CharacterDTO character)
        {
            if (character == null)
            {
                throw new ArgumentNullException("character");
            }

            if (String.IsNullOrEmpty(character.Name))
            {
                throw new ArgumentNullException("character.Name");
            }

            return(GetCharacterInformation(character.Name));
        }
コード例 #28
0
 public IEnumerable <CharacterDTO> LoadAllCharactersByAccount(long accountId)
 {
     using (OpenNosContext context = DataAccessHelper.CreateContext())
     {
         List <CharacterDTO> result = new List <CharacterDTO>();
         foreach (Character entity in context.Character.Where(c => c.AccountId.Equals(accountId) && c.State.Equals((byte)CharacterState.Active)).OrderByDescending(c => c.Slot))
         {
             CharacterDTO dto = new CharacterDTO();
             Mapper.Mapper.Instance.CharacterMapper.ToCharacterDTO(entity, dto);
             result.Add(dto);
         }
         return(result);
     }
 }
コード例 #29
0
 /// <summary>
 /// Returns first 30 occurences of highest Act4Points
 /// </summary>
 /// <returns></returns>
 public List <CharacterDTO> GetTopPoints()
 {
     using (OpenNosContext context = DataAccessHelper.CreateContext())
     {
         List <CharacterDTO> result = new List <CharacterDTO>();
         foreach (Character entity in context.Character.Where(c => c.Account.Authority == AuthorityType.User && !c.Account.PenaltyLog.Any(l => l.Penalty == PenaltyType.Banned && l.DateEnd > DateTime.Now)).OrderByDescending(c => c.Act4Points).Take(30))
         {
             CharacterDTO dto = new CharacterDTO();
             Mapper.Mapper.Instance.CharacterMapper.ToCharacterDTO(entity, dto);
             result.Add(dto);
         }
         return(result);
     }
 }
コード例 #30
0
        private CharacterDTO Update(Character entity, CharacterDTO character, OpenNosContainer context)
        {
            using (context)
            {
                var result = context.character.SingleOrDefault(c => c.CharacterId == character.CharacterId);
                if (result != null)
                {
                    result = Mapper.Map <CharacterDTO, Character>(character, entity);
                    context.SaveChanges();
                }
            }

            return(Mapper.Map <CharacterDTO>(entity));
        }