Esempio n. 1
0
 public ValueTask CreateAsync(CreateCharacterDto dto, CancellationToken cancellationToken)
 {
     return(_serviceClient.PostAsync(
                ServiceConfiguration.ServiceName,
                $"{RoutePrefix}",
                EndpointAuthentication.Profile,
                dto,
                cancellationToken));
 }
        public async Task <IActionResult> PostAsync([FromBody] CreateCharacterDto item)
        {
            await _mediator.Send(new CreateCharacterCommand()
            {
                CreateCharacter = item
            });

            return(Ok());
        }
Esempio n. 3
0
        public long CreateCharacter(CreateCharacterDto dto)
        {
            using (var db = DataAccessUtil.CreateSqlConnection()) {
                db.Open();

                var command = GetCreateCharacterCommand(db, dto, UniqueIdUtil.GenerateUniqueId(), false);
                command.ExecuteNonQuery();

                return(QueryUtil.GetLastInsertedPrimaryKey(db));
            }
        }
    public async ValueTask <ActionResult> Create(CreateCharacterDto dto)
    {
        var name        = new CharacterName(dto.Name);
        var characterId = await _characterRepository.NextIdAsync();

        var character = new Character(characterId, ProfileId, name);
        await _characterRepository.SaveAsync(character);

        return(CreatedAtAction(
                   nameof(GetByCharacterId),
                   new { characterId = characterId.Value },
                   character.ToCharacterResource()));
    }
Esempio n. 5
0
        public async Task <ApiResponse <object> > Create(CreateCharacterDto request)
        {
            var command = new CreateCharacterCommand
            {
                Name  = request.Name,
                Class = request.Class
            };
            await _operationMediator.HandleAsync(command);

            var location = Url.Link(GetByIdRouteName, new { id = command.GeneratedId });

            return(ApiResponse.Created(location, command.GeneratedId));
        }
Esempio n. 6
0
        public async Task <IActionResult> CreateCharacter(CreateCharacterDto newCharacter)
        {
            // return Ok(await _characterService.CreateCharacter(newCharacter));

            // call createCharacter and wrap object with service response object to get additonal info (success/message)
            ServiceResponse <List <GetCharacterDto> > response = await _characterService.CreateCharacter(newCharacter);

            // if success is false then creating a character failed
            if (response.Success == false)
            {
                return(Conflict(response));
            }
            // creation successful
            return(Ok(response));
        }
        public async Task <Response <Model.Character> > CreateAsync(CreateCharacterDto dto)
        {
            var response = Response <Model.Character> .Create();

            if (dto == null)
            {
                return(response.WithBusinessError("Character is invalid"));
            }

            var houseResponse = await HouseService.GetHouseAsync(dto.House);

            if (houseResponse.HasError)
            {
                return(response.WithMessages(houseResponse.Messages));
            }

            return(await CharacterFactory.CreateAsync(dto, houseResponse));
        }
Esempio n. 8
0
        public async Task <Response <CharacterModel> > CreateAsync(CreateCharacterDto dto, HouseModel house)
        {
            var response = Response <CharacterModel> .Create();

            var characterHouse = new CharacterHouse(house);

            var createCharacterResponse = CharacterModel.Create(dto.Name, dto.Role, dto.School, characterHouse, dto.Patronus);

            if (createCharacterResponse.HasError)
            {
                return(response.WithMessages(createCharacterResponse.Messages));
            }

            await CharacterRepository.AddAsync(createCharacterResponse);

            if (!await Uow.CommitAsync())
            {
                return(response.WithCriticalError("Failed to try to save the character"));
            }

            return(response.SetValue(createCharacterResponse));
        }
Esempio n. 9
0
        private SqliteCommand GetCreateCharacterCommand(SqliteConnection db, CreateCharacterDto dto, string guid, bool ignoreDuplicates)
        {
            var ignoreClause = ignoreDuplicates ? "OR IGNORE" : "";

            var command = new SqliteCommand();

            command.Connection  = db;
            command.CommandText = $"INSERT {ignoreClause} INTO character(name, description, library_id, birth_date, career_start_date, career_end_date, rating, deleted, deletion_due_to_cascade, cover_file_id, calendar_id, creator, unique_id) VALUES(@Name, @Description, @LibraryId, @BirthDate, @CareerStartDate, @CareerEndDate, @Rating, false, false, @CoverFileId, @CalendarId, @IsCreator, @UniqueId)";
            command.Parameters.AddWithValue("@Name", dto.Name);
            command.Parameters.AddWithValue("@Description", dto.Description);
            command.Parameters.AddWithValue("@LibraryId", dto.LibraryId);

            command.Parameters.AddWithValue("@BirthDate", QueryUtil.GetNullableValueForStorage(dto.BirthDate));
            command.Parameters.AddWithValue("@CareerStartDate", QueryUtil.GetNullableValueForStorage(dto.CareerStartDate));
            command.Parameters.AddWithValue("@CareerEndDate", QueryUtil.GetNullableValueForStorage(dto.CareerEndDate));
            command.Parameters.AddWithValue("@Rating", dto.Rating);
            command.Parameters.AddWithValue("@CoverFileId", QueryUtil.GetNullableIdForStorage(dto.CoverMediaId));
            command.Parameters.AddWithValue("@CalendarId", QueryUtil.GetNullableIdForStorage(dto.CalendarId));
            command.Parameters.AddWithValue("@IsCreator", dto.IsCreator);
            command.Parameters.AddWithValue("@UniqueId", guid);

            return(command);
        }
Esempio n. 10
0
        private Character CreateAndRetrieveCharacter(CreateCharacterDto dto)
        {
            var characterId = characterRepository.CreateCharacter(dto);

            return(characterRepository.GetCharacter(characterId));
        }
Esempio n. 11
0
        public async Task <ServiceResponse <List <GetCharacterDto> > > CreateCharacter(CreateCharacterDto newCharacter)
        {
            // Wrapper
            ServiceResponse <List <GetCharacterDto> > serviceResponse = new ServiceResponse <List <GetCharacterDto> >();

            try
            {
                // map CreateCharacterDto to character
                Character character = _mapper.Map <Character>(newCharacter);
                // set character property User to user with the userId from the IHttpContext
                character.User = await _context.Users.FirstOrDefaultAsync(u => u.Id == GetUserId());

                // add character to database and save changes
                await _context.Characters.AddAsync(character);

                await _context.SaveChangesAsync();

                // after adding new character to db, return all characters from db
                serviceResponse.Data    = (_context.Characters.Where(u => u.Id == GetUserId()).Select(c => _mapper.Map <GetCharacterDto>(c))).ToList();
                serviceResponse.Message = "Character has been created.";
            }
            catch (Exception ex)
            {
                // creation failed
                serviceResponse.Success = false;
                serviceResponse.Message = "Character could not be created: " + ex.Message;
            }

            return(serviceResponse);
        }
Esempio n. 12
0
        public Character CreateAndRetrieveCharacter(CreateCharacterDto dto)
        {
            long libraryId = CreateCharacter(dto);

            return(new Character(libraryId, dto));
        }
Esempio n. 13
0
 public long CreateCharacter(CreateCharacterDto dto)
 {
     return(characterRepository.CreateCharacter(dto));
 }