Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
        }