public IPayload SaveGateway(SaveGatewayDto saveGatewayDto) { Gateway gateway = _mapper.Map <Gateway>(saveGatewayDto); var isCreated = _context.Gateways.Select( gat => new { ValueForAvoidDuplicate = gat.Name + gat.Ipv4 } ) .Any(keys => keys.ValueForAvoidDuplicate.Equals(saveGatewayDto.ValueToAvoidDuplicate())); if (!isCreated) { var result = _context.Gateways.Add(gateway); _context.SaveChanges(); var factory = new SingleObjectPayloadFactory <GatewayDto>(_mapper.Map <GatewayDto>(result.Entity)); return(factory.GetPayload()); } else { throw new AlreadyExistException("The same Gateway was created before"); } }
public async Task <ActionResult> PostAsync([FromBody] SaveGatewayDto resource) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } var toSave = _mapper.Map <SaveGatewayDto, Gateway>(resource); var result = await _gatewayService.SaveAsync(toSave); if (!result.Success) { return(BadRequest(result.Message)); } var created = _mapper.Map <Gateway, GatewayDto>(result.Gateway); return(Ok(created)); }
public IActionResult Save(SaveGatewayDto saveGatewayDto) { var gatewayDto = _service.SaveGateway(saveGatewayDto); return(new PayloadResult(gatewayDto, HttpStatusCode.Created)); }