public async Task <Response> Add(WaterMeterCreateModel waterMeter) { WaterMeterModel convertWaterMeter = Mapper.Map <WaterMeterCreateModel, WaterMeterModel>(waterMeter); WaterMeterModel overlap = await _dbContext.WaterMeters.FirstOrDefaultAsync(w => w.Id == waterMeter.Id); if (overlap != null) { return new Response { Message = "Такой Id уже используется." } } ; try { _dbContext.WaterMeters.Add(convertWaterMeter); await _dbContext.SaveChangesAsync(); return(new Response { Ok = true }); } catch { return(new Response { Message = "Произошла ошибка при добавлении. Пожалуйсте повторите попытку." }); } }
public async Task <Response> Delete(int id) { WaterMeterModel target = await _dbContext.WaterMeters.FindAsync(id); if (target is null) { return new Response { Message = "Счетчик не найден." } } ; try { _dbContext.WaterMeters.Remove(target); await _dbContext.SaveChangesAsync(); return(new Response { Ok = true }); } catch { return(new Response { Message = "Произошла ошибка при удалении. Пожалуйсте повторите попытку." }); } }
public async Task <ActionResult <WaterMeter> > Post(WaterMeterModel itemModel) { try { if (itemModel == null) { return(BadRequest("WaterMeter object is null")); } if (!ModelState.IsValid) { return(BadRequest("Invalid model object")); } var item = _mapper.Map <WaterMeter>(itemModel); await _repository.AddWaterMeterAsync(item); return(CreatedAtAction(nameof(Get), new { id = item.Id }, item)); } catch (Exception ex) { return(StatusCode(500, $"Internal server error: {ex.Message}")); } }
public async Task <ActionResult <WaterMeter> > Put(WaterMeterModel itemModel, int id) { try { if (itemModel == null) { return(BadRequest("WaterMeter object is null")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var dbItem = await _repository.GetWaterMeterAsync(id); if (dbItem == null) { return(NotFound()); } var item = _mapper.Map <WaterMeter>(itemModel); await _repository.UpdateWaterMeterAsync(dbItem, item); return(CreatedAtAction(nameof(Get), new { id = item.Id }, item)); } catch (Exception ex) { return(StatusCode(500, $"Internal server error: {ex.Message}")); } }
public async Task PutNOK() { var model = new WaterMeterModel { }; var smodel = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); // Act var response = await this.Fixture.Client.PutAsync("/api/WaterMeters/1", smodel); Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }
public async Task <Response> UpdateBySerialNumber(string serialNumber, WaterMeterUpdateModel waterMeter) { WaterMeterModel targetWaterMeter = await _dbContext.WaterMeters.FirstOrDefaultAsync(w => w.SerialNumber.Equals(serialNumber)); if (targetWaterMeter is null) { return new Response { Message = "Счетчик не найден." } } ; WaterMeterModel convertWaterMeter = Mapper.Map <WaterMeterUpdateModel, WaterMeterModel>(waterMeter); return(await UpdateWaterMeterValues(targetWaterMeter, convertWaterMeter)); }
public async Task PostNOK() { var model = new WaterMeterModel { FirmwareVersion = "v." + RandomInt(1, 99).ToString(), State = RandomString(4) }; var smodel = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); // Act var response = await this.Fixture.Client.PostAsync("/api/WaterMeters", smodel); // Assert Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }
private async Task <Response> UpdateWaterMeterValues(WaterMeterModel oldValue, WaterMeterModel newValue) { try { _dbContext.Entry(oldValue).CurrentValues.SetValues(newValue); await _dbContext.SaveChangesAsync(); return(new Response { Ok = true }); } catch { return(new Response { Message = "Произошла ошибка при обновлении. Пожалуйсте повторите попытку." }); } }
public async Task <Response> UpdateByBuildingId(int buildingId, WaterMeterUpdateModel waterMeter) { WaterMeterModel targetWaterMeter = await _dbContext.Buildings .Include(b => b.WaterMeter) .Where(b => b.Id == buildingId) .Select(b => b.WaterMeter) .FirstOrDefaultAsync(); if (targetWaterMeter is null) { return new Response { Message = "Счетчик не найден." } } ; WaterMeterModel convertWaterMeter = Mapper.Map <WaterMeterUpdateModel, WaterMeterModel>(waterMeter); return(await UpdateWaterMeterValues(targetWaterMeter, convertWaterMeter)); }
public async Task Post() { WaterMeterModel model = CreateModel(); var smodel = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); // Act var response = await this.Fixture.Client.PostAsync("/api/WaterMeters", smodel); response.EnsureSuccessStatusCode(); // Assert var content = await response.Content.ReadAsStringAsync(); Assert.False(string.IsNullOrWhiteSpace(content)); var newModel = JsonConvert.DeserializeObject <WaterMeterModel>(content); Assert.True(newModel.Id > 0); }
public async Task <WaterMeterReturnModel> GetById(int id) { WaterMeterModel waterMeter = await _dbContext.WaterMeters.FirstOrDefaultAsync(w => w.Id == id); return(Mapper.Map <WaterMeterModel, WaterMeterReturnModel>(waterMeter)); }