/// <summary>
        ///  convert POCO object to viewModel object
        /// </summary>
        /// <param name="permissionpermissionPOCO"></param>
        /// <returns></returns>
        public static PermissionViewModel ToViewModel(this Model.Permission permissionPOCO)
        {
            var permissionViewModel = new PermissionViewModel();

            return(new PermissionViewModel()
            {
                PermissionId = permissionPOCO.permissionID,
                PermissionParentId = permissionPOCO.permissionParentID,
                PermissionName = permissionPOCO.permissionName,
                PermissionReMark = permissionPOCO.permissionRemark,
                PermissionAreaName = permissionPOCO.permissionAreaName,
                PermissionControllerName = permissionPOCO.permissionControllerName,
                PermissionActionName = permissionPOCO.permissionActionName,
                PermissionFormMethod = permissionPOCO.permissionFormMethod,
                PermissionOperationType = permissionPOCO.permissionOperationType,
                PermissionJsMethodName = permissionPOCO.permissionJSMethodName,
                PermissionIco = permissionPOCO.permissionIcon,
                PermissionIsLink = permissionPOCO.permissionIsLink,
                PermissionOrder = permissionPOCO.permissionOrder,
                PermissionIsShow = permissionPOCO.permissionIsShow
            });
        }
Exemplo n.º 2
0
        public List <Model.Company> GetCompanyPermission(string userId)
        {
            MySqlCommand    mySqlCmd = null;
            MySqlDataReader reader   = null;

            try
            {
                string query = string.Format("SELECT rating, {1}.*, {8}.id as Rid, {8}.name as Rname, {4}.id as Aid, {4}.name as Aname, {5}.id as Pid, {5}.name as Pname FROM {0} " +
                                             "INNER JOIN {1} ON {0}.company_id={1}.id AND {1}.deleted=0 AND {1}.enabled=1 " +
                                             "INNER JOIN {2} ON {0}.user_id={2}.user_id AND {2}.company_id={0}.company_id " +
                                             "INNER JOIN {3} ON {2}.role_id={3}.role_id " +
                                             "INNER JOIN {4} ON {4}.id={3}.activity_id " +
                                             "INNER JOIN {5} ON {5}.id={3}.permission_id " +
                                             "INNER JOIN {8} ON {8}.id={3}.role_id " +
                                             "LEFT JOIN (SELECT {6}.company_id, AVG(rating) as rating FROM {6}) jobDelivery ON jobDelivery.company_id={0}.company_id " +
                                             "WHERE {0}.user_id={7}",
                                             "user_company", "companies", "user_role", "role_activity_permission", "activities", "permissions", "job_delivery", userId, "roles");

                mySqlCmd = new MySqlCommand(query);
                reader   = PerformSqlQuery(mySqlCmd);
                List <Model.Company> result = new List <Model.Company>();

                while (reader.Read())
                {
                    var companyId    = reader["id"].ToString();
                    var previousData = result.Find(t => t.companyId.CompareTo(companyId) == 0);
                    if (previousData == null)
                    {
                        // new company data
                        previousData = new Model.Company()
                        {
                            companyId          = companyId.ToString(),
                            name               = reader["name"].ToString(),
                            address1           = reader["address_1"].ToString(),
                            address2           = reader["address_2"].ToString(),
                            postcode           = reader["postcode"].ToString(),
                            stateId            = reader["state_id"].ToString(),
                            countryId          = reader["country_id"].ToString(),
                            registrationNumber = reader["registration_number"].ToString(),
                            enabled            = (int)reader["enabled"] == 0 ? false : true,
                            rating             = String.IsNullOrEmpty(reader["rating"].ToString()) ? 0 : reader.GetFloat("rating"),
                            rolePermissionList = new List <Model.Role>()
                        };

                        result.Add(previousData);
                    }

                    var roleId             = reader["Rid"].ToString();
                    var rolePermissionList = previousData.rolePermissionList.Find(t => t.roleId.CompareTo(roleId) == 0);
                    if (rolePermissionList == null)
                    {
                        rolePermissionList = new Model.Role()
                        {
                            roleId         = reader["Rid"].ToString(),
                            name           = reader["Rname"].ToString(),
                            permissionList = new List <Model.Permission>()
                        };

                        previousData.rolePermissionList.Add(rolePermissionList);
                    }

                    var permissionId   = reader["Pid"].ToString();
                    var permissionList = rolePermissionList.permissionList.Find(t => t.permissionId.CompareTo(permissionId) == 0);
                    if (permissionList == null)
                    {
                        permissionList = new Model.Permission()
                        {
                            permissionId = reader["Pid"].ToString(),
                            name         = reader["Pname"].ToString(),
                            activityList = new List <Model.Activity>()
                        };

                        rolePermissionList.permissionList.Add(permissionList);
                    }

                    permissionList.activityList.Add(new Model.Activity()
                    {
                        activityId = reader["Aid"].ToString(),
                        name       = reader["Aname"].ToString()
                    });
                }

                return(result);
            }
            catch (Exception e)
            {
                DBLogger.GetInstance().Log(DBLogger.ESeverity.Info, e.Message);
                DBLogger.GetInstance().Log(DBLogger.ESeverity.Info, e.StackTrace);
            }
            finally
            {
                CleanUp(reader, mySqlCmd);
            }

            return(null);
        }