public SecuritySetupVm GetSecuritySetupVm(int employeeId)
        {
            var result   = new SecuritySetupVm();
            var employee = this.employeeIt2Manager.GetEmployeeFromIt2(employeeId);

            if (employee != null)
            {
                result.EmployeeId = employeeId;
                result.UserName   = employee.FirstName + " " + employee.LastName;
                var isLogiEnabled = this.logiIntegrationManager.GetLogiFeatureAvailability(employee.CompanyId);
                result.IsDashboardEnabled = isLogiEnabled.IsAvailable;

                var sec   = new Security();
                var roles = sec.GetUserRoles(employee.UserId, true);
                if (roles.Count > 0)
                {
                    foreach (var lookup in roles)
                    {
                        SetRole(lookup, result);
                    }
                }
            }

            return(result);
        }
        /// <summary>The set role.</summary>
        /// <param name="lookup">The lookup.</param>
        /// <param name="result">The result.</param>
        private static void SetRole(Lookup lookup, SecuritySetupVm result)
        {
            switch (lookup.Description)
            {
            case "Accounting":
                result.AccountingReports = true;
                break;

            case "Marketing And Recalls":
                result.MarketingReports = true;
                break;

            case "Sales Reports":
                result.SalesReports = true;
                break;

            case "Change Order Dates":
                result.ChangeOrderDates = true;
                break;

            case "Patient Order Remakes":
                result.PatientOrderRemakes = true;
                break;

            case "Combine Patient Profiles":
                result.PatientMerge = true;
                break;

            case "Schedule Exceptions":
                result.ScheduleExceptions = true;
                break;

            case "Apply Discounts":
                result.ApplyDiscounts = true;
                break;

            case "Collections":
                result.Collections = true;
                break;

            case "Manual Insurance Calculations":
                result.ManualInsuranceCalculations = true;
                break;

            case "Override Default Deposit":
                result.OverrideDefaultDeposit = true;
                break;

            case "Patient Returns":
                result.PatientReturns = true;
                break;

            case "Price Adjustments":
                result.PriceAdjustments = true;
                break;

            case "Refund":
                result.ProcessRefunds = true;
                break;

            case "Daily Closing":
                result.DailyClosing = true;
                break;

            case "Financial Setup":
                result.FinancialSetup = true;
                break;

            case "Insurance Admin":
                result.InsuranceAdmin = true;
                break;

            case "Company Setup":
                result.PracticeSetup = true;
                break;

            case "Recall Setup":
                result.RecallSetup = true;
                break;

            case "Resource Setup":
                result.ResourceSetup = true;
                break;

            case "Billing Management":
                result.BatchAdjustments = true;
                break;

            case "Billing":
                result.BillingReports = true;
                break;

            case "Billing Claims":
                result.ProcessClaims = true;
                break;

            case "Billing Payments":
                result.ProcessPayments = true;
                break;

            case "Emergency Access":
                result.EmergencyAccess = true;
                break;

            case "Reset Resource Password":
                result.ResetResourcePassword = true;
                break;

            case "Security Setup":
                result.SecuritySetup = true;
                break;

            case "Inventory Adjustment":
                result.InventoryAdjustments = true;
                break;

            case "Change Payment Types":
                result.ChangePaymentTypes = true;
                break;

            case "Billing Dashboard":
                result.BillingDashboard = true;
                break;

            case "Inventory Dashboard":
                result.InventoryDashboard = true;
                break;

            case "Medical Dashboard":
                result.MedicalDashboard = true;
                break;

            case "Operations Dashboard":
                result.OperationsDashboard = true;
                break;

            case "Sales Dashboard":
                result.SalesDashboard = true;
                break;

            default:
                Logger.Error("SetRole: Unknown Role Lookup Description: " + lookup.Description);
                break;
            }
        }
        public HttpResponseMessage SaveSecuritySetup([FromBody] SecuritySetupVm vm)
        {
            var sec      = new SecurityManager();
            var secIt2   = new SecurityIt2Manager();
            var lst      = new List <int>();
            var roles    = secIt2.GetSingleLocationRoleLookups().ToList();
            var employee = this.employeeIt2Manager.GetEmployeeFromIt2(vm.EmployeeId);

            if (vm.AccountingReports)
            {
                lst.Add(GetKey("Accounting", roles));
            }

            if (vm.MarketingReports)
            {
                lst.Add(GetKey("Marketing And Recalls", roles));
            }

            if (vm.SalesReports)
            {
                lst.Add(GetKey("Sales Reports", roles));
            }

            if (vm.ChangeOrderDates)
            {
                lst.Add(GetKey("Change Order Dates", roles));
            }

            if (vm.PatientOrderRemakes)
            {
                lst.Add(GetKey("Patient Order Remakes", roles));
            }

            if (vm.PatientMerge)
            {
                lst.Add(GetKey("Combine Patient Profiles", roles));
            }

            if (vm.ScheduleExceptions)
            {
                lst.Add(GetKey("Schedule Exceptions", roles));
            }

            if (vm.ApplyDiscounts)
            {
                lst.Add(GetKey("Apply Discounts", roles));
            }

            if (vm.Collections)
            {
                lst.Add(GetKey("Collections", roles));
            }

            if (vm.ManualInsuranceCalculations)
            {
                lst.Add(GetKey("Manual Insurance Calculations", roles));
            }

            if (vm.OverrideDefaultDeposit)
            {
                lst.Add(GetKey("Override Default Deposit", roles));
            }

            if (vm.PatientReturns)
            {
                lst.Add(GetKey("Patient Returns", roles));
            }

            if (vm.PriceAdjustments)
            {
                lst.Add(GetKey("Price Adjustments", roles));
            }

            if (vm.ProcessRefunds)
            {
                lst.Add(GetKey("Refund", roles));
            }

            if (vm.DailyClosing)
            {
                lst.Add(GetKey("Daily Closing", roles));
            }

            if (vm.FinancialSetup)
            {
                lst.Add(GetKey("Financial Setup", roles));
            }

            if (vm.InsuranceAdmin)
            {
                lst.Add(GetKey("Insurance Admin", roles));
            }

            if (vm.PracticeSetup)
            {
                lst.Add(GetKey("Company Setup", roles));
            }

            if (vm.RecallSetup)
            {
                lst.Add(GetKey("Recall Setup", roles));
            }

            if (vm.ResourceSetup)
            {
                lst.Add(GetKey("Resource Setup", roles));
            }

            if (vm.BatchAdjustments)
            {
                lst.Add(GetKey("Billing Management", roles));
            }

            if (vm.BillingReports)
            {
                lst.Add(GetKey("Billing", roles));
            }

            if (vm.ProcessClaims)
            {
                lst.Add(GetKey("Billing Claims", roles));
            }

            if (vm.ProcessPayments)
            {
                lst.Add(GetKey("Billing Payments", roles));
            }

            if (vm.EmergencyAccess)
            {
                lst.Add(GetKey("Emergency Access", roles));
            }

            if (vm.ResetResourcePassword)
            {
                lst.Add(GetKey("Reset Resource Password", roles));
            }

            if (vm.SecuritySetup)
            {
                lst.Add(GetKey("Security Setup", roles));
            }

            if (vm.InventoryAdjustments)
            {
                lst.Add(GetKey("Inventory Adjustment", roles));
            }

            if (vm.ChangePaymentTypes)
            {
                lst.Add(GetKey("Change Payment Types", roles));
            }

            if (vm.BillingDashboard)
            {
                lst.Add(GetKey("Billing Dashboard", roles));
            }

            if (vm.InventoryDashboard)
            {
                lst.Add(GetKey("Inventory Dashboard", roles));
            }

            if (vm.MedicalDashboard)
            {
                lst.Add(GetKey("Medical Dashboard", roles));
            }

            if (vm.OperationsDashboard)
            {
                lst.Add(GetKey("Operations Dashboard", roles));
            }

            if (vm.SalesDashboard)
            {
                lst.Add(GetKey("Sales Dashboard", roles));
            }

            sec.SaveUserRoles(employee.UserId, lst);

            return(Request.CreateResponse(HttpStatusCode.OK, "Security Settings saved."));
        }