public static async Task <IActionResult> AddNewEngineer([HttpTrigger(AuthorizationLevel.Function, "post", Route = "engineers/")] HttpRequest req, ILogger log) { log.LogInformation($"Add new engineer request"); try { string _RequestBody = await new StreamReader(req.Body).ReadToEndAsync(); EngineerEntity _Entity = JsonConvert.DeserializeObject <EngineerEntity>(_RequestBody); if (_Entity.TeamID.Length > 0 && new EngineeringTeamsRepository().Get(_Entity.TeamID) == null) { throw new Exception(); } await EngineerRepo.Create(_Entity); } catch (Exception _Exception) { log.LogError("Error in Deserializing"); log.LogError(_Exception.Message); return(new BadRequestResult()); } return(new OkResult()); }
public static async Task <IActionResult> UpdateEngineer([HttpTrigger(AuthorizationLevel.Function, "put", Route = "engineers/{customID}")] HttpRequest req, string customID, ILogger log) { log.LogInformation($"Update existing engineer request"); try { string _RequestBody = await new StreamReader(req.Body).ReadToEndAsync(); EngineerEntity _Entity = JsonConvert.DeserializeObject <EngineerEntity>(_RequestBody); if (await EngineerRepo.Get(customID) != null) { if (_Entity.TeamID.Length > 0 && new EngineeringTeamsRepository().Get(_Entity.TeamID) == null) { return(new BadRequestObjectResult("Please provide a valid team.")); } await EngineerRepo.Update(customID, _Entity); } else { return(new NotFoundResult()); } } catch (Exception _Exception) { log.LogError(_Exception.Message); return(new NotFoundResult()); } return(new OkResult()); }
public async Task Update(string customID, EngineerEntity engineer) { var serializerSettings = new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore, DefaultValueHandling = DefaultValueHandling.Ignore }; var bson = new BsonDocument() { { "$set", BsonDocument.Parse(JsonConvert.SerializeObject(engineer, serializerSettings)) } }; await _EngineersCollection.UpdateOneAsync(Builders <EngineerEntity> .Filter.Eq(eng => eng.CustomID, customID), bson); }
public static async Task <IActionResult> GetSingleEngineer([HttpTrigger(AuthorizationLevel.Function, "get", Route = "engineers/{customID}/")] HttpRequest req, string customID, ILogger log) { log.LogInformation($"GET single engineer {customID}"); EngineerEntity _Result = null; try { _Result = await EngineerRepo.Get(customID); } catch (Exception _Exception) { log.LogError(_Exception.Message); } if (_Result == null) { return(new NotFoundResult()); } return(new JsonResult(_Result)); }
public async Task Remove(EngineerEntity engineer) { await _EngineersCollection.DeleteOneAsync(eng => eng.Id == engineer.Id); }
public async Task <EngineerEntity> Create(EngineerEntity engineer) { await _EngineersCollection.InsertOneAsync(engineer); return(engineer); }