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