Example #1
0
        public async Task AddAsync(QuestDto quest)
        {
            var dataModel = _mapper.Map <Quest>(quest);
            await _repository.AddAsync(dataModel);

            await _repository.SaveChangesAsync();
        }
        public async Task Assign(MiniLocationDto miniLocation, QuestDto quest)
        {
            var edited = Mapper.Map <MiniLocationEditDto>(miniLocation);

            edited.QuestId = quest.Id;
            await Update(edited);
        }
Example #3
0
        public async Task <Guid> CreateQuest(QuestDto quest)
        {
            using (var uow = UnitOfWorkProvider.Create())
            {
                quest.Id = _questService.Create(quest);
                await uow.Commit();

                return(quest.Id);
            }
        }
Example #4
0
 public bool Sync(QuestDto quest, string chapter, int index)
 {
     if (Url == quest.Url)
     {
         return(Question.Sync(quest.Question));
     }
     LogUtil.Log("Video URL is changed. Clearing downladed video from cache");
     //filQuest(2).mp4
     ClearCache(string.Format("{0}Quest({1}).mp4", chapter, index + 1));
     Url = quest.Url;
     Question.Sync(quest.Question);
     return(false);
 }
Example #5
0
        public void Initialize(QuestDto questDto, QuestData questData)
        {
            QuestData        = questData;
            ID               = questDto.ID;
            CurrentObjective = questDto.CurrentObjective;
            CurrentTask      = questDto.CurrentTask;
            CurrentProgress  = questDto.CurrentProgress;
            State            = questDto.QuestState;

            SpawnDependencies();

            QuestManager.Instance.Subscribe(questData.objectiveDatas[CurrentObjective].TaskDatas[CurrentTask], UpdateTaskProgress);
            QuestHandler.Instance.AddQuest(this);
        }
        /// <summary>
        /// Converts the given <see cref="QuestDto"/> to a <see cref="Quest"/> entity.
        /// </summary>
        /// <param name="dto">The dto to transform into its entity object equivalent.</param>
        /// <exception cref="ArgumentNullException">Thrown if dto is null.</exception>
        public static Quest ToEntity(this QuestDto dto)
        {
            if (dto == null)
            {
                throw new ArgumentNullException(nameof(dto));
            }

            return(new Quest
            {
                AccountKey = dto.AccountKey,
                Description = dto.Description.JsonCleanUp(),
                Name = dto.Name.JsonCleanUp(),
                QuestKey = dto.QuestKey
            });
        }
        public async Task <bool> AssignAsync(MiniLocationDto miniLocation, QuestDto quest)
        {
            using (var uow = UnitOfWorkProvider.Create())
            {
                if ((await _miniLocationService.GetAsync(miniLocation.Id, false)) == null)
                {
                    return(false);
                }
                await _miniLocationService.Assign(miniLocation, quest);

                await uow.Commit();

                return(true);
            }
        }
Example #8
0
        public async Task <bool> AssignAsync(QuestDto quest, MonsterDto monster, ItemDto item)
        {
            using (var uow = UnitOfWorkProvider.Create())
            {
                if ((await _questService.GetAsync(quest.Id, false)) == null)
                {
                    return(false);
                }
                await _questService.Assign(quest, monster, item);

                await uow.Commit();

                return(true);
            }
        }
        public async Task <ActionResult> Create(MiniLocationDto model)
        {
            var q = new QuestDto()
            {
                Id = model.QuestId.GetValueOrDefault()
            };

            model.QuestId = null;

            model.Id = await MiniLocationFacade.CreateMiniLocation(model);

            await MiniLocationFacade.AssignAsync(model, q);

            return(RedirectToAction("Index"));
        }
Example #10
0
        public async Task Edit(QuestDto quest)
        {
            var questToEdit = await _repository.GetEntityAsync(q => q.Id.Equals(quest.Id));

            questToEdit.Image       = quest.Image;
            questToEdit.Name        = quest.Name;
            questToEdit.Description = quest.Description;
            questToEdit.Distance    = quest.Distance;
            questToEdit.Time        = quest.Time;
            questToEdit.Price       = quest.Price;
            questToEdit.Country     = quest.Country;
            questToEdit.Town        = quest.Town;
            questToEdit.Street      = quest.Street;
            questToEdit.Number      = quest.Number;
            questToEdit.Bonus       = quest.Bonus;
            _repository.Update(questToEdit);
            await _repository.SaveChangesAsync();
        }
Example #11
0
        public IActionResult Post([FromBody] QuestDto questData)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    _logger.LogDebug("Trying to create quest");
                    var questModel = Mapper.Map <Quest>(questData);
                    questRepository.CreateQuest(questModel);
                    questRepository.SaveChanges();

                    return(Ok());
                }
                catch (Exception e)
                {
                    _logger.LogExceptions(e, this);
                    return(this.HandleErrors(e));
                }
            }

            return(BadRequest(new ErrorDto(ModelState)));
        }
Example #12
0
        public async Task <ActionResult> PostQuestAsync(QuestDto questDto)
        {
            if (questDto == null)
            {
                throw new ArgumentNullException(nameof(questDto));
            }
            if (questDto.AccountKey == Guid.Empty)
            {
                return(BadRequest());
            }

            try
            {
                questDomain.SaveQuest(questDto);
                await Task.CompletedTask;
                return(Ok());
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
Example #13
0
        public async Task <ActionResult> Create(QuestDto model)
        {
            var monster = new MonsterDto()
            {
                Id = model.MonsterId.GetValueOrDefault()
            };
            var item = new ItemDto()
            {
                Id = model.ItemId.GetValueOrDefault()
            };

            model.ItemId    = null;
            model.MonsterId = null;

            model.Id = await QuestFacade.CreateQuest(new QuestDto()
            {
                Experience = model.Experience, Gold = model.Gold
            });

            await QuestFacade.AssignAsync(model, monster, item);

            return(RedirectToAction("Index"));
        }
Example #14
0
        /// <summary>
        /// Saves the given quest.
        /// </summary>
        /// <param name="questDto">Transfer object representing the quest to save.</param>
        public void SaveQuest(QuestDto questDto)
        {
            var entity = questDto.ToEntity();

            questRepository.Save(entity, ctx => ctx.Quest, q => q.QuestKey == questDto.QuestKey);
        }
Example #15
0
 public void Put(int id, [FromBody] QuestDto QuestDto)
 {
 }
Example #16
0
 public async Task PostAsync([FromBody] QuestDto quest)
 {
     await _questService.CreateQuestAsync(quest);
 }
Example #17
0
 public Task UpdateQuestAsync(int id, QuestDto quest)
 {
     throw new NotImplementedException();
 }
Example #18
0
        public async Task <Tuple <bool, List <string> > > FightAsync(CharacterDto character, MonsterDto monster, QuestDto quest)
        {
            var log = new List <string>();

            _random = new Random();
            if (character.Sickness > DateTime.Now)
            {
                var diff = Math.Abs(Math.Floor((character.Sickness - DateTime.Now).Value.TotalSeconds));
                log.Add($"You can't fight at the moment. You are too tired and will not be able to fight for {diff} seconds.");
                return(new Tuple <bool, List <string> >(false, log));
            }

            if (character.CurrentHp <= 0)
            {
                log.Add("You can't fight at the moment. You should get some rest, because you are too devasteted.");
                return(new Tuple <bool, List <string> >(false, log));
            }

            var characterAttr = character.CalculateAttributes();

            characterAttr.Hp = character.CurrentHp / 10; //setting hp to current value
            var combat = Task.Run(() => Combat(characterAttr, monster.Attributes, log));
            var result = await combat;

            using (var uow = UnitOfWorkProvider.Create())
            {
                var updatedUser = new CharacterUpdateDto()
                {
                    Name        = character.Name,
                    CurrentHp   = result.Item2,
                    Experience  = character.Experience,
                    Gold        = character.Gold,
                    Id          = character.Id,
                    SkillPoints = character.SkillPoints,
                    Sickness    = DateTime.Now.AddMinutes(10)
                };
                if (result.Item1)
                {
                    updatedUser.Experience += quest.Experience;
                    updatedUser.Gold       += quest.Gold;
                }

                await _characterService.Update(updatedUser);

                await uow.Commit();
            }
            return(new Tuple <bool, List <string> >(result.Item1, log));
        }
Example #19
0
        public async Task CreateQuestAsync(QuestDto quest)
        {
            await _context.AddAsync(_mapper.Map <Quest>(quest));

            await _context.SaveChangesAsync();
        }