//[AbpAuthorize(AppPermissions.Pages_Tenant_OnlineBooking_Diagramatic_GetTypeDiagramatic)] public List <TypeDiagramaticResultDto> GetTypeDiagramatic(DiagramaticInputDto input) { var getType = (from a in _msUnit.GetAll() where a.projectID == input.projectId && a.clusterID == input.clusterId select new TypeDiagramaticResultDto { type = a.unitNo.Substring(2, a.unitNo.Length) }).Distinct().ToList(); return(getType); }
//private class CustomGetDiagramaticForWebListDto //{ // public int unitID { get; set; } // public int unitCodeId { get; set; } // public string unitCode { get; set; } // public string floor { get; set; } // public string unitNo { get; set; } // public string unitStatusCode { get; set; } // public string unitStatusName { get; set; } // public int? bedroom { get; set; } // public string zoningName { get; set; } //} //[AbpAuthorize(AppPermissions.Pages_Tenant_OnlineBooking_Diagramatic_GetListDiagramaticWeb)] public List <GetDiagramaticForWebListDto> GetListDiagramaticWeb(DiagramaticInputDto input) { List <GetDiagramaticForWebListDto> getUnit = new List <GetDiagramaticForWebListDto>(); #region old getUnit = (from x in _contextProp.MS_Unit join y in _contextProp.MS_UnitItemPrice on x.Id equals y.unitID join z in _contextProp.LK_UnitStatus on x.unitStatusID equals z.Id where x.projectID == input.projectId && x.clusterID == input.clusterId //&& (x.categoryCode == "LAN" || x.categoryCode == "KDM") && (z.unitStatusCode == "A" || z.unitStatusCode == "Z") select new GetDiagramaticForWebListDto { unitCodeId = x.unitCodeID }).Distinct().ToList(); //SendConsole("getUnit:" + JsonConvert.SerializeObject(getUnit)); if (getUnit.Count == 0) { var error = new List <GetDiagramaticForWebListDto>(); var message = new GetDiagramaticForWebListDto { message = "projectId/clusterId Tidak Valid" }; error.Add(message); //throw new UserFriendlyException("projectId/clusterId Tidak Valid"); return(new List <GetDiagramaticForWebListDto>(error)); } foreach (var item in getUnit) { var getfloor = (from x in _contextProp.MS_UnitCode where x.Id == item.unitCodeId orderby x.unitCode.Substring(x.unitCode.Length - 2) descending select x).FirstOrDefault(); item.floor = getfloor.unitCode.Substring(getfloor.unitCode.Length - 2); item.unitCode = getfloor.unitCode; var getUnits = (from x in _contextProp.MS_Unit join y in _contextProp.MS_UnitItemPrice on x.Id equals y.unitID join z in _contextProp.LK_UnitStatus on x.unitStatusID equals z.Id join a in _contextProp.MS_UnitItem on x.Id equals a.unitID into unitItem from a in unitItem.DefaultIfEmpty() join b in _contextProp.MS_UnitRoom on a.Id equals b.unitItemID into unitRoom from b in unitRoom.DefaultIfEmpty() join c in _contextProp.MS_Zoning on x.zoningID equals c.Id join d in _contextProp.MS_Detail on x.detailID equals d.Id where x.projectID == input.projectId && x.clusterID == input.clusterId && x.unitCodeID == item.unitCodeId && (z.unitStatusCode == "A" || z.unitStatusCode == "Z") orderby x.Id ascending select new UnitsDto { unitID = x.Id, unitNo = x.unitNo, unitStatusCode = z.unitStatusCode, unitStatusName = z.unitStatusName, bedroom = b.bedroom, zoningName = c.zoningName, detailID = x.detailID, detailCode = d.detailCode, detailImage = d.detailImage }).Distinct().ToList(); if (input.detailID != null && input.detailID != 0) { getUnits = (from a in getUnits join b in _contextProp.MS_Detail on a.detailID equals b.Id where a.detailID == input.detailID select a).Distinct().ToList(); } item.units = getUnits; } #endregion #region new //var getAllData = (from mu in _contextProp.MS_Unit // join mui in _contextProp.MS_UnitItem on mu.Id equals mui.unitID // //into unitItem from mui_ in unitItem.DefaultIfEmpty() // join mur in _contextProp.MS_UnitRoom on mui.Id equals mur.unitItemID // into unitRoom from mur_ in unitRoom.DefaultIfEmpty() // join lus in _contextProp.LK_UnitStatus on mu.unitStatusID equals lus.Id // join mz in _contextProp.MS_Zoning on mu.zoningID equals mz.Id // join muc in _contextProp.MS_UnitCode on mu.unitCodeID equals muc.Id // where mu.projectID == input.projectId && mu.clusterID == input.clusterId // && (lus.unitStatusCode == "A" || lus.unitStatusCode == "Z") // orderby mu.Id ascending // select new CustomGetDiagramaticForWebListDto // { // unitID = mu.Id, // unitCodeId = mu.unitCodeID, // unitCode = muc.unitCode, // floor = muc.unitCode.Substring(muc.unitCode.Length - 2), // unitNo = mu.unitNo, // unitStatusCode = lus.unitStatusCode, // unitStatusName = lus.unitStatusName, // bedroom = mur_.bedroom, // zoningName = mz.zoningName // }).GroupBy(u => u.unitCodeId) // .Select(group => new GetDiagramaticForWebListDto // { // unitID = group.First().unitID, // unitCodeId = group.First().unitCodeId, // unitCode = group.First().unitCode, // floor = group.First().floor, // units = group.Select(item => new UnitsDto // { // unitID = item.unitID, // unitNo = item.unitNo, // unitStatusCode = item.unitStatusCode, // unitStatusName = item.unitStatusName, // bedroom = item.bedroom, // zoningName = item.zoningName // }).ToList() // }) // .ToList(); if (getUnit == null) { var error = new List <GetDiagramaticForWebListDto>(); var message = new GetDiagramaticForWebListDto { message = "projectId/clusterId Tidak Valid" }; error.Add(message); return(new List <GetDiagramaticForWebListDto>(error)); } //getUnit.AddRange(getAllData); #endregion return(getUnit.OrderByDescending(x => x.floor).ToList()); }