public async Task <PagedList <AssetDto> > GetAssetsAsync(SearchAssetQuery query) { query.ToUpper(); var pagedList = await _repository.GetAssetsAsync(query.Datacenter, query.Vendor, query.ModelNumber, query.Hostname, query.RackStart, query.RackEnd, query.SortBy, query.IsDesc, query.Page, query.PageSize, query.IsOffline ?? false); pagedList.CurrentPage = query.Page; return(_mapper.Map <PagedList <AssetDto> >(pagedList)); }
public async Task <ActionResult <PagedList <GetAssetsApiDto> > > GetMany([FromQuery] SearchAssetQuery query) { var assets = await _assetService.GetAssetsAsync(query); var response = _mapper.Map <PagedList <GetAssetsApiDto> >(assets); if (query.ChangePlanId != null && query.ChangePlanId != Guid.Empty) { var changePlanId = query.ChangePlanId ?? Guid.Empty; var changePlanItems = await _changePlanService.GetChangePlanItemsAsync(changePlanId); foreach (ChangePlanItemDto changePlanItem in changePlanItems) { var changePlanAssetDto = new AssetDto(); var blades = new List <GetAssetsApiDto>(); if (changePlanItem.ExecutionType.Equals("decommission")) { var oldAsset = response.Find(x => x.Id == changePlanItem.AssetId); response.Remove(oldAsset); response.TotalCount -= 1; continue; } else if (changePlanItem.ExecutionType.Equals("create")) { changePlanAssetDto = _mapper.Map <AssetDto>((JsonConvert.DeserializeObject <CreateAssetApiDto>(changePlanItem.NewData))); changePlanAssetDto.Id = changePlanItem.Id; } else if (changePlanItem.ExecutionType.Equals("update")) { changePlanAssetDto = _mapper.Map <AssetDto>((JsonConvert.DeserializeObject <UpdateAssetApiDto>(changePlanItem.NewData))); var oldAsset = response.Find(x => x.Id == changePlanItem.AssetId); if (oldAsset != null && oldAsset.Blades != null && oldAsset.Blades.Count != 0) { blades = (oldAsset.Blades); } response.Remove(oldAsset); } changePlanAssetDto = await _changePlanService.FillFieldsInAssetApiForChangePlans(changePlanAssetDto); var assetApiDto = _mapper.Map <GetAssetApiDto>(changePlanAssetDto); assetApiDto.Blades = blades; if (changePlanAssetDto.ChassisId != null && changePlanAssetDto.ChassisId != Guid.Empty) //only happens when updating a blade { var oldChassisId = changePlanAssetDto.ChassisId ?? Guid.Empty; if (!string.IsNullOrEmpty(changePlanItem.PreviousData)) { oldChassisId = (JsonConvert.DeserializeObject <GetAssetApiDto>(changePlanItem.NewData)).Id; } var chassis = response.Find(x => x.Id == oldChassisId); //remove previous blade if (chassis != null && chassis.Blades != null) { chassis.Blades.Remove(chassis.Blades.Find(x => x.Id == changePlanAssetDto.Id)); chassis.Blades.Add(assetApiDto); } continue; } response.Add(assetApiDto); response.TotalCount++; } } return(Ok(response)); }
public async Task <ActionResult <PagedList <DecommissionedAssetDto> > > GetManyDecommissioned([FromQuery] SearchAssetQuery query) { var assets = await _assetService.GetDecommissionedAssetsAsync(query); var response = _mapper.Map <PagedList <DecommissionedAssetDto> >(assets); if (query.ChangePlanId != null && query.ChangePlanId != Guid.Empty) { var changePlanId = query.ChangePlanId ?? Guid.Empty; var decommissionedChangePlans = await _changePlanService.GetDecommissionedChangePlanItemsAsync(changePlanId); List <DecommissionedAssetDto> decommissionedAssets = new List <DecommissionedAssetDto>(); foreach (ChangePlanItemDto changePlanItem in decommissionedChangePlans) { var decommissionedAsset = JsonConvert.DeserializeObject <DecommissionedAssetDto>(changePlanItem.NewData); //making sure decommissioned asset id is the change plan id for "getting" purposes decommissionedAsset.Id = changePlanItem.Id; decommissionedAssets.Add(decommissionedAsset); } response.AddRange(decommissionedAssets); response.TotalCount += decommissionedAssets.Count(); } return(Ok(response)); }
public async Task <PagedList <DecommissionedAssetDto> > GetDecommissionedAssetsAsync(SearchAssetQuery query) { query.ToUpper(); var pagedList = await _repository.GetDecommissionedAssetsAsync(query.DatacenterName, query.GeneralSearch, query.Decommissioner, query.DateStart, query.DateEnd, query.RackStart, query.RackEnd, query.SortBy, query.IsDesc, query.Page, query.PageSize); pagedList.CurrentPage = query.Page; return(_mapper.Map <PagedList <DecommissionedAssetDto> >(pagedList)); }