/// <summary>
 /// Adds the update facility role.
 /// </summary>
 /// <param name="model">The model.</param>
 /// <returns></returns>
 public ActionResult AddUpdateFacilityRole(FacilityRole model)
 {
     using (var bal = new FacilityRoleBal())
     {
         var newId   = 0;
         var isExist = bal.CheckIfExists(model.RoleId, model.FacilityId, model.CorporateId, model.FacilityRoleId);
         if (!isExist)
         {
             if (model.FacilityRoleId > 0)
             {
                 model.ModifiedBy   = Helpers.GetLoggedInUserId();
                 model.ModifiedDate = Helpers.GetInvariantCultureDateTime();
                 model.CreatedBy    = Helpers.GetLoggedInUserId();
                 model.CreatedDate  = Helpers.GetInvariantCultureDateTime();
             }
             else
             {
                 model.CreatedBy   = Helpers.GetLoggedInUserId();
                 model.CreatedDate = Helpers.GetInvariantCultureDateTime();
             }
             newId = bal.AddUpdateFacilityRole(model);
         }
         return(Json(newId));
     }
 }
        /// <summary>
        /// Facilities the role.
        /// </summary>
        /// <returns></returns>
        //public ActionResult FacilityRole()
        //{
        //    var facilityRoleView = new FacilityRoleView { CurrentFacilityRole = new FacilityRoleCustomModel { IsActive = true }, };
        //    using (var bal = new FacilityRoleBal())
        //    {
        //        var facilityId = 0;
        //        var corporateId = 0;
        //        var roleId = 0;
        //        if (Session[SessionNames.SessionClass.ToString()] != null)
        //        {
        //            var session = Session[SessionNames.SessionClass.ToString()] as SessionClass;
        //            facilityId = Helpers.GetLoggedInUserIsAdmin() ? 0 : session.FacilityId;
        //            corporateId = session.CorporateId;
        //            roleId = session.RoleId;
        //        }

        //        var list = bal.GetFacilityRoleListCustom(corporateId, facilityId, roleId);
        //        facilityRoleView.FacilityRolesList = list;
        //    }
        //    return View(facilityRoleView);
        //}



        public ActionResult FacilityRole()
        {
            var facilityRoleView = new FacilityRoleView
            {
                CurrentFacilityRole = new FacilityRoleCustomModel {
                    IsActive = true
                },
            };

            using (var bal = new FacilityRoleBal())
            {
                var facilityId  = Helpers.GetDefaultFacilityId();
                var corporateId = Helpers.GetSysAdminCorporateID();
                var roleId      = Convert.ToInt32(Helpers.GetDefaultRoleId());
                facilityRoleView.CurrentFacilityRole.CorporateId = corporateId;
                var admin = Helpers.GetLoggedInUserIsAdmin();
                if (admin == true)
                {
                    var list = bal.GetFacilityRoleListByAdminUser(corporateId, facilityId, roleId);
                    facilityRoleView.FacilityRolesList = list;
                }
                else
                {
                    var list = bal.GetFacilityRoleListCustom(corporateId, facilityId, roleId);
                    facilityRoleView.FacilityRolesList = list;
                }
            }
            return(View(facilityRoleView));
        }
 //function to check if Corporate Exist assigned with role
 /// <summary>
 /// Checks the corporate exist.
 /// </summary>
 /// <param name="Id">The identifier.</param>
 /// <returns></returns>
 public ActionResult CheckCorporateExist(int Id)
 {
     using (var facilityRoleBal = new FacilityRoleBal())
     {
         var result = facilityRoleBal.CheckCorporateExist(Id);
         return(Json(result));
     }
 }
 /// <summary>
 /// Checks if facility role assigned.
 /// </summary>
 /// <param name="roleId">The role identifier.</param>
 /// <param name="facilityRoleId">The facility role identifier.</param>
 /// <returns></returns>
 public ActionResult CheckIfFacilityRoleAssigned(string roleId, string facilityRoleId)
 {
     using (var bal = new FacilityRoleBal())
     {
         var isExists = bal.CheckIfRoleAssigned(Convert.ToInt32(roleId), Convert.ToInt32(facilityRoleId));
         return(Json(isExists));
     }
 }
 /// <summary>
 /// Gets the facility role by identifier.
 /// </summary>
 /// <param name="facilityRoleId">The facility role identifier.</param>
 /// <returns></returns>
 public ActionResult GetFacilityRoleById(string facilityRoleId)
 {
     using (var bal = new FacilityRoleBal())
     {
         // var current = bal.GetFacilityRoleById(Convert.ToInt32(facilityRoleId));
         var current = bal.GetFacilityRoleModelById(Convert.ToInt32(facilityRoleId));
         return(PartialView(PartialViews.FacilityRoleAddEdit, current));
     }
 }
        //public ActionResult GetFacilityRole(string facilityRoleId)
        //{
        //    using (var bal = new FacilityRoleBal())
        //    {
        //        // var current = bal.GetFacilityRoleById(Convert.ToInt32(facilityRoleId));
        //        var current = bal.GetFacilityRoleModelById(Convert.ToInt32(facilityRoleId));
        //        var jsonResult = new
        //        {
        //            current.CorporateId,
        //            current.FacilityRoleId,
        //            current.SchedulingApplied,
        //            current.IsActive,
        //            current.FacilityId,
        //            current.CarePlanAccessible
        //        };
        //        return Json(jsonResult, JsonRequestBehavior.AllowGet);
        //    }
        //}

        /// <summary>
        /// Gets the facility roles list.
        /// </summary>
        /// <returns></returns>
        public ActionResult GetFacilityRolesList()
        {
            using (var bal = new FacilityRoleBal())
            {
                var facilityId  = Helpers.GetLoggedInUserIsAdmin() ? 0 : Helpers.GetDefaultFacilityId();
                var corporateId = Helpers.GetDefaultCorporateId();
                var roleId      = Convert.ToInt32(Helpers.GetDefaultRoleId());

                var list = bal.GetFacilityRoleListCustom(corporateId, facilityId, roleId);
                return(PartialView(PartialViews.FacilityRoleList, list));
            }
        }
 /// <summary>
 /// Adds the update facility role custom model.
 /// </summary>
 /// <param name="model">The model.</param>
 /// <returns></returns>
 public ActionResult AddUpdateFacilityRoleCustomModel(FacilityRoleCustomModel model)
 {
     using (var bal = new FacilityRoleBal())
     {
         var newId   = 0;
         var isExist = bal.CheckIfExists(model.RoleId, model.FacilityId, model.CorporateId, model.FacilityRoleId);
         if (!isExist)
         {
             newId = bal.SaveFacilityRole(model, Helpers.GetLoggedInUserId(), Helpers.GetInvariantCultureDateTime());
         }
         return(Json(newId));
     }
 }
 /// <summary>
 /// Deletes the facility role.
 /// </summary>
 /// <param name="id">The identifier.</param>
 /// <returns></returns>
 public ActionResult DeleteFacilityRole(string id)
 {
     using (var bal = new FacilityRoleBal())
     {
         var current = bal.GetFacilityRoleById(Convert.ToInt32(id));
         if (current != null)
         {
             current.IsDeleted   = true;
             current.DeletedBy   = Helpers.GetLoggedInUserId();
             current.DeletedDate = Helpers.GetInvariantCultureDateTime();
             var deletedId = bal.AddUpdateFacilityRole(current);
             return(PartialView(PartialViews.FacilityRoleList, null));
         }
         return(Json(null));
     }
 }
        public ActionResult GetFacilityRolesCustomList(string corpId, string facilityId, string roleId)
        {
            using (var bal = new FacilityRoleBal())
            {
                var selectedFacilitid = facilityId;
                facilityId =
                    //Helpers.GetLoggedInUserIsAdmin()? "0":
                    ((string.IsNullOrEmpty(facilityId) || facilityId.Equals("0"))
                        ? Convert.ToString(Helpers.GetDefaultFacilityId())
                        : facilityId);

                var list = bal.GetFacilityRoleListCustom(Convert.ToInt32(corpId), Convert.ToInt32(facilityId),
                                                         Convert.ToInt32(roleId));

                list = list.OrderBy(x => x.RoleName).ToList();
                return(PartialView(PartialViews.FacilityRoleList, list));
            }
        }
        /// <summary>
        /// Checks if facility role exists.
        /// </summary>
        /// <param name="corpId">The corp identifier.</param>
        /// <param name="facilityId">The facility identifier.</param>
        /// <param name="roleId">The role identifier.</param>
        /// <param name="facilityRoleId">The facility role identifier.</param>
        /// <param name="schedulingApplied">if set to <c>true</c> [scheduling applied].</param>
        /// <returns></returns>
        public ActionResult CheckIfFacilityRoleExists(string corpId, string facilityId, string roleId,
                                                      string facilityRoleId, bool schedulingApplied)
        {
            using (var bal = new FacilityRoleBal())
            {
                if (!schedulingApplied)
                {
                    //var isRoleAssined = bal.CheckRoleIsAssignOrNot(Convert.ToInt32(roleId), Convert.ToInt32(facilityId), Convert.ToInt32(corpId));
                    //if (isRoleAssined)
                    //{
                    return(Json("-1"));
                    //}
                }


                var isExists = bal.CheckIfExists(Convert.ToInt32(roleId), Convert.ToInt32(facilityId),
                                                 Convert.ToInt32(corpId), Convert.ToInt32(facilityRoleId));
                return(Json(isExists));
            }
        }
        /// <summary>
        /// Gets the user roles.
        /// </summary>
        /// <param name="userid">The userid.</param>
        /// <returns></returns>
        private List <RoleSelectionCustomModel> GetUserRoles(int userid)
        {
            var userroleList = new List <RoleSelectionCustomModel>();
            var userroleBal  = new UserRoleBal();
            var roleBal      = new RoleBal();
            var facilityRole = new FacilityRoleBal();
            var facility     = new FacilityBal();
            var roles        = userroleBal.GetUserRolesByUserId(userid);

            foreach (var role in roles)
            {
                var roleFacilityIds = facilityRole.GetFacilityRolesByRoleId(role.RoleID);
                userroleList.AddRange(roleFacilityIds.Select(rolefacility => new RoleSelectionCustomModel
                {
                    RoleId       = role.RoleID,
                    RoleName     = roleBal.GetRoleNameById(role.RoleID),
                    FacilityName = facility.GetFacilityNameById(rolefacility.FacilityId),
                    FacilityId   = rolefacility.FacilityId,
                    CorporateId  = rolefacility.CorporateId
                }));
            }
            return(userroleList);
        }
        public ActionResult GetActiveInActiveFacilityRoleList(bool showInActive, string facilityId, string corporateId)
        {
            //var corpId = Helpers.GetSysAdminCorporateID();
            using (var bal = new FacilityRoleBal())
            {
                var selectedFacilitid = facilityId;
                facilityId =
                    //Helpers.GetLoggedInUserIsAdmin()? "0":
                    ((string.IsNullOrEmpty(facilityId) || facilityId.Equals("0"))
                        ? Convert.ToString(Helpers.GetDefaultFacilityId())
                        : facilityId);



                corporateId = ((string.IsNullOrEmpty(corporateId) || corporateId.Equals("0"))
                        ? Convert.ToString(Helpers.GetSysAdminCorporateID())
                        : corporateId);
                //var list = bal.GetFacilityRoleListCustom(Convert.ToInt32(corpId), Convert.ToInt32(facilityId),
                //    Convert.ToInt32(roleId));
                var list = bal.GetActiveInActiveRecords(showInActive, Convert.ToInt32(corporateId), Convert.ToInt32(facilityId));
                list = list.OrderBy(x => x.RoleName).ToList();
                return(PartialView(PartialViews.FacilityRoleList, list));
            }
        }
 /// <summary>
 /// Gets the tabs assigned to facility.
 /// </summary>
 /// <param name="roleid">The roleid.</param>
 /// <returns></returns>
 public ActionResult GetTabsAssignedToFacility(int roleid)
 {
     using (var facilityRole = new FacilityRoleBal())
     {
         var facilityrole   = facilityRole.GetFacilityRolesByRoleId(roleid).FirstOrDefault();
         var corporateId    = Helpers.GetDefaultCorporateId();
         var facilityid     = Helpers.GetDefaultFacilityId();
         var loggedinuserid = Helpers.GetLoggedInUserId();
         if (facilityrole != null)
         {
             corporateId = facilityrole.CorporateId;
             facilityid  = facilityrole.FacilityId;
         }
         var objTabsBal = new TabsBal();
         var tabList    = objTabsBal.GetCorporateFacilityTabList(corporateId, facilityid, roleid).Where(t => t.CurrentTab.IsActive && !t.CurrentTab.IsDeleted)
                          .ToList();
         //IEnumerable<TabsCustomModel> tabList;
         //using (var mBal = new TabsBal())
         //{
         //    tabList = mBal.GetTabsOnModuleAccessLoad(loggedinuserid, roleid, facilityid, corporateId, false, true);
         //}
         return(PartialView(PartialViews.TabsTreeView, tabList));
     }
 }
        public void CreateCorporate()
        {
            using (var corporateBal = new CorporateBal())
            {
                this.model.CorporateName           = this.GetRandomString(10);
                this.model.CorporateNumber         = this.GetRandomStringNumber(4);
                this.model.CountryID               = "45";
                this.model.StateID                 = "3";
                this.model.CityID                  = "3";
                this.model.CreatedBy               = 9999;
                this.model.CreatedDate             = DateTime.Now;
                this.model.DefaultCPTTableNumber   = "4010";
                this.model.BillEditRuleTableNumber = "100";

                corporateBal.AddUptdateCorporate(this.model); // ... Create new corporate
                int corporateId = this.model.CorporateID;

                IEnumerable <Facility> facilitylistObj = new FacilityBal().GetFacilitiesByCorpoarteId(corporateId);

                // .... Get the facilities for the newly created Corporate
                Assert.IsNotNull(facilitylistObj);    // .... check if the cororate facility created on not
                Assert.IsTrue(facilitylistObj.Any()); // .... check if there is any oject in the list
                if (facilitylistObj.Any())
                {
                    Facility facilityobj = facilitylistObj.FirstOrDefault();

                    // .... Assertion below
                    Assert.AreEqual(facilityobj.CorporateID, this.model.CorporateID);
                    Assert.IsTrue(facilityobj.FacilityName.Contains(this.model.CorporateName.Substring(0, 3)));

                    SuppliesDotComParametersBal balBSP = new SuppliesDotComParametersBal();
                    var facilityparmaters = balBSP.GetDetailsByCorporateAndFacility(
                        corporateId,
                        facilityobj.FacilityNumber);
                    Assert.IsTrue(facilityparmaters != null);
                    Assert.IsTrue(facilityparmaters.CPTTableNumber == this.model.DefaultCPTTableNumber);
                    Assert.IsTrue(facilityparmaters.BillEditRuleTableNumber == this.model.BillEditRuleTableNumber);

                    // ... Facilitystructure Checks
                    List <FacilityStructureCustomModel> facilityStructureList =
                        new FacilityStructureBal().GetFacilityStructure(facilityobj.FacilityId.ToString());
                    Assert.IsTrue(facilityStructureList.Any());

                    // ... UBed Master Checks
                    IEnumerable <BedMasterCustomModel> ubedMasterobjList =
                        new BedMasterBal().GetBedMasterListByRole(facilityobj.FacilityId, this.model.CorporateID);
                    Assert.IsTrue(ubedMasterobjList.Any());

                    // ... Role Creation Checks
                    List <Role> rolesList = new RoleBal().GetRolesByCorporateIdFacilityId(
                        this.model.CorporateID,
                        facilityobj.FacilityId);
                    Assert.IsTrue(rolesList.Any());

                    // ... Facility Roles Creation Checks
                    List <FacilityRoleCustomModel> facilityRoleList =
                        new FacilityRoleBal().GetFacilityRoleListByFacility(
                            this.model.CorporateID,
                            facilityobj.FacilityId,
                            0);
                    Assert.IsTrue(facilityRoleList.Any());

                    // ... users Creation Checks
                    List <UsersCustomModel> usersList =
                        new UsersBal().GetUsersByCorporateIdFacilityId(this.model.CorporateID, facilityobj.FacilityId);
                    Assert.IsTrue(usersList.Any());

                    // ... UserRole Creation Checks
                    // var userRoleList = new UserRoleBal().GetUserRolesByCorporateFacilityAndUserId(
                    // model.CorporateID,
                    // facilityobj.FacilityId);
                    // Assert.IsTrue(usersList.Any());

                    // ... ModuleAccess Creation Checks
                    List <ModuleAccess> moduleAccessList =
                        new ModuleAccessBal().GetModulesAccessList(this.model.CorporateID, facilityobj.FacilityId);
                    Assert.IsTrue(moduleAccessList.Any());

                    // ... DashboardIndicator Creation Checks
                    // var dashBoardIndicatorsList = new DashboardIndicatorDataBal().GetDashboardIndicatorDataList(
                    // model.CorporateID,
                    // facilityobj.FacilityId);
                    // Assert.IsTrue(dashBoardIndicatorsList.Any());
                }

                corporateBal.DeleteCorporateData(this.model.CorporateID.ToString()); // ...clean Data after Test
                Corporate corporateAftertest = corporateBal.GetCorporateById(this.model.CorporateID);
                Assert.IsNull(corporateAftertest);
            }
        }