public static async Task <IActionResult> UpdateTeam([HttpTrigger(AuthorizationLevel.Function, "put", Route = "teams/{name}")] HttpRequest req, string name, ILogger log)
        {
            log.LogInformation($"Update existing team request");

            try
            {
                string _RequestBody           = await new StreamReader(req.Body).ReadToEndAsync();
                EngineeringTeamEntity _Entity = JsonConvert.DeserializeObject <EngineeringTeamEntity>(_RequestBody);

                if (await TeamsRepo.Get(name) != null)
                {
                    await TeamsRepo.Update(name, _Entity);
                }
                else
                {
                    return(new NotFoundResult());
                }
            }
            catch (Exception _Exception)
            {
                log.LogError(_Exception.Message);
                return(new NotFoundResult());
            }

            return(new OkResult());
        }
 public async Task Update(string name, EngineeringTeamEntity team)
 {
     var serializerSettings = new JsonSerializerSettings()
     {
         NullValueHandling    = NullValueHandling.Ignore,
         DefaultValueHandling = DefaultValueHandling.Ignore
     };
     var bson = new BsonDocument()
     {
         { "$set", BsonDocument.Parse(JsonConvert.SerializeObject(team, serializerSettings)) }
     };
     await _TeamsCollection.UpdateOneAsync(Builders <EngineeringTeamEntity> .Filter.Eq(t => t.Name, name), bson);
 }
        public static async Task <IActionResult> AddNewTeam([HttpTrigger(AuthorizationLevel.Function, "post", Route = "teams/")] HttpRequest req, ILogger log)
        {
            log.LogInformation($"Add new Team request");

            try
            {
                string _RequestBody           = await new StreamReader(req.Body).ReadToEndAsync();
                EngineeringTeamEntity _Entity = JsonConvert.DeserializeObject <EngineeringTeamEntity>(_RequestBody);
                await TeamsRepo.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> GetSingleTeam([HttpTrigger(AuthorizationLevel.Function, "get", Route = "teams/{name}/")] HttpRequest req, string name, ILogger log)
        {
            log.LogInformation($"GET single team {name}");

            EngineeringTeamEntity _Result = null;

            try
            {
                _Result = await TeamsRepo.Get(name);
            }
            catch (Exception _Exception)
            {
                log.LogError(_Exception.Message);
            }

            if (_Result == null)
            {
                return(new NotFoundResult());
            }

            return(new JsonResult(_Result));
        }
 public async Task Remove(EngineeringTeamEntity team)
 {
     await _TeamsCollection.DeleteOneAsync(t => t.Id == team.Id);
 }
        public async Task <EngineeringTeamEntity> Create(EngineeringTeamEntity team)
        {
            await _TeamsCollection.InsertOneAsync(team);

            return(team);
        }