public async Task <Shared.Models.Appraisal> CreateWithHistoryAsync(Shared.Models.Appraisal newAppraisal)
        {
            await _Appraisals.InsertOneAsync(newAppraisal);

            //await _appraisalHistory.InsertOneAsync(newAppraisal.AppraisalFormAnswers);
            return(await Task.FromResult <Shared.Models.Appraisal>(newAppraisal));
        }
        public async Task <Shared.Models.Appraisal> UpdateWithHistoryAsync(Shared.Models.Appraisal updatedAppraisal)
        {
            var result = await _Appraisals.ReplaceOneAsync(Appraisal => Appraisal.Id == updatedAppraisal.Id, updatedAppraisal);

            if (result.ModifiedCount > 0)
            {
                return(await Task.FromResult(updatedAppraisal));
            }
            return(await Task.FromException <Shared.Models.Appraisal>(new KeyNotFoundException(string.Format("Appraisal: {0} was not found", updatedAppraisal.AppraisalForm.Title))));
        }
        public async Task <IActionResult> Put([FromBody] Shared.Models.Appraisal updatedAppraisal)
        {
            try
            {
                updatedAppraisal.AppraisalFormAnswers.First().AppraisedDateTime = DateTime.Now;
                var updated = await _appraisalRepository.UpdateAsync(updatedAppraisal);

                return(Ok(updated));
            }
            catch (KeyNotFoundException) {
                return(NotFound(new EmptyResult()));
            }
        }
        public async Task <Shared.Models.Appraisal> GetAllWithHistoryAsync(Shared.Models.Appraisal newAppraisal)
        {
            await _Appraisals.InsertOneAsync(newAppraisal);

            return(await Task.FromResult <Shared.Models.Appraisal>(newAppraisal));
        }
        public async Task <Shared.Models.Appraisal> CreateAsync(Shared.Models.Appraisal newAppraisal)
        {
            await _Appraisals.InsertOneAsync(newAppraisal);

            return(await Task.FromResult <Shared.Models.Appraisal>(newAppraisal));
        }
        public async Task <IActionResult> Post([FromBody] Shared.Models.Appraisal newAppraisal)
        {
            var createdAppraisal = await _appraisalRepository.CreateAsync(newAppraisal);

            return(Ok(createdAppraisal));
        }