public async Task <ActionResult <PagedList <ViewStudentsListDto> > > Get(AcceptanceStatus acceptanceStatus, int pageSize, int PageNumber)
 {
     return(await Mediator.Send(new ViewStudentsListQuery()
     {
         AcceptanceStatus = acceptanceStatus, PageNumber = PageNumber, PageSize = pageSize
     }));
 }
        public async Task <IActionResult> ApproveAppraisalHOD(string Id, JsonPatchDocument <AcceptanceStatus> entity)
        {
            ObjectId kra = new ObjectId(Id);

            AcceptanceStatus entityToUpdate = new AcceptanceStatus();

            entity.ApplyTo(entityToUpdate);

            var res = await appraisalResult.HodApprovalOrReject(kra, entityToUpdate);

            if (res.MatchedCount > 0)
            {
                return(Ok());
            }

            return(NotFound());
        }
        public async Task <IActionResult> AcceptAppraisal(string Id, JsonPatchDocument <AcceptanceStatus> entity)
        {
            ObjectId kra = new ObjectId(Id);

            AcceptanceStatus entityToUpdate = new AcceptanceStatus();

            entity.ApplyTo(entityToUpdate);

            var res = await appraisalResult.EmployeeAcceptOrReject(kra, entityToUpdate);

            if (res != null)
            {
                return(Ok());
            }

            return(NotFound());
        }
Example #4
0
        public async Task <UpdateResult> HodApprovalOrReject(ObjectId appraisalResultId, AcceptanceStatus status)
        {
            var filter = Builders <AppraisalResult> .Filter.Eq("Id", appraisalResultId);

            var appraisalResult = Collection.Find(filter).FirstOrDefault();
            var employee        = await resultAreaRepo.GetEmployee(appraisalResult.KeyResultArea.EmployeeId);

            string subject = $"Pending Approval";
            string msg     = $"who is your HOD has completed your appraisal for the key result area {appraisalResult.KeyResultArea.Name}, You are to accept or reject it";
            string title   = "Approval For Approval";
            string url     = "https://resourceedge.herokuapp.com/";

            if (appraisalResult != null)
            {
                appraisalResult.HodAccept = new AcceptanceStatus()
                {
                    IsAccepted = status.IsAccepted.Value
                };

                var newAppraisalResult = appraisalResult.HodApproval(status.Reason);
                var entityToUpdate     = newAppraisalResult.ToBsonDocument();
                var update             = new BsonDocument("$set", entityToUpdate);

                SingleEmailDto emailDto = new SingleEmailDto()
                {
                    ReceiverFullName     = employee.FullName,
                    ReceiverEmailAddress = employee.Email,
                    HtmlContent          = await sender.FormatEmail(appraisalResult.KeyResultArea.HodDetails.Name, employee.FullName, msg, title, url),
                };

                var res = await Collection.UpdateOneAsync(filter, update);

                if (res.MatchedCount > 0)
                {
                    await sender.SendToSingleEmployee(subject, emailDto);
                }
                return(res);
            }
            return(null);
        }
Example #5
0
        public async Task <UpdateResult> EmployeeAcceptOrReject(ObjectId appraisalResultId, AcceptanceStatus status)
        {
            var filter = Builders <AppraisalResult> .Filter.Eq("Id", appraisalResultId);

            var appraisalResult = Collection.Find(filter).FirstOrDefault();

            if (appraisalResult != null)
            {
                appraisalResult.EmployeeAccept = new AcceptanceStatus()
                {
                    IsAccepted = status.IsAccepted.Value
                };

                var newAppraisalResult = appraisalResult.CompleteAppraisal(status.Reason);
                var entityToUpdate     = newAppraisalResult.ToBsonDocument();
                var update             = new BsonDocument("$set", entityToUpdate);

                return(await Collection.UpdateOneAsync(filter, update));
            }
            return(null);
        }