예제 #1
0
        private PatientResponse ValidateForDelete(PatientRequest request)
        {
            var response = new PatientResponse();

            bool isHavePrivilege = IsHaveAuthorization(DELETE_PRIVILEGE_NAME, request.Data.Account.Privileges.PrivilegeIDs);

            if (!isHavePrivilege)
            {
                response.Status  = false;
                response.Message = Messages.UnauthorizedAccess;
            }

            if (response.Status)
            {
                response = new PatientHandler(_unitOfWork, _context).RemoveData(request);
            }

            return(response);
        }
예제 #2
0
        public PatientResponse Validate(PatientRequest request)
        {
            var response = new PatientResponse();

            if (request.Action != null)
            {
                if (request.Action.Equals(ClinicEnums.Action.DELETE.ToString()))
                {
                    response = ValidateForDelete(request);
                }
            }
            else
            {
                bool isHavePrivilege = true;

                //field validation
                if (String.IsNullOrEmpty(request.Data.Name) || String.IsNullOrWhiteSpace(request.Data.Name))
                {
                    errorFields.Add("Name");
                }
                if (String.IsNullOrEmpty(request.Data.BirthDateStr) || String.IsNullOrWhiteSpace(request.Data.BirthDateStr))
                {
                    errorFields.Add("Birthdate");
                }

                if (String.IsNullOrEmpty(request.Data.Address) || String.IsNullOrWhiteSpace(request.Data.Address))
                {
                    errorFields.Add("Address");
                }

                var _typedesc = _unitOfWork.MasterRepository.GetFirstOrDefault(x => x.Type == Constants.MasterType.PATIENT_TYPE && x.Value == request.Data.Type.ToString());
                if (_typedesc != null)
                {
                    if (_typedesc.Name.ToLower() == "company")
                    {
                        if (request.Data.EmployeeID == 0)
                        {
                            errorFields.Add("Employee");
                        }
                        if (request.Data.familyRelationshipID == 0)
                        {
                            errorFields.Add("Employee Relation");
                        }
                    }
                }

                if (errorFields.Any())
                {
                    response.Status  = false;
                    response.Message = string.Format(Messages.ValidationErrorFields, String.Join(",", errorFields));
                }

                if (request.Data.Account == null)
                {
                    response.Status  = false;
                    response.Message = Messages.UnauthorizedAccess;
                }
                else
                {
                    var clinicId = _context.Organizations.FirstOrDefault(x => x.OrgCode == request.Data.Account.Organization);
                    if (clinicId != null)
                    {
                        if (clinicId.KlinikID == 0 || clinicId.KlinikID == null)
                        {
                            response.Status  = false;
                            response.Message = Messages.UserDoesNotHaveClinic;
                        }
                    }
                    else
                    {
                        response.Status  = false;
                        response.Message = Messages.UnauthorizedAccess;
                    }
                }

                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;
                }

                #region ::VALIDASI PHOTO::
                if (request.Data.file != null)
                {
                    var validImageTypes = new string[]
                    {
                        "image/gif",
                        "image/jpeg",
                        "image/pjpeg",
                        "image/png"
                    };

                    if (!validImageTypes.Contains(request.Data.file.ContentType))
                    {
                        response.Status  = false;
                        response.Message = Messages.InvalidImage;
                    }
                }
                #endregion

                if (response.Status)
                {
                    response = new PatientHandler(_unitOfWork, _context).CreateOrEdit(request);
                }
            }

            return(response);
        }