public CostModel GetModel(int Id) { CostModel model = new CostModel(); // Get list city (level0) List <Entities.Place> lstCity = placeService.List(0); model.ListCity = placeService.ListPlaceItemByParent(0); model.ListCity.Insert(0, new Entities.Item() { Text = "--- Chọn thành phố ---", Id = -1 }); model.ListRegion = new List <Entities.Item>(); // Get CostSetting if (Id > 0) { model.CostSetting = costService.GetById(Id); } // Get List district by city. if (model.CostSetting.CityId > 0) { model.ListDistrict = placeService.ListPlaceItemByParent(model.CostSetting.CityId); model.ListRegion = regionService.ListItem(model.CostSetting.CityId); } else { model.ListDistrict = new List <Entities.Item>(); } model.ListDistrict.Insert(0, new Entities.Item() { Text = "--- Chọn quận huyện ---", Id = -1 }); // if (model.CostSetting.DistrictId > 0) { model.ListWard = placeService.ListPlaceItemByParent(model.CostSetting.DistrictId); model.ListRegion = regionService.ListItem(model.CostSetting.CityId, model.CostSetting.DistrictId); } else { model.ListWard = new List <Entities.Item>(); } model.ListRegion.Insert(0, new Entities.Item() { Text = "--- Chọn vùng ---", Id = -1 }); model.ListWard.Insert(0, new Entities.Item() { Text = "--- Chọn xã phường ---", Id = -1 }); // Lấy thông tin loại nhà model.ListProductType = productService.ListProductType(); model.ListProductType.Insert(0, new Entities.Item() { Text = AdminConfigs.TEXT_CHOOSE_HOUSE_TYPE, Id = -1 }); // Lấy thông tin các nhóm đối tượng RoleService roleService = new RoleService(); model.ListRole = roleService.ListItem(); model.ListRole.Insert(0, new Entities.Item() { Text = "--- Chọn quyền ---", Id = -1 }); // Lấy thông tin người dùng theo quyền. UserService userService = new UserService(); bool isAgency = false; List <Entities.Item> lstUserTemp = new List <Entities.Item>(); if (model.CostSetting.UserRole > 0) { lstUserTemp = userService.ListItemByRoleId(model.CostSetting.UserRole); isAgency = roleService.CheckRoleAgency(model.CostSetting.UserRole); } else { lstUserTemp = new List <Entities.Item>(); } // Nếu là dạng môi giới thì kiểm tra theo vùng. if (isAgency) { if (model.CostSetting.RegionId > 0) { // Lấy môi giới theo vùng. List <Entities.Item> lstTemp = userService.ListAgencyByRegion(model.CostSetting.RegionId, model.CostSetting.UserRole); if (lstTemp.Count > 0) { lstUserTemp = lstUserTemp.Where(x => lstTemp.Any(y => y.Id == x.Id)).ToList(); } } } model.ListUser = lstUserTemp; // Lấy thông tin những người được chọn. if (!string.IsNullOrEmpty(model.CostSetting.UserIds)) { string[] arrUser = model.CostSetting.UserIds.Split(','); foreach (var item in model.ListUser) { if (arrUser.Contains(item.Id.ToString())) { item.Checked = true; } } } // Lấy danh sách cost master. var listCostMaster = costService.ListCostMaster(); model.ListCostMaster = listCostMaster; List <Entities.Cost> listCost = new List <Entities.Cost>(); if (model.CostSetting.Id > 0) { listCost = costService.ListCost(model.CostSetting.Id); } else { foreach (Entities.Item costMaster in listCostMaster) { listCost.Add(new Entities.Cost() { CostSettingId = -1, CostMasterId = costMaster.Id, CostMasterText = costMaster.Text, IsApply = true, SortOrder = (short)costMaster.Id, MoneyCode1 = 0, MoneyCode2 = 0, MoneyCode3 = 0 }); } } model.ListCost = listCost; // Lấy danh sách kiểu giao dịch. model.ListTransactionType = Helpers.DefaultData.ListTransactionType(); model.ListTransactionType.Insert(0, new Entities.Item() { Id = 0, Text = "Chọn loại giao dịch" }); return(model); }