Esempio n. 1
0
        public async Task <JsonResult> Apply(StudClearance clearance, Role role)
        {
            try
            {
                var token = _tokenValidator.Validate(HttpContext);
                if (!token.Success)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        NotAuthenticated = true,
                        Message = $"Unauthorized:-{token.Message}",
                    }));
                }

                if (string.IsNullOrEmpty(clearance.Notes))
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Kindly, provide clearance reason"
                    }));
                }

                clearance.Personnel = clearance.AdmnNo;
                clearance.Rdate     = DateTime.UtcNow.Date;
                clearance.Status    = "Pending";
                var app = await _unisolApiProxy.ApplyClearance(clearance, role);

                var jdata = JsonConvert.DeserializeObject <ReturnData <string> >(app);
                return(Json(jdata));
            }
            catch (Exception ex)
            {
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "Sorry, An error occurred",
                }));
            }
        }
Esempio n. 2
0
        public JsonResult Apply(StudClearance clearance, Role role)
        {
            try
            {
                if (role == Role.Student)
                {
                    var cleared = _context.StudClearances.FirstOrDefault(c => c.AdmnNo.ToUpper().Equals(clearance.AdmnNo.ToUpper()));
                    if (cleared != null)
                    {
                        var message = cleared.Status.ToLower().Equals("approved") ? "You have already cleared" : $"Your clearance is {cleared.Status.ToLower()}";
                        return(Json(new ReturnData <string>
                        {
                            Success = false,
                            Message = message
                        }));
                    }
                }
                if (role == Role.Staff)
                {
                    var cleared = _context.HrpStaffClearance.FirstOrDefault(c => c.EmpNo.ToUpper().Equals(clearance.AdmnNo.ToUpper()));
                    if (cleared != null)
                    {
                        var message = cleared.Status.ToLower().Equals("approved") ? "You have already cleared" : $"Your clearance is {cleared.Status.ToLower()}";
                        return(Json(new ReturnData <string>
                        {
                            Success = false,
                            Message = message
                        }));
                    }
                }

                var docType       = role == Role.Student ? "STUDENT CLEARANCE" : "STAFF CLEARANCE";
                var procOnlineReq = new ProcOnlineReq
                {
                    ReqRef   = clearance.AdmnNo,
                    DocType  = docType.ToUpper(),
                    Rdate    = DateTime.Today,
                    Rtime    = DateTime.UtcNow,
                    Usercode = clearance.AdmnNo,
                    Status   = "Pending"
                };

                var docId = _context.Wfrouting
                            .FirstOrDefault(r => r.Document.ToUpper() == procOnlineReq.DocType.ToUpper())
                            ?.Id.ToString();

                if (string.IsNullOrEmpty(docId))
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Sorry, " + procOnlineReq.DocType.ToUpper() + " " +
                                  "Not supported at the moment. Please contact the admin"
                    }));
                }

                var user = new HrpEmployee();
                if (role == Role.Staff)
                {
                    user = _context.HrpEmployee.FirstOrDefault(u => u.EmpNo.ToUpper().Equals(clearance.AdmnNo.ToUpper()));
                }
                else
                {
                    user = _context.Register.Join(_context.Programme, r => r.Programme, p => p.Names,
                                                  (r, p) => new HrpEmployee
                    {
                        EmpNo      = r.AdmnNo,
                        Names      = r.Names,
                        Department = p.Department
                    }).FirstOrDefault(r => r.EmpNo.Equals(clearance.AdmnNo));
                }

                var workFlowStatus = _utils.SaveToWorkFlowCenter(procOnlineReq, user, docId, clearance.Notes);
                if (!workFlowStatus.Success)
                {
                    return(Json(workFlowStatus));
                }

                if (role == Role.Student)
                {
                    _context.StudClearances.Add(clearance);
                }
                if (role == Role.Staff)
                {
                    _context.HrpStaffClearance.Add(new HrpStaffClearance {
                        EmpNo     = clearance.AdmnNo,
                        Status    = clearance.Status,
                        Personnel = clearance.Personnel,
                        Notes     = clearance.Notes
                    });
                }

                _context.SaveChanges();

                var msg = $"Your clearance application {clearance.AdmnNo} submited succesfully.";
                return(Json(new ReturnData <string>
                {
                    Success = true,
                    Message = msg,
                    Data = clearance.AdmnNo
                }));
            }
            catch (Exception e)
            {
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "There was a problem while trying to apply for clearance.",
                    Error = new Error(e)
                }));
            }
        }
Esempio n. 3
0
        public Task <string> ApplyClearance(StudClearance clearance, Role role)
        {
            var response = Post("clearances/apply?role=" + role, clearance);

            return(response);
        }