public async Task <bool> UpdateVolunteer(string id, Data.Model.Volunteer value)
        {
            var filter = Builders <Volunteer> .Filter.Eq(s => s.Id, id);

            var update = Builders <Volunteer> .Update
                         .Set(s => s.MembershipID, value.MembershipID)
                         .Set(s => s.MobileNumber, value.MobileNumber)
                         .Set(s => s.Qualification, value.Qualification)
                         .Set(s => s.ResumeUrl, value.ResumeUrl)
                         .Set(s => s.Accomplishments, value.Accomplishments)
                         .Set(s => s.AreaOfExpertise, value.AreaOfExpertise)
                         .Set(s => s.AreaOfSpecialisation, value.AreaOfSpecialisation)
                         .Set(s => s.Constituency, value.Constituency)
                         .Set(s => s.CoreSkills, value.CoreSkills)
                         .Set(s => s.UpdatedOn, value.UpdatedOn)
                         .Set(s => s.District, value.District)
                         .Set(s => s.Email, value.Email)
                         .Set(s => s.LikeToSpend, value.LikeToSpend)
                         .CurrentDate(s => s.UpdatedOn);

            try
            {
                UpdateResult actionResult = await _context.Volunteers.UpdateOneAsync(filter, update);

                return(actionResult.IsAcknowledged &&
                       actionResult.ModifiedCount > 0);
            }
            catch (Exception ex)
            {
                // log or manage the exception
                throw ex;
            }
        }
        // Demo function - full document update
        public async Task <bool> UpdateVolunteerDocument(string id, Data.Model.Volunteer value)
        {
            var item = await GetVolunteer(id) ?? new Volunteer();

            item.MembershipID         = value.MembershipID;
            item.MobileNumber         = value.MobileNumber;
            item.Qualification        = value.Qualification;
            item.ResumeUrl            = value.ResumeUrl;
            item.Accomplishments      = value.Accomplishments;
            item.AreaOfExpertise      = value.AreaOfExpertise;
            item.AreaOfSpecialisation = value.AreaOfSpecialisation;
            item.Constituency         = value.Constituency;
            item.CoreSkills           = value.CoreSkills;
            item.UpdatedOn            = value.UpdatedOn;
            item.District             = value.District;
            item.Email       = value.Email;
            item.LikeToSpend = value.LikeToSpend;
            item.UpdatedOn   = DateTime.Now;

            return(await UpdateNote(id, item));
        }
 public void Put(string id, [FromBody] Data.Model.Volunteer value)
 {
     _volunteerRepository.UpdateVolunteerDocument(id, value);
 }
 public void Post([FromBody] Data.Model.Volunteer value)
 {
     value.CreatedOn = DateTime.Now;
     value.UpdatedOn = DateTime.Now;
     _volunteerRepository.AddVolunteer(value);
 }