public string getWhileLoopData() { OrganizationManager organizationManager = new OrganizationManager(); List <Organization> empty = new List <Organization>(); empty = organizationManager.GetChildItems(organizationManager.Read(null).First().Id, empty); htmlStr.Append("[{id:\""); htmlStr.Append(organizationManager.Read(null).First().Id); htmlStr.Append("\",text: \""); htmlStr.Append(organizationManager.Read(null).First().Name); htmlStr.Append("\",expanded: true,spriteCssClass: \"rootfolder\""); //Check if there is any children or not if (GetRowsByParent(organizationManager.Read(null).First().Id).Count > 0) { htmlStr.Append(",items: ["); //Les go inside Childs GetChildItems(organizationManager.Read(null).First().Id, new List <Organization>()); //End tag htmlStr.Append("]"); } htmlStr.Append("}]"); return(htmlStr.ToString()); }
//End Department Json public string getWhileLoopData() { OrganizationManager organizationManager = new OrganizationManager(); var htmlStr = new System.Text.StringBuilder(); List <Organization> empty = new List <Organization>(); empty = organizationManager.GetChildItems(organizationManager.Read(null).First().Id, empty); htmlStr.Append("<tr><td>"); htmlStr.Append(organizationManager.Read(null).First().Id); htmlStr.Append("</td><td>"); htmlStr.Append(""); htmlStr.Append("</td><td>"); htmlStr.Append(organizationManager.Read(null).First().Name); htmlStr.Append("</td></tr>"); foreach (var item in empty) { string parent = ""; if (item.ParentOrganization != null) { parent = item.ParentOrganization.Id.ToString(); } Guid id = item.Id; string name = item.Name; htmlStr.Append("<tr><td>"); htmlStr.Append(id); htmlStr.Append("</td><td>"); htmlStr.Append(parent); htmlStr.Append("</td><td>"); htmlStr.Append(name); htmlStr.Append("</td></tr>"); } return(htmlStr.ToString()); }
private void SaveBtn_Click(object sender, EventArgs e) { try { if (string.IsNullOrEmpty(teOrganizationName.Text)) { MessageBox.Show("Поле \"Название\" должно быть заполнено", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { if (isEdit) { OrganizationManager.EditOrganization(OrganizationId, teOrganizationName.Text); } else { OrganizationManager.AddOrganization(teOrganizationName.Text); } Close(); } } catch (DomainException CheckError) { MessageBox.Show(CheckError.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); teOrganizationName.Focus(); } }
public void UpdateOrganizationCategory() { WebOrganizationCategory organizationCategory; // Get existing organization category. organizationCategory = OrganizationManager.GetOrganizationCategory(GetContext(), Settings.Default.TestOrganizationCategoryId); organizationCategory.Name = "TestNameUpdate"; organizationCategory.ModifiedBy = Settings.Default.TestUserId; organizationCategory.AdministrationRoleId = Settings.Default.TestUserId; organizationCategory.Description = "Testdescription update"; WebOrganizationCategory updatedOrganizationCategory; updatedOrganizationCategory = OrganizationManager.UpdateOrganizationCategory(GetContext(), organizationCategory); Assert.IsNotNull(updatedOrganizationCategory); Assert.AreEqual(Settings.Default.TestOrganizationCategoryId, updatedOrganizationCategory.Id); Assert.AreEqual(updatedOrganizationCategory.ModifiedBy, Settings.Default.TestUserId); Assert.AreEqual(updatedOrganizationCategory.Name, organizationCategory.Name); Assert.AreEqual(updatedOrganizationCategory.Description, organizationCategory.Description); // Update description for organization category from blank to not blank organizationCategory = new WebOrganizationCategory(); organizationCategory.Name = "UniqueName"; organizationCategory.Description = null; WebOrganizationCategory newOrganizationCategory = new WebOrganizationCategory(); newOrganizationCategory = OrganizationManager.CreateOrganizationCategory(GetContext(), organizationCategory); newOrganizationCategory.Description = "Description update"; updatedOrganizationCategory = OrganizationManager.UpdateOrganizationCategory(GetContext(), newOrganizationCategory); Assert.IsNotNull(updatedOrganizationCategory.Description); }
private List <Organization> GetRowsByParent(Guid parentId) { OrganizationManager organizationManager = new OrganizationManager(); List <Organization> DbMenuTable = new List <Organization>(); if (!isEdit) { DbMenuTable = userManager.GetUserShowableOrganizations(cUser); } else { DbMenuTable = organizationManager.Read(null); } List <Organization> r = new List <Organization>(); foreach (var item in DbMenuTable) { if (item.ParentOrganization?.Id == parentId) { r.Add(item); } } return(r); }
public static List <MicroProfile> GetMicroProfile(List <int> organizationIDs) { List <MicroProfile> list = new List <MicroProfile>(); if (organizationIDs != null && organizationIDs.Count() > 0) { string orgList = ""; foreach (var item in organizationIDs) { orgList += item + ","; } string filter = string.Format(" base.Id in ({0})", orgList.Trim(',')); int pTotalRows = 0; List <OrganizationSummary> orgs = OrganizationManager.MainSearch(filter, "", 1, 500, ref pTotalRows); if (orgs != null) { foreach (var item in orgs) { list.Add(new MicroProfile() { Id = item.Id, Name = item.Name, RowId = item.RowId }); } } } return(list); }
public ActionResult EditReferralModal(int referralId, ReferralVo referral) { ReferralVo item = referralManager.get(referralId); decimal? oldFinalPayment = item.finalQuote; if (this.ModelState.IsValid) { if (item.referralId > 0) { item.description = referral.description; item.quote = referral.quote; item.referralDate = referral.referralDate; item.accepted = referral.accepted; item.finalQuote = referral.finalQuote; item.finishDate = referral.finishDate; item.commissionAmount = referral.commissionAmount; item.commissionDatePaid = referral.commissionDatePaid; ReferralVo r = referralManager.update(item, referralId); int orgID = OrganizationManager.getOrgIDForClient(item.clientId); OrganizationVo currentOrg = orgManager.get(orgID); if (currentOrg != null) { OrganizationManager.addAllFinalPaymentsForMembertoOrganizationFeeAmount(currentOrg, item.finalQuote, oldFinalPayment); } //notificationManager.sendReferralNotification(new int[] { referralId }, true); return(View("CloseModalsAndRefresh")); } } return(PartialView("_EditReferralModal", referral)); }
public async Task <ActionResult> ConfirmEmailRequest() { if (!ViewBag.Settings.EmailConfirmationEnabled) { return(HttpNotFound()); } var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (user == null) { throw new ApplicationException("Account error."); } var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Manage", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); var parameters = new Dictionary <string, object> { { "UserId", user.Id }, { "Code", code }, { "UrlCode", Encoder.UrlEncode(code) }, { "CallbackUrl", callbackUrl } }; await OrganizationManager.InvokeProcessAsync("adx_SendEmailConfirmationToContact", user.ContactId, parameters); //await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>"); if (ViewBag.Settings.IsDemoMode) { ViewBag.DemoModeLink = callbackUrl; } return(View(new RegisterViewModel { Email = user.Email })); }
public void Constructor() { OrganizationManager organizationManager; organizationManager = new OrganizationManager(); Assert.IsNotNull(organizationManager); }
public async Task <IActionResult> DeleteConfirmed(string id) { // 0. 参数检查 if (id == null) { return(NotFound()); } try { // 1. 权限检查 if (!await RoleOrgPerManager.HasPermission(SignUser.Id, Constants.ORG_DELETE, id)) { Logger.Warn($"[{nameof(Details)}] 权限不足 用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.ORG_DELETE})操作组织({id})"); ModelState.AddModelError("All", "权限不足"); return(RedirectToAction(nameof(Index))); } // 2. 业务处理 await OrganizationManager.DeleteById(id); return(View(nameof(Index))); } catch (Exception e) { Logger.Error($"[{nameof(Edit)}] 服务器错误:\r\n{e}"); ModelState.AddModelError("All", "保存失败"); return(RedirectToAction(nameof(Delete), id)); } }
public void ImportPendingRecords() { string where = " [EntityStateId] = 1 "; int pTotalRows = 0; SaveStatus status = new SaveStatus(); List <OrganizationSummary> list = OrganizationManager.MainSearch(where, "", 1, 500, ref pTotalRows); LoggingHelper.DoTrace(1, string.Format(thisClassName + " - ImportPendingRecords(). Processing {0} records =================", pTotalRows)); foreach (OrganizationSummary item in list) { status = new SaveStatus(); //SWP contains the resource url //pending records will have a CTID, it should be used to get the envelope! //if ( !ImportByResourceUrl( item.SubjectWebpage, status ) ) if (!ImportByCtid(item.CTID, status)) { //check for 404 LoggingHelper.DoTrace(1, string.Format(" - (). Failed to import pending credential: {0}, message(s): {1}", item.Id, status.GetErrorsAsString())); } else { LoggingHelper.DoTrace(1, string.Format(" - (). Successfully imported pending credential: {0}", item.Id)); } } }
public ActionResult Add() { AddIncomingLettersViewModel incomingLettersViewModel = new AddIncomingLettersViewModel() { PageId = "IncomingArchive" }; OrganizationManager organizationManager = new OrganizationManager(); //DepartmentManager departmentManager = new DepartmentManager(); PersonManager personManager = new PersonManager(); PostManager postManager = new PostManager(); CaseManager caseManager = new CaseManager(); User currentUser = userManager.Read(new Guid(User.Identity.Name)); cUser = currentUser; //incomingLettersViewModel.Organizations = organizationManager.Read(null); //incomingLettersViewModel.FilterOrganizations = currentUser.FilterOrganizations.ToList(); incomingLettersViewModel.OrganizationJson = getWhileLoopData(); incomingLettersViewModel.People = userManager.GetUserShowablePeopleList(currentUser); //incomingLettersViewModel.FilterPersons = currentUser.FilterPeople.ToList(); incomingLettersViewModel.Cases = caseManager.Read(null); incomingLettersViewModel.Posts = postManager.Read(null); //incomingLettersViewModel.OrganizationFilterString = string.Join(",", currentUser.FilterOrganizations.Select(x => x.Id.ToString())); //incomingLettersViewModel.PersonFilterString = string.Join(",", currentUser.FilterPeople.Select(x => x.Id.ToString())); //incomingLettersViewModel.receivedLetter = new ReceivedLetter(); return(View(incomingLettersViewModel)); }
public async Task <IActionResult> Delete(string id) { // 0. 参数检查 if (id == null) { return(NotFound()); } try { // 1. 权限检查 if (!await RoleOrgPerManager.HasPermission(SignUser.Id, Constants.ORG_DELETE, id)) { Logger.Warn($"[{nameof(Details)}] 权限不足 用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.ORG_DELETE})操作组织({id})"); ModelState.AddModelError("All", "权限不足"); return(RedirectToAction(nameof(Index))); } // 2. 业务处理 var organization = await OrganizationManager.FindById(id).SingleOrDefaultAsync(); Logger.Trace($"[{nameof(Edit)}] 响应数据:\r\n" + JsonUtil.ToJson(organization)); if (organization == null) { return(NotFound()); } return(View(organization)); } catch (Exception e) { Logger.Error($"[{nameof(Edit)}] 服务器错误:\r\n{e}"); ModelState.AddModelError("All", "界面跳转失败"); return(RedirectToAction(nameof(Index))); } }
public async Task <ResponseBody <OrganizationJson> > DeleteById(string id) { if (id == null) { return(ResponseBody.NotFound <OrganizationJson>("通过ID找不到组织")); } try { var organization = await OrganizationManager.FindById(id).SingleOrDefaultAsync(); return(ResponseBody.WrapData(organization)); //if (organization == null) //{ // return ResponseBody.NotFound<OrganizationJson>("通过ID找不到组织"); //} //return new ResponseBody<OrganizationJson> //{ // Data = organization //}; } catch (Exception e) { return(ResponseBody.ServerError <OrganizationJson>(e)); } }
public async Task <IActionResult> Edit(string id, [Bind("Id,ParentId,Name,Description")] OrganizationJson organization) { Logger.Trace($"[{nameof(Edit)}] 请求参数: id: {id}\r\n{JsonUtil.ToJson(organization)}"); // 0. 参数检查 if (id != organization.Id) { return(NotFound()); } try { // 1. 权限检查 if (!await RoleOrgPerManager.HasPermission(SignUser.Id, Constants.ORG_UPDATE, id)) { Logger.Warn($"[{nameof(Details)}] 权限不足 用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.ORG_UPDATE})操作组织({id})"); ModelState.AddModelError("All", "权限不足"); return(RedirectToAction(nameof(Index))); } // 2. 业务处理 await OrganizationManager.Update(organization); return(RedirectToAction(nameof(Index))); } catch (Exception e) { Logger.Error($"[{nameof(Edit)}] 服务器错误:\r\n{e}"); ModelState.AddModelError("All", "保存失败"); return(RedirectToAction(nameof(Index))); } }
public async Task <IActionResult> Create(/*[Bind("Id,ParentId,Name,Description")]*/ OrganizationJson organization) { Logger.Trace($"[{nameof(Create)}] 用户[{SignUser.SignName}]({SignUser.Id})创建组织:\r\n{JsonUtil.ToJson(organization)}"); try { // 0. 参数检查 if (organization == null || organization.ParentId == null) { ModelState.AddModelError("All", "参数异常"); return(View()); } // 1. 权限检查 if (!await RoleOrgPerManager.HasPermission(SignUser.Id, Constants.ORG_CREATE, organization.ParentId)) { Logger.Warn($"[{nameof(Details)}] 权限不足 用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.ORG_CREATE})操作组织({organization.ParentId})"); ModelState.AddModelError("All", "权限不足"); return(View(nameof(Index))); } // 2. 业务处理 // 检查是否存在循环(允许有向无环图的产生,而不仅仅是树形结构) await OrganizationManager.Create(organization); } catch (Exception e) { Logger.Error($"[{nameof(Create)}] 服务器发生错误:\r\n" + e); } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Create(string id) { Logger.Trace($"[{nameof(Create)}] 用户[{SignUser.SignName}]({SignUser.Id})在组织({id})下创建组织, 跳转到创建界面, 请求参数: 组织ID({id})"); try { // 1. 权限检查 if (!await RoleOrgPerManager.HasPermission(SignUser.Id, Constants.ORG_CREATE, id)) { Logger.Warn($"[{nameof(Details)}] 权限不足 用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.ORG_CREATE})操作组织({id})"); ModelState.AddModelError("All", "权限不足"); return(View(nameof(Index))); } // 2. 业务处理 var organizations = await OrganizationManager.Find().ToListAsync(); Logger.Trace($"[{nameof(Index)}] 响应数据:\r\n{JsonUtil.ToJson(organizations)}"); if (id != null) { organizations = organizations.Where(org => org.Id == id).ToList(); } ViewData["OrgId"] = new SelectList(organizations, nameof(Organization.Id), nameof(Organization.Name), id); return(View()); } catch (Exception e) { Logger.Error($"[{nameof(Create)}] 用户[{SignUser.SignName}]({SignUser.Id})在组织({id})下创建组织, 失败, 服务器错误:\r\n" + e); ModelState.AddModelError("All", "页面跳转失败"); return(RedirectToAction(nameof(Index))); } }
/// <summary> /// 项目申报页 /// </summary> /// <param name="prizeId"></param> /// <param name="projectId"></param> /// <returns></returns> public async Task <IActionResult> Post(int prizeId, int?subMajorId, int?projectId) { var matchInstance = await GetCurrentMatchInstance(); var prize = await PrizeManager.GetByIdAsync(prizeId); var matchResources = await MatchResourceRepository.GetAll().Where(o => o.MajorId == prize.MajorId && o.MatchInstanceId == matchInstance.Id && o.MatchResourceStatus == Matches.MatchResourceStatus.Publish).ToListAsync(); ViewData["matchResources"] = matchResources; ViewData["subMajorId"] = subMajorId == null?"":subMajorId.Value.ToString(); ViewData["matchRemarks"] = matchInstance.Remarks; ViewData["prizeRemarks"] = prize.Remarks; ViewBag.ProjectId = projectId; //第三级专业 List <string> ThirdLevelMajors = new List <string>(); if (subMajorId != null) { var childMajors = await MajorManager.FindChildrenAsync(null, matchInstance.Id, subMajorId); ThirdLevelMajors = childMajors.OrderBy(o => o.Sort).Select(o => o.BriefName).ToList(); } ViewData["ThirdLevelMajors"] = ThirdLevelMajors; //所有单位 var organizations = (await OrganizationManager.FindChildrenAsync(null, true)); ViewData["organizations"] = organizations; ViewData["matchInstance"] = matchInstance; return(View(prize)); }
public async Task <IHttpActionResult> GetInfoForRequestApprovalByOrganizationId() { /////////////меняяяяяяяяяяяяяяяяяяяяять на currentUserId List <object> forApproval = await OrganizationManager.GetInfoForRequestApprovalByOrganizationId(1); return(WrapSuccess(forApproval)); }
public CourseController() { _courseManager = new CourseManager(); _trainerManager = new TrainerManager(); _courseTrainerManager = new CourseTrainerManager(); _examManager = new ExamManager(); _orgManager = new OrganizationManager(); }
public async Task <IHttpActionResult> List(RentoRequest request) { Logger.Debug("Organization - List", request); return(Ok(await TryCatchResponse(request, ValidateType.Block, async(RentoResponse <List <Organization> > response) => { response.Data = await OrganizationManager.List(UserSession.Id); }))); }
public EmployeesController() { _employeeManager = new EmployeeManager(); _organizationManager = new OrganizationManager(); _branchManager = new BranchManager(); _departmentManager = new DepartmentManager(); _designationManager = new DesignationManager(); }
private static async Task TestRequestInNewConfiguration(int startId, int endId, int departmentId, BypassSheetResponseState state, List <HashSet <int> > expectedStamps, List <IDepartmentRule> rules) { var organizationManager = new OrganizationManager(); await organizationManager.SetConfiguration(startId, endId, rules.Count, rules).ConfigureAwait(false); TestRequest(organizationManager, departmentId, state, expectedStamps); }
public MovementAuthorityController(IMovementPermisionManager _movementPermisionManager, IMovementManager _movementManager, AssetManager _assetManager, OrganizationManager _organizationManager, BranchManager _branchManager, IUserManager _userManager) { movementPermisionManager = _movementPermisionManager; movementManager = _movementManager; assetManager = _assetManager; organizationManager = _organizationManager; branchManager = _branchManager; userManager = _userManager; }
private OrganizationManager GetOrganizationManager(Boolean refresh) { if (_organizationManager.IsNull() || refresh) { _organizationManager = new OrganizationManager(); _organizationManager.DataSource = new UserDataSource(); } return(_organizationManager); }
public void GetOrganizationRoles() { List <WebRole> organizationRoles; // Get all roles for an organization organizationRoles = OrganizationManager.GetOrganizationRoles(GetContext(), Settings.Default.TestOrganizationId); Assert.IsNotNull(organizationRoles); Assert.IsTrue(organizationRoles.Count > 0); }
private void удалитьToolStripMenuItem_Click(object sender, EventArgs e) { if (MessageBox.Show($"Удалить организацию \"{CurrentOrganization.Name}\"?", "Запрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { OrganizationsListChanged = true; OrganizationManager.DeleteOrganization(CurrentOrganization.OrganizationId); FillOrganizationsTable(); } }
private void RetrieveBaseLanguage() { WorkAsync(new WorkAsyncInfo { Message = "Loading base language...", Work = (w, e) => { e.Result = OrganizationManager.GetLanguageCode(Service); }, PostWorkCallBack = e => { languageCode = (int)e.Result; } }); }
public static void MapFromDB(DBEntity input, ThisEntity output, bool includingPathways = false) { output.Id = input.Id; output.RowId = input.RowId; output.CTID = input.CTID; output.Name = input.Name; output.Description = input.Description; output.SubjectWebpage = input.SubjectWebpage; output.EntityStateId = (int)(input.EntityStateId ?? 2); //TODO - get pathways if (includingPathways) { output.Pathways = Entity_PathwayManager.GetAll(output.RowId, true); output.HasPathway = output.Pathways.Select(m => m.CTID).ToList(); } else { //really only need the pathway ids for publishing - also ctid //might just get the lite versions of a pathway? output.Pathways = Entity_PathwayManager.GetAll(output.RowId, false); //always collect for now output.HasPathway = output.Pathways.Select(m => m.CTID).ToList(); } if (IsGuidValid(input.OwningAgentUid)) { output.OwningAgentUid = ( Guid )input.OwningAgentUid; output.OwningOrganization = OrganizationManager.GetForSummary(output.OwningAgentUid); //get roles OrganizationRoleProfile orp = Entity_AgentRelationshipManager.AgentEntityRole_GetAsEnumerationFromCSV(output.RowId, output.OwningAgentUid); output.OwnerRoles = orp.AgentRole; } // output.OrganizationRole = Entity_AgentRelationshipManager.AgentEntityRole_GetAll_ToEnumeration(output.RowId, true); //confustion over OrganizationRole and OwnerRoles (enum)!!! //to.OrganizationRole = Entity_AgentRelationshipManager.AgentEntityRole_GetAll_ToEnumeration( to.RowId, true ); output.CredentialRegistryId = input.CredentialRegistryId; if (IsValidDate(input.Created)) { output.Created = ( DateTime )input.Created; } if (IsValidDate(input.LastUpdated)) { output.LastUpdated = ( DateTime )input.LastUpdated; } var relatedEntity = EntityManager.GetEntity(output.RowId, false); if (relatedEntity != null && relatedEntity.Id > 0) { output.EntityLastUpdated = relatedEntity.LastUpdated; } }
public ActionResult Edit(int id, ClientVo input) { bool foundTheMatch = false; if (this.ModelState.IsValid) { ClientVo item = clientManager.get(id); if (item.organizations != null) { foreach (ClientOrganizationLookupVo orgLookupVo in item.clientOrganizationLookupses) { foundTheMatch = false; foreach (int clientRoleId in input.organizations) { if (orgLookupVo.organizationId == clientRoleId) { input.organizations.Remove(clientRoleId); foundTheMatch = true; break; } } if (!foundTheMatch) { clientOrganizationLookupManager.delete(orgLookupVo.clientOrganizationLookupId); } } } if (input.organizations != null) { foreach (int orgId in input.organizations) { var clientOrganizationLookupVo = new ClientOrganizationLookupVo(); clientOrganizationLookupVo.clientId = input.clientId; clientOrganizationLookupVo.organizationId = orgId; clientOrganizationLookupVo.isActive = true; clientOrganizationLookupManager.insert(clientOrganizationLookupVo); /*=================This sections adds clientfee amount to the organization total fee amount=========================================*/ if (input.feeAmount != null) { OrganizationVo currentOrg = organizationManager.get(orgId); if (currentOrg != null) { OrganizationManager.updateOrganizationFeeAmountForClientController(currentOrg, input.feeAmount); } } } } contactInfoManager.update(input.contactInfo, input.contactInfoId); var res = clientManager.update(input, id); return(RedirectToAction("Index")); } return(View(input)); }
private RoleInfo InitialData() { IOrganizationManager target = new OrganizationManager(); OrganizationInfo org = target.Get(new Guid("ecced713-2966-4f09-acbe-9e9c2bdbd14b")); RoleInfo info = new RoleInfo(); info.Organization = org; info.Name = "营业员"; info.SortNO = 1; return info; }
private IOrganizationManager CreateInstance() { IOrganizationManager target = new OrganizationManager(); return target; }
private DeptInfo InitialData() { IOrganizationManager target = new OrganizationManager(); OrganizationInfo org = target.Get(new Guid("ecced713-2966-4f09-acbe-9e9c2bdbd14b")); DeptInfo info = new DeptInfo(); info.Organization = org; info.DeptNo = "10000"; info.Name = "销售部"; info.SortNO = 1; return info; }