public CreateOutput <GameTaskDto, long> Create(CreateInput <GameTaskDto, long> input) { throw new NotSupportedException("This method is implemented but it is not safely to use it."); GameTask newGameTaskEntity = input.Entity.MapTo <GameTask>(); newGameTaskEntity.IsActive = true; if (!GameTaskPolicy.CanCreateEntity(newGameTaskEntity)) { throw new CityQuestPolicyException(CityQuestConsts.CQPolicyExceptionCreateDenied, "\"GameTask\""); } GameTaskRepository.Includes.Add(r => r.LastModifierUser); GameTaskRepository.Includes.Add(r => r.CreatorUser); GameTaskRepository.Includes.Add(r => r.GameTaskType); GameTaskRepository.Includes.Add(r => r.Conditions); GameTaskRepository.Includes.Add(r => r.Tips); GameTaskDto newGameTaskDto = (GameTaskRepository.Insert(newGameTaskEntity)).MapTo <GameTaskDto>(); GameTaskRepository.Includes.Clear(); return(new CreateOutput <GameTaskDto, long>() { CreatedEntity = newGameTaskDto }); }
private void UpdateGameEntityRelations(Game existGameEntity, GameDto newGameEntity) { IList <GameTask> gameTasksForDelete = existGameEntity.GameTasks.ToList(); foreach (GameTaskDto newGameTask in newGameEntity.GameTasks) { if (newGameTask.Id > 0) { GameTask existGameTask = existGameEntity.GameTasks.First(r => r.Id == newGameTask.Id); gameTasksForDelete.Remove(existGameTask); UpdateGameTaskEntity(existGameTask, newGameTask); } else { GameTaskRepository.Insert(newGameTask.MapTo <GameTask>()); } } GameTaskRepository.RemoveRange(gameTasksForDelete); }