//This method returns all users details public static List <RbacUser> GetAllUsers() { List <RbacUser> retList = (List <RbacUser>)DanpheCache.Get("RBAC-Users-All"); if (retList == null) { RbacDbContext dbContext = new RbacDbContext(connStringName); retList = dbContext.Users.ToList(); DanpheCache.Add("RBAC-Users-All", retList, cacheExpiryMinutes); } return(retList); }
//This method return All Permissions without checking user and other thing //It checks cache if list is in chache then it takes from cache else get all permission from db public static List <RbacPermission> GetAllPermissions() { List <RbacPermission> retList = (List <RbacPermission>)DanpheCache.Get("RBAC-Perms-All"); if (retList == null) { RbacDbContext dbContext = new RbacDbContext(connStringName); retList = dbContext.Permissions.ToList(); DanpheCache.Add("RBAC-Perms-All", retList, cacheExpiryMinutes); } return(retList); }
public DateTime GetCounterDay_Active(string connString) { DateTime currCounterDay = (DateTime)DanpheCache.Get("currCounterDay"); if (currCounterDay == null) { DanpheEMR.DalLayer.BillingDbContext billingDbcontext = new DalLayer.BillingDbContext(connString); } return(currCounterDay); }
public static List <RbacPermission> GetUserAllPermissions(int userId) { List <RbacPermission> retList = (List <RbacPermission>)DanpheCache.Get("RBAC-UserPermissions-UserId" + userId); if (retList == null) { var isUsrSysAdmin = (from usRole in RBAC.GetAllUserRoleMaps() where usRole.UserId == userId join role in RBAC.GetAllRoles() on usRole.RoleId equals role.RoleId where role.IsSysAdmin == true select role).Count() > 0; //return all permissions if current user is systemadmin. if (isUsrSysAdmin) { retList = RBAC.GetAllPermissions(); } else { retList = (from urole in RBAC.GetAllUserRoleMaps() where urole.UserId == userId && urole.IsActive == true join role in RBAC.GetAllRoles() on urole.RoleId equals role.RoleId join rolePmap in RBAC.GetAllRolePermissionMaps() on urole.RoleId equals rolePmap.RoleId join perm in RBAC.GetAllPermissions() on rolePmap.PermissionId equals perm.PermissionId where rolePmap.IsActive == true join app in RBAC.GetAllApplications() on perm.ApplicationId equals app.ApplicationId where app.IsActive == true select perm).ToList(); } DanpheCache.Add("RBAC-UserPermissions-UserId" + userId, retList, cacheExpiryMinutes); } return(retList); }
public string Get(string reqType, string EmpIds, string dates) { DanpheHTTPResponse <object> responseData = new DanpheHTTPResponse <object>(); SchedulingDbContext schDbContext = new SchedulingDbContext(connString); MasterDbContext masterDb = new MasterDbContext(connString); try { List <DepartmentModel> allDeptsFromCache = (List <DepartmentModel>)DanpheCache.GetMasterData(MasterDataEnum.Department); List <EmployeeModel> empListFromCache = (List <EmployeeModel>)DanpheCache.GetMasterData(MasterDataEnum.Employee); #region GET: List of Employees if (reqType == "employeelist") { var result = (from e in empListFromCache join d in allDeptsFromCache on e.DepartmentId equals d.DepartmentId select new { e.EmployeeId, d.DepartmentId, d.DepartmentName, EmployeeName = e.Salutation + ". " + e.FirstName + " " + (string.IsNullOrEmpty(e.MiddleName) ? "" : e.MiddleName + " ") + e.LastName, }).ToList(); responseData.Status = "OK"; responseData.Results = result; } #endregion #region GET: Employee Schedules else if (reqType == "getEmpSchedule") { string[] employeeIDs = EmpIds.Split(','); string[] curDates = dates.Split(','); List <object> res = new List <object>(); var abc = (from emp in empListFromCache join dept in allDeptsFromCache on emp.DepartmentId equals dept.DepartmentId join e in employeeIDs on emp.EmployeeId.ToString() equals e select new { emp.EmployeeId, EmployeeName = emp.Salutation + ". " + emp.FirstName + " " + (string.IsNullOrEmpty(emp.MiddleName) ? "" : emp.MiddleName + " ") + emp.LastName, DepartmentName = dept.DepartmentName, defSCH = (from daywise in schDbContext.DayWiseAvailability where daywise.EmployeeId == emp.EmployeeId select new { daywise.DayName, IsWorkingDay = daywise.IsWorking }).ToList(), loadSCH = (from em in schDbContext.Employee join sch in schDbContext.EmpSchedules on em.EmployeeId equals sch.EmployeeId into schTemp from s in schTemp.DefaultIfEmpty() join date in curDates on s.Date.ToString() equals date where em.EmployeeId == emp.EmployeeId select new { Id = s.EmployeeSCHId, TxnType = "Update", Date = s.Date.Value, s.DayName, s.IsWorkingDay }).ToList(), }).ToList(); responseData.Status = "OK"; responseData.Results = abc; } #endregion #region GET: list of shifts master else if (reqType == "getShiftList") { var shiftList = schDbContext.ShiftsMaster.OrderByDescending(a => a.IsDefault).ToList(); responseData.Status = "OK"; responseData.Results = shiftList; } #endregion #region GET: list of Employee working hours else if (reqType == "getEmpWHList") { List <object> res = new List <object>(); var empDetails = (from emp in masterDb.Employees join dept in masterDb.Departments on emp.DepartmentId equals dept.DepartmentId join role in masterDb.EmployeeRole on emp.EmployeeRoleId equals role.EmployeeRoleId select new { emp.EmployeeId, EmployeeName = emp.Salutation + ". " + emp.FirstName + " " + (string.IsNullOrEmpty(emp.MiddleName) ? "" : emp.MiddleName + " ") + emp.LastName, emp.DepartmentId, dept.DepartmentName, emp.EmployeeRoleId, role.EmployeeRoleName }).ToList(); var empWorkingHours = (from emp in empDetails join m in schDbContext.EmpShiftMAP on emp.EmployeeId equals m.EmployeeId into mTemp from map in mTemp.DefaultIfEmpty() join shift in schDbContext.ShiftsMaster on(map != null ? map.ShiftId : 0) equals shift.ShiftId where (map != null ? map.IsActive : false) == true group new { emp, map, shift } by new { emp.EmployeeId, emp.EmployeeName, emp.EmployeeRoleName, emp.DepartmentName } into WH select new { WH.Key.EmployeeId, WH.Key.EmployeeName, WH.Key.DepartmentName, WH.Key.EmployeeRoleName, NoOfShifts = WH.Select(a => a.map.ShiftId).Count(), Shifts = WH.Select(a => new { a.map.EmployeeShiftMapId, a.map.ShiftId, a.shift.ShiftName, a.shift.StartTime, a.shift.EndTime, a.shift.TotalHrs, a.map.IsActive, a.shift.IsDefault //,IsEditable = (from m in schDbContext.EmpShiftMAP // where m.ShiftId == a.map.ShiftId // select new { m.ShiftId }).Count().Equals(1) }).OrderBy(z => z.StartTime).ToList(), TotalWorkingHrs = WH.Sum(a => a.shift.TotalHrs) }).ToList(); var empNOworkingHours = (from emp in empDetails where !schDbContext.EmpShiftMAP.Any(x => x.EmployeeId == emp.EmployeeId && x.IsActive == true) select new { emp.EmployeeId, emp.EmployeeName, emp.EmployeeRoleName, emp.DepartmentName, NoOfShifts = 0, TotalWorkingHrs = 0 }).ToList(); foreach (var x in empWorkingHours) { res.Add(x); } foreach (var x in empNOworkingHours) { res.Add(x); } //var workingHours = (from map in schDbContext.EmpShiftMAP // join e in schDbContext.Employee on map.EmployeeId equals e.EmployeeId // join d in allDepts on e.DepartmentId equals d.DepartmentId // join s in schDbContext.ShiftsMaster on map.ShiftId equals s.ShiftId // join r in schDbContext.EmpRole on e.EmployeeRoleId equals r.EmployeeRoleId // where map.IsActive == true // group new { map, e, s } by new // { // e.EmployeeId, // EmployeeName = e.Salutation + ". " + e.FirstName + " " + (string.IsNullOrEmpty(e.MiddleName) ? "" : e.MiddleName + " ") + e.LastName, // d.DepartmentId, // d.DepartmentName, // r.EmployeeRoleName // } into x // select new // { // x.Key.EmployeeId, // x.Key.EmployeeName, // x.Key.DepartmentId, // x.Key.DepartmentName, // x.Key.EmployeeRoleName, // NoOfShifts = x.Select(a => a.map.ShiftId).Count(), // Shifts = x.Select(a => new // { // a.map.EmployeeShiftMapId, // a.map.ShiftId, // a.s.ShiftName, // a.s.StartTime, // a.s.EndTime, // a.s.TotalHrs, // a.map.IsActive, // a.s.IsDefault // //,IsEditable = (from m in schDbContext.EmpShiftMAP // // where m.ShiftId == a.map.ShiftId // // select new { m.ShiftId }).Count().Equals(1) // }).OrderBy(z => z.StartTime).ToList(), // TotalWorkingHrs = x.Sum(a => a.s.TotalHrs) // }).ToList(); responseData.Status = "OK"; responseData.Results = res; } #endregion #region GET: list of default shifts master else if (reqType == "getDefaultShifts") { var defShifts = (from s in schDbContext.ShiftsMaster where s.IsDefault == true select s).OrderBy(x => x.StartTime).ToList(); responseData.Status = "OK"; responseData.Results = defShifts; } #endregion #region else if (reqType == "getEmployeeNoShift") { //getting employee that doesnt have any active shift assigned to him/her (from EmployeeShiftMAP table) var empList = (from e in empListFromCache where !schDbContext.EmpShiftMAP.Any(x => x.EmployeeId == e.EmployeeId && x.IsActive == true) select e).ToList(); responseData.Status = "OK"; responseData.Results = empList; } #endregion } catch (Exception ex) { responseData.Status = "Failed"; responseData.ErrorMessage = ex.Message + " exception details:" + ex.ToString(); } return(DanpheJSONConvert.SerializeObject(responseData, true)); }
public string Get(string type, string reqType, string inputValue, int employeeId, int countryId, int wardId, int bedTypeId, string departmentName) { string returnValue = string.Empty; DanpheHTTPResponse <object> responseData = new DanpheHTTPResponse <object>(); if (type == "department") { //get the value from danphecache List <DepartmentModel> deptList = (List <DepartmentModel>)DanpheCache.GetMasterData(MasterDataEnum.Department); //search in the departmentlist List <DepartmentModel> filteredList = new List <DepartmentModel>(); if (string.IsNullOrEmpty(inputValue)) { //when the request is coming from appointment, we've to return only those values where IsAppointmentApplicable=true. if (reqType == "appointment") { filteredList = (from d in deptList where d.IsAppointmentApplicable == true select d).ToList(); } else { filteredList = deptList; } } else { filteredList = (from d in deptList where d.DepartmentName.ToLower().Contains(inputValue.ToLower()) select d).ToList(); } //add into DanpheHTTPResponse format. var formatedResult = new DanpheHTTPResponse <List <DepartmentModel> >() { Results = filteredList, Status = "OK" }; returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); return(returnValue); } // this is used to get the CountrySubDivision to countryId else if (type == "GetCountrySubDivision") { MasterDbContext dbMaster = new MasterDbContext(connString); List <CountrySubDivisionModel> CountrySubDivision = new List <CountrySubDivisionModel>(); //if countryId == 0 then bring all the CountrySubDivision from the CountrySubDivision table //else bring accroding to the countryId given if (countryId == 0) { //filtering isactive records only--needs revision: sud 12apr'18 CountrySubDivision = (from s in dbMaster.CountrySubDivision where s.IsActive == true select s).ToList(); } else { //filtering isactive records only--needs revision: sud 12apr'18 CountrySubDivision = (from SubDivision in dbMaster.CountrySubDivision select SubDivision).Where(s => s.CountryId == countryId && s.IsActive == true).ToList(); } var formatedResult = new DanpheHTTPResponse <List <CountrySubDivisionModel> >() { Results = CountrySubDivision, Status = "OK" }; returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); } else if (type == "get-countries") { MasterDbContext dbMaster = new MasterDbContext(connString); List <CountryModel> Country = new List <CountryModel>(); Country = (from country in dbMaster.Country where country.IsActive == true select country).ToList(); var formatedResult = new DanpheHTTPResponse <List <CountryModel> >() { Results = Country, Status = "OK" }; returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); } else if (type == "departmentByEmployeeId") { //get the value from danphecache List <DepartmentModel> deptList = (List <DepartmentModel>)DanpheCache.GetMasterData(MasterDataEnum.Department); List <EmployeeModel> empListFromCache = (List <EmployeeModel>)DanpheCache.GetMasterData(MasterDataEnum.Employee); DepartmentModel department = (from d in deptList join e in empListFromCache on d.DepartmentId equals e.DepartmentId where e.EmployeeId == employeeId select d).FirstOrDefault(); //search in the departmentlist //add into DanpheHTTPResponse format. var formatedResult = new DanpheHTTPResponse <DepartmentModel>() { Results = department, Status = "OK" }; returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); return(returnValue); } else if (type == "departmentemployee") { List <EmployeeModel> empListFromCache = (List <EmployeeModel>)DanpheCache.GetMasterData(MasterDataEnum.Employee); List <EmployeeModel> filteredList = new List <EmployeeModel>(); string status = string.Empty; if (string.IsNullOrEmpty(inputValue) || inputValue == "0") { //if request has come from appointment, only provide those employees where appointment is applicable . //else return all employees. if (reqType == "appointment") { // List<DepartmentModel> allDeptsFromCache = (List<DepartmentModel>)DanpheCache.GetMasterData(MasterDataEnum.Department); //sud: 15Jun'18 -- removed departmentjoin as IsAppointmentApplicable field is now added in Employee Level as well. //List<EmployeeModel> apptEmployees = (from e in empListFromCache // join d in allDeptsFromCache // on e.DepartmentId equals d.DepartmentId // where d.IsAppointmentApplicable == true // select e // ).ToList(); List <EmployeeModel> apptEmployees = empListFromCache.Where(emp => emp.IsAppointmentApplicable.HasValue && emp.IsAppointmentApplicable == emp.IsActive == true).ToList(); filteredList = apptEmployees; } else { filteredList = empListFromCache; } status = "OK"; } else { //inputValue should be integer, else it'll crash. int deptId = 0; if (int.TryParse(inputValue, out deptId)) { filteredList = (from e in empListFromCache where e.DepartmentId == deptId select e).ToList <EmployeeModel>(); status = "OK"; } else { status = "Failed"; } } var formattedList = new DanpheHTTPResponse <List <EmployeeModel> >() { Results = filteredList, Status = status }; returnValue = DanpheJSONConvert.SerializeObject(formattedList, true); return(returnValue); } //used in lab-signature component and radiology component and can be used wherever required in future [Reusable] else if (type == "signatories") //changed { List <DepartmentModel> deptList = (List <DepartmentModel>)DanpheCache.GetMasterData(MasterDataEnum.Department); List <EmployeeModel> empListFromCache = (List <EmployeeModel>)DanpheCache.GetMasterData(MasterDataEnum.Employee); List <EmployeeModel> filteredList = new List <EmployeeModel>(); MasterDbContext dbMaster = new MasterDbContext(connString); var doctorRoleId = (from master in dbMaster.EmployeeRole where master.EmployeeRoleName.ToLower() == "doctor" select master.EmployeeRoleId).FirstOrDefault(); if (departmentName.ToLower() == "lab") { filteredList = (from emp in empListFromCache join dept in deptList on emp.DepartmentId equals dept.DepartmentId where (dept.DepartmentName.ToLower() == "lab" || dept.DepartmentName.ToLower() == "pathology") && emp.IsActive == true select emp).OrderBy(e => e.DisplaySequence).ToList(); } else { filteredList = (from emp in empListFromCache join dept in deptList on emp.DepartmentId equals dept.DepartmentId where dept.DepartmentName.ToLower() == departmentName.ToLower() && emp.EmployeeRoleId == doctorRoleId && emp.IsActive == true //sud:1Jun'19--take only active employees. select emp).OrderBy(e => e.DisplaySequence).ToList(); } var formattedList = new DanpheHTTPResponse <List <EmployeeModel> >() { Results = filteredList, Status = "OK" }; returnValue = DanpheJSONConvert.SerializeObject(formattedList, true); return(returnValue); } else if (type == "icdcode") { //get the value from danphecache List <ICD10CodeModel> icdListFrmCache = (List <ICD10CodeModel>)DanpheCache.GetMasterData(MasterDataEnum.ICD10); //search in the departmentlist List <ICD10CodeModel> filteredList = new List <ICD10CodeModel>(); if (string.IsNullOrEmpty(inputValue)) { filteredList = icdListFrmCache; } else { filteredList = (from d in icdListFrmCache //add where d.ICD10Description.ToLower().Contains(inputValue.ToLower()) || d.ICD10Code.ToLower().Contains(inputValue.ToLower()) select d).ToList(); } //add into DanpheHTTPResponse format. var formatedResult = new DanpheHTTPResponse <List <ICD10CodeModel> >() { Results = filteredList, Status = "OK" }; returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); return(returnValue); } else if (type == "employee") { //get the value from danphecache List <EmployeeModel> employeeFrmCache = (List <EmployeeModel>)DanpheCache.GetMasterData(MasterDataEnum.Employee); //search in the departmentlist List <EmployeeModel> filteredList = new List <EmployeeModel>(); if (string.IsNullOrEmpty(inputValue)) { filteredList = employeeFrmCache; } else { filteredList = (from e in employeeFrmCache //add where (e.FirstName.ToLower().Contains(inputValue.ToLower()) || e.LastName.ToLower().Contains(inputValue.ToLower())) select e).ToList(); } //add into DanpheHTTPResponse format. var formatedResult = new DanpheHTTPResponse <List <EmployeeModel> >() { Results = filteredList, Status = "OK" }; returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); } else if (type == "medicine") { //get the value from danphecache List <PHRMItemMasterModel> medicineFrmCache = (List <PHRMItemMasterModel>)DanpheCache.GetMasterData(MasterDataEnum.Medicine); //search in the departmentlist List <PHRMItemMasterModel> filteredList = new List <PHRMItemMasterModel>(); if (string.IsNullOrEmpty(inputValue)) { filteredList = medicineFrmCache; } else { filteredList = (from m in medicineFrmCache where m.ItemName.ToLower().Contains(inputValue.ToLower()) select m).ToList(); } //add into DanpheHTTPResponse format. var formatedResult = new DanpheHTTPResponse <List <PHRMItemMasterModel> >() { Results = filteredList, Status = "OK" }; returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); } else if (type == "reaction") { //get the value from danphecache List <ReactionModel> reactionFrmCache = (List <ReactionModel>)DanpheCache.GetMasterData(MasterDataEnum.Reaction); //search in the departmentlist List <ReactionModel> filteredList = new List <ReactionModel>(); if (string.IsNullOrEmpty(inputValue)) { filteredList = reactionFrmCache; } else { //search in both reactinname as well as reactioncode. filteredList = (from r in reactionFrmCache where r.ReactionName.ToLower().Contains(inputValue.ToLower()) || r.ReactionCode.ToLower().Contains(inputValue.ToLower()) select r).ToList(); } //add into DanpheHTTPResponse format. var formatedResult = new DanpheHTTPResponse <List <ReactionModel> >() { Results = filteredList, Status = "OK" }; returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); } else if (type == "imagingitem") { //get the value from danphecache List <RadiologyImagingItemModel> imagingitemFrmCache = (List <RadiologyImagingItemModel>)DanpheCache.GetMasterData(MasterDataEnum.ImagingItems); //search in the departmentlist List <RadiologyImagingItemModel> filteredList = new List <RadiologyImagingItemModel>(); string status = string.Empty; if (string.IsNullOrEmpty(inputValue) || inputValue == "0") { filteredList = imagingitemFrmCache; } else { int typeId = 0; if (int.TryParse(inputValue, out typeId)) { filteredList = (from i in imagingitemFrmCache where (i.ImagingTypeId == typeId) select i).ToList(); status = "OK"; } else { status = "Failed"; } } var formattedList = new DanpheHTTPResponse <List <RadiologyImagingItemModel> >() { Results = filteredList, Status = status }; returnValue = DanpheJSONConvert.SerializeObject(formattedList, true); return(returnValue); } else if (type == "GetWards") { MasterDbContext dbMaster = new MasterDbContext(connString); List <WardModel> wardList = new List <WardModel>(); wardList = (from ward in dbMaster.Ward select ward).ToList(); var formatedResult = new DanpheHTTPResponse <List <WardModel> >() { Results = wardList, Status = "OK" }; returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); } else if (type == "AllMasters") { List <ServiceDepartmentModel> srvDeptList = (List <ServiceDepartmentModel>)DanpheCache.GetMasterData(MasterDataEnum.ServiceDepartment); List <DepartmentModel> departments = (List <DepartmentModel>)DanpheCache.GetMasterData(MasterDataEnum.Department); List <TaxModel> taxes = (List <TaxModel>)DanpheCache.GetMasterData(MasterDataEnum.Taxes); UniquePastDataModel allPastPatUniqueData = (UniquePastDataModel)DanpheCache.GetMasterData(MasterDataEnum.PastUniqueData); //Add other master tables if they need to be loaded at the beginning var srvDpts = FormatServiceDepts(srvDeptList, departments); var masters = new { ServiceDepartments = srvDpts, Departments = departments, Taxes = taxes, UniqueDataList = allPastPatUniqueData }; responseData.Results = masters; responseData.Status = "OK"; returnValue = DanpheJSONConvert.SerializeObject(responseData, true); } //else if (type == "GetBedFeatures") //{ // MasterDbContext dbMaster = new MasterDbContext(connString); // List<BedTypeModel> bedTypeList = new List<BedTypeModel>(); // if (wardId != 0) // { // bedTypeList = (from bedType in dbMaster.BedType // join bed in dbMaster.Bed on bedType.BedTypeId equals bed.BedTypeId // where bed.WardId == wardId // select bedType).Distinct().ToList(); // } // var formatedResult = new DanpheHTTPResponse<List<BedTypeModel>>() { Results = bedTypeList, Status = "OK" }; // returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); //} //else if (type == "GetAvailableBeds") //{ // MasterDbContext dbMaster = new MasterDbContext(connString); // List<BedModel> bedList = new List<BedModel>(); // if (wardId != 0 && bedTypeId != 0) // { // bedList = (from bed in dbMaster.Bed // where bed.BedTypeId == bedTypeId && bed.WardId == wardId && bed.IsOccupied == false // select bed).ToList(); // } // var formatedResult = new DanpheHTTPResponse<List<BedModel>>() { Results = bedList, Status = "OK" }; // returnValue = DanpheJSONConvert.SerializeObject(formatedResult, true); //} return(returnValue); }