public ActionResult CreateOrEditPoliSchedule(PoliScheduleModel _model)
        {
            if (Session["UserLogon"] != null)
            {
                _model.Account = (AccountModel)Session["UserLogon"];
            }

            var request = new PoliScheduleRequest
            {
                Data = _model,
            };

            if (_model.ReffID != 0)
            {
                request.Action = ClinicEnums.Action.Reschedule.ToString();
            }

            PoliScheduleResponse _response = new PoliScheduleValidator(_unitOfWork).Validate(request);

            ViewBag.Response   = $"{_response.Status};{_response.Message}";
            ViewBag.Clinics    = BindDropDownClinic();
            ViewBag.Doctors    = BindDropDownDoctor();
            ViewBag.Polis      = BindDropDownPoli();
            ViewBag.ActionType = request.Data.Id > 0 ? ClinicEnums.Action.Edit : ClinicEnums.Action.Add;

            if (_model.ReffID != 0)
            {
                return(View("Index"));
            }
            else
            {
                return(View());
            }
        }
        public ActionResult Reschedule()
        {
            PoliScheduleResponse _response = new PoliScheduleResponse();

            if (Request.QueryString["id"] != null)
            {
                var request = new PoliScheduleRequest
                {
                    Data = new PoliScheduleModel
                    {
                        Id = long.Parse(Request.QueryString["id"].ToString())
                    }
                };

                PoliScheduleResponse resp   = new PoliScheduleHandler(_unitOfWork).GetDetail(request);
                PoliScheduleModel    _model = resp.Entity;
                _model.ReffID      = _model.Id;
                ViewBag.Response   = _response;
                ViewBag.Clinics    = BindDropDownClinic();
                ViewBag.Doctors    = BindDropDownDoctor();
                ViewBag.Polis      = BindDropDownPoli();
                ViewBag.ActionType = ClinicEnums.Action.Reschedule;

                return(View("CreateOrEditPoliSchedule", _model));
            }
            else
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
        }
Example #3
0
        public JsonResult GetPoliScheduleInfo(string poliScheduleID, string poliID, string tanggal)
        {
            var  response        = new PoliScheduleResponse();
            long _idPoliSchedule = 0;

            if (poliScheduleID != null)
            {
                _idPoliSchedule = Convert.ToInt64(poliScheduleID);
            }
            var _poliScheduleModel = new PoliScheduleModel
            {
                Id = _idPoliSchedule
            };

            var request = new PoliScheduleRequest
            {
                Data = _poliScheduleModel
            };

            response = new PoliScheduleHandler(_unitOfWork).GetDetail(request);
            return(Json(new
            {
                Status = response.Status,
                Message = response.Message,
                ClinicName = response.Entity.ClinicName,
                PoliName = response.Entity.PoliName,
                DoctorName = response.Entity.DoctorName,
                ClinicId = response.Entity.ClinicID,
                DoctorId = response.Entity.DoctorID,
                PoliID = poliID
            }, JsonRequestBehavior.AllowGet));
        }
Example #4
0
        /// <summary>
        /// Get PoliSchedule list
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public PoliScheduleResponse GetListData(PoliScheduleRequest request)
        {
            List <PoliScheduleModel> lists = new List <PoliScheduleModel>();
            dynamic qry             = null;
            var     searchPredicate = PredicateBuilder.New <PoliSchedule>(true);

            if (!String.IsNullOrEmpty(request.SearchValue) && !String.IsNullOrWhiteSpace(request.SearchValue))
            {
                searchPredicate = searchPredicate.And(p => p.Doctor.Name.Contains(request.SearchValue) || p.Clinic.Name.Contains(request.SearchValue) || p.Poli.Name.Contains(request.SearchValue));
            }

            if (!(string.IsNullOrEmpty(request.SortColumn) && string.IsNullOrEmpty(request.SortColumnDir)))
            {
                if (request.SortColumnDir == "asc")
                {
                    switch (request.SortColumn.ToLower())
                    {
                    case "id":
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.ID));
                        break;

                    case "clinicname":
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Clinic.Name));
                        break;

                    case "poliname":
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Poli.Name));
                        break;

                    case "doctorname":
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Doctor.Name));
                        break;

                    case "statusstr":
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Status));
                        break;

                    default:
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.ID));
                        break;
                    }
                }
                else
                {
                    switch (request.SortColumn.ToLower())
                    {
                    case "id":
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.ID));
                        break;

                    case "clinicname":
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Clinic.Name));
                        break;

                    case "poliname":
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Poli.Name));
                        break;

                    case "doctorname":
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Doctor.Name));
                        break;

                    case "statusstr":
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Status));
                        break;

                    default:
                        qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.ID));
                        break;
                    }
                }
            }
            else
            {
                qry = _unitOfWork.PoliScheduleRepository.Get(searchPredicate, null);
            }

            // get status master
            var statusList = new MasterHandler(_unitOfWork).GetMasterDataByType(ClinicEnums.MasterTypes.PoliScheduleStatus.ToString()).ToList();

            foreach (var item in qry)
            {
                PoliScheduleModel prData = Mapper.Map <PoliSchedule, PoliScheduleModel>(item);
                var status = statusList.FirstOrDefault(x => x.Value == prData.Status.ToString());
                prData.StatusStr = status == null?prData.Status.ToString() : status.Name;

                lists.Add(prData);
            }

            int totalRequest = lists.Count();
            var data         = lists.Skip(request.Skip).Take(request.PageSize).ToList();

            var response = new PoliScheduleResponse
            {
                Draw            = request.Draw,
                RecordsFiltered = totalRequest,
                RecordsTotal    = totalRequest,
                Data            = data
            };

            return(response);
        }