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", })); } }
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) })); } }
public Task <string> ApplyClearance(StudClearance clearance, Role role) { var response = Post("clearances/apply?role=" + role, clearance); return(response); }