private async Task AddOneRelationAsync(string title, short year, string lastName, string birthdate, string role) { var fp = new BaseFilmPersonDto(title, year, lastName, birthdate, role); var result = await PostAsync <OperationStatus, BaseFilmPersonDto>("FilmPerson", "Add", fp); Debug.Assert(result.Value == 0); }
public override async Task <OperationStatus> UpdateAsync(FilmPersonDto dto) { var b = new BaseFilmPersonDto(dto.Title, dto.Year, dto.LastName, dto.Birthdate, dto.Role); var response = await _client.PutAsync(_route, jsonContent); return(StatusFromResponse(response)); }
public override async Task <OperationStatus> AddAsync(FilmPersonDto dto) { var result = OperationStatus.OK; // Do not permit duplicates. var key = _keyService.ConstructFilmPersonKey(dto.Title, dto.Year, dto.LastName, dto.Birthdate, dto.Role); var s = await GetByKeyAsync(key); if (s == OperationStatus.OK) { result = OperationStatus.BadRequest; result.ReasonForFailure = "A corresponding relation exists already"; return(result); } var b = new BaseFilmPersonDto(dto.Title, dto.Year, dto.LastName, dto.Birthdate, dto.Role); var jsonContent = new StringContent(JsonConvert.SerializeObject(b), Encoding.UTF8, "application/json"); var response = await _client.PostAsync(_route, jsonContent); result = StatusFromResponse(response); if (result == OperationStatus.OK) { var key1 = _keyService.ConstructFilmPersonKey(dto.Title, dto.Year, dto.LastName, dto.Birthdate, dto.Role); var response1 = await _client.GetAsync($"{_route}/{key1}"); var stringResponse = await response1.Content.ReadAsStringAsync(); _addResult = JsonConvert.DeserializeObject <FilmPersonDto>(stringResponse); _addResult.Key = key; } else { _addResult = null; } return(result); }
public async Task <OperationStatus> PutAsync([FromBody] BaseFilmPersonDto model) { return(await _service.UpdateAsync(model)); }
public async Task <OperationResult <IKeyedDto> > PostAsync([FromBody] BaseFilmPersonDto model) { return(await _service.AddAsync(model)); }