public async Task <IActionResult> ApprovalKeyOutCome(int empId, StatusForUpdateDto entity) { if (entity == null) { return(BadRequest()); } var result = await resultArea.EmployeeApproval(empId, entity); if (result > 0) { return(Ok()); } return(NoContent()); }
public async Task <long> EmployeeApproval(int empId, StatusForUpdateDto entity) { try { var filter = Builders <KeyResultArea> .Filter.Where(r => r.EmployeeId == empId && r.Year == DateTime.Now.Year); var oldKeyResultArea = Collection.Find(filter).ToList(); oldKeyResultArea.ForEach(x => x.Status.Employee = entity.Approve); var update = Builders <KeyResultArea> .Update.Set("Status.Employee", entity.Approve); var result = await Collection.UpdateManyAsync(filter, update); return(result.ModifiedCount); } catch (Exception ex) { logger.LogError("update of appraisal configuration failed", ex); return(0); } }
public async Task <KeyResultArea> HodApproval(int empId, int memberId, ObjectId keyResultAreaId, string whoami, StatusForUpdateDto entity) { try { var filter = Builders <KeyResultArea> .Filter.Where(r => r.EmployeeId == memberId && r.Id == keyResultAreaId && (r.HodDetails.EmployeeId == empId || r.AppraiserDetails.EmployeeId == empId)); var oldKeyResultArea = Collection.Find(filter).FirstOrDefault(); if (oldKeyResultArea != null) { if (oldKeyResultArea.HodDetails.EmployeeId == empId && oldKeyResultArea.AppraiserDetails.EmployeeId == empId) { oldKeyResultArea.Status.Hod = entity.Approve; oldKeyResultArea.Approved = entity.Approve; } else if (whoami == "HOD") { oldKeyResultArea.Status.Hod = entity.Approve; oldKeyResultArea.Approved = entity.Approve; } else { oldKeyResultArea.Status.IsAccepted = entity.Approve; oldKeyResultArea.SetActive(); } var newKeyResultArea = oldKeyResultArea.ToBsonDocument(); var update = new BsonDocument("$set", newKeyResultArea); var result = await Collection.FindOneAndUpdateAsync(filter, update, options : new FindOneAndUpdateOptions <KeyResultArea> { ReturnDocument = ReturnDocument.After }); return(result); } return(null); } catch (Exception ex) { //throw ex.InnerException; logger.LogError("update of appraisal configuration failed", ex); return(null); } }
public async Task <IActionResult> ApprovalKeyOutCome(int empId, int memberId, string KeyResultAreaId, string whoami, StatusForUpdateDto entity) { var keyResultAreaId = new ObjectId(KeyResultAreaId); if (entity == null) { return(BadRequest()); } var result = await resultArea.HodApproval(empId, memberId, keyResultAreaId, whoami, entity); if (result != null) { return(Ok(result)); } return(NotFound()); }