private LoketResponse ValidateBeforeCall(LoketRequest request) { var response = new LoketResponse(); if (request.CallRequest.PoliID <= 0) { errorFields.Add("Poli ID"); } if (string.IsNullOrEmpty(request.CallRequest.QueueCode)) { errorFields.Add("Queue Code"); } if (request.CallRequest.SortNumber <= 0) { errorFields.Add("Sort Number"); } if (errorFields.Any()) { response.Status = false; response.Message = string.Format(Messages.ValidationErrorFields, String.Join(",", errorFields)); } else { //response= } return(response); }
/// <summary> /// Validate request /// </summary> /// <param name="request"></param> /// <param name="response"></param> public LoketResponse Validate(LoketRequest request) { var response = new LoketResponse(); if (request.Action != null) { if (request.Action.Equals(ClinicEnums.Action.DELETE.ToString())) { response = ValidateForDelete(request); } else if (request.Action.Equals(ClinicEnums.Action.Process.ToString())) { response = ValidateForProcess(request); } else if (request.Action.Equals(ClinicEnums.Action.Hold.ToString())) { response = ValidateForHold(request); } else if (request.Action.Equals(ClinicEnums.Action.Finish.ToString())) { response = ValidateForFinish(request); } } else { bool isHavePrivilege = true; if (request.Data.Id == 0) { isHavePrivilege = IsHaveAuthorization(ADD_PRIVILEGE_NAME, request.Data.Account.Privileges.PrivilegeIDs); } else { isHavePrivilege = IsHaveAuthorization(EDIT_PRIVILEGE_NAME, request.Data.Account.Privileges.PrivilegeIDs); } if (!isHavePrivilege) { response.Status = false; response.Message = Messages.UnauthorizedAccess; } if (response.Status) { response = new LoketHandler(_unitOfWork).CreateOrEdit(request); } } return(response); }
public LoketResponse GetListData(LoketRequest request) { var _loketId = _unitOfWork.PoliRepository.GetFirstOrDefault(x => x.Name == Constants.NameConstant.Loket); Expression <Func <QueuePoli, bool> > _serachCriteria = x => x.PoliFrom == _loketId.ID; List <LoketModel> lists = base.GetbaseLoketData(request, _serachCriteria); int totalRequest = lists.Count(); var response = new LoketResponse { Draw = request.Draw, RecordsFiltered = totalRequest, RecordsTotal = totalRequest, Data = lists }; return(response); }
/// <summary> /// Process validation /// </summary> /// <param name="request"></param> /// <returns></returns> private LoketResponse ValidateForProcess(LoketRequest request) { var response = new LoketResponse(); bool isHavePrivilege = IsHaveAuthorization(EDIT_PRIVILEGE_NAME, request.Data.Account.Privileges.PrivilegeIDs); if (!isHavePrivilege) { response.Status = false; response.Message = Messages.UnauthorizedAccess; } if (response.Status) { response = new LoketHandler(_unitOfWork).ProcessRegistration(request); } return(response); }
public List <LoketModel> GetbaseLoketData(LoketRequest request, Expression <Func <QueuePoli, bool> > searchCriteria = null) { List <LoketModel> lists = new List <LoketModel>(); dynamic qry = null; var searchPredicate = PredicateBuilder.New <QueuePoli>(true); searchPredicate = searchPredicate.And(searchCriteria); if (request.Data.PoliToID != 0) { searchPredicate = searchPredicate.And(p => p.PoliTo == request.Data.PoliToID); } if (request.Data.ClinicID != 0) { searchPredicate = searchPredicate.And(p => p.ClinicID == request.Data.ClinicID); } if (request.Data.Status != -1) { searchPredicate = searchPredicate.And(p => p.Status == request.Data.Status); } if (request.Data.strIsPreExamine != string.Empty) { bool _isAlreadyPreExamine = Convert.ToBoolean(request.Data.strIsPreExamine); searchPredicate = searchPredicate.And(p => p.IsPreExamine == _isAlreadyPreExamine); } if (!String.IsNullOrEmpty(request.SearchValue) && !String.IsNullOrWhiteSpace(request.SearchValue)) { searchPredicate = searchPredicate.And(p => p.Patient.Name.Contains(request.SearchValue) || p.Doctor.Name.Contains(request.SearchValue) || p.Patient.MRNumber.Contains(request.SearchValue)); } if (!(string.IsNullOrEmpty(request.SortColumn) && string.IsNullOrEmpty(request.SortColumnDir))) { if (request.SortColumnDir == "asc") { switch (request.SortColumn.ToLower()) { case "patientname": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Patient.Name)); break; case "doctorstr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Doctor.Name)); break; case "transactiondatestr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.TransactionDate)); break; default: qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.ID)); break; } } else { switch (request.SortColumn.ToLower()) { case "patientname": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Patient.Name)); break; case "doctorstr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Doctor.Name)); break; case "transactiondatestr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.TransactionDate)); break; default: qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.ID)); break; } } } else { qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, null); } foreach (var item in qry) { LoketModel lokmdl = Mapper.Map <QueuePoli, LoketModel>(item); if (item.Type == (int)RegistrationTypeEnum.MCU) { lokmdl.SortNumberCode = "M-" + string.Format("{0:D3}", item.SortNumber); } else { lokmdl.SortNumberCode = item.Poli1.Code.Trim() + "-" + string.Format("{0:D3}", item.SortNumber); } lists.Add(lokmdl); } DateTime _start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); DateTime _end = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59); lists = lists.Where(x => x.TransactionDate >= _start && x.TransactionDate <= _end).ToList(); int totalRequest = lists.Count(); var data = lists.Skip(request.Skip).Take(request.PageSize).ToList(); return(data); }
public List <LoketModel> GetFarmasiBaseLoketData(LoketRequest request, Expression <Func <QueuePoli, bool> > searchCriteria = null) { List <LoketModel> lists = new List <LoketModel>(); dynamic qry = null; var searchPredicate = PredicateBuilder.New <QueuePoli>(true); searchPredicate = searchPredicate.And(searchCriteria); if (request.Data.PoliToID != 0) { searchPredicate = searchPredicate.And(p => p.PoliTo == request.Data.PoliToID); } if (request.Data.ClinicID != 0) { searchPredicate = searchPredicate.And(p => p.ClinicID == request.Data.ClinicID); } if (!(string.IsNullOrEmpty(request.SortColumn) && string.IsNullOrEmpty(request.SortColumnDir))) { if (request.SortColumnDir == "asc") { switch (request.SortColumn.ToLower()) { case "patientname": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Patient.Name)); break; case "doctorstr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Doctor.Name)); break; case "transactiondatestr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.TransactionDate)); break; default: qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.ID)); break; } } else { switch (request.SortColumn.ToLower()) { case "patientname": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Patient.Name)); break; case "doctorstr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Doctor.Name)); break; case "transactiondatestr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.TransactionDate)); break; default: qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.ID)); break; } } } else { qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, null); } foreach (var item in qry) { // original loket long formMedicalID = ((QueuePoli)item).FormMedicalID.Value; QueuePoli sourcePoli = _unitOfWork.RegistrationRepository.GetFirstOrDefault(x => x.FormMedicalID == formMedicalID); LoketModel lokmdl = Mapper.Map <QueuePoli, LoketModel>(item); if (sourcePoli != null && sourcePoli.DoctorID != null) { lokmdl.DoctorID = sourcePoli.DoctorID.Value; lokmdl.DoctorStr = sourcePoli.Doctor != null ? sourcePoli.Doctor.Name : string.Empty; } if (item.Type == (int)RegistrationTypeEnum.MCU) { lokmdl.SortNumberCode = "M-" + string.Format("{0:D3}", item.SortNumber); } else { lokmdl.SortNumberCode = item.Poli1.Code.Trim() + "-" + string.Format("{0:D3}", item.SortNumber); } // modify the status lokmdl.StatusStr = ((PharmacyStatusEnum)lokmdl.Status).ToString(); lists.Add(lokmdl); } DateTime _start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); DateTime _end = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59); lists = lists.Where(x => x.TransactionDate >= _start && x.TransactionDate <= _end).ToList(); int totalRequest = lists.Count(); var data = lists.Skip(request.Skip).Take(request.PageSize).ToList(); return(data); }