public async Task <OpportunityIndexViewModel> GetAllAsync(int pageIndex, int itemsPage, string requestId = "")
        {
            _logger.LogInformation($"RequestId: {requestId} - GetAllAsync called.");

            Guard.Against.Null(pageIndex, nameof(pageIndex), requestId);
            Guard.Against.Null(itemsPage, nameof(itemsPage), requestId);

            try
            {
                var listItems = (await _opportunityRepository.GetAllAsync(requestId)).ToList();
                Guard.Against.Null(listItems, nameof(listItems), requestId);

                var vmListItems = new List <OpportunityViewModel>();
                foreach (var item in listItems)
                {
                    try
                    {
                        vmListItems.Add(await _opportunityHelpers.ToOpportunityViewModelAsync(item, requestId));
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError($"Opportunity Id: {item.Id} - GetAllAsync Opportunity Service Exception: {ex}");
                    }
                }

                if (vmListItems.Count == 0)
                {
                    _logger.LogWarning($"RequestId: {requestId} - GetAllAsync no items found");
                    throw new NoItemsFound($"RequestId: {requestId} - Method name: GetAllAsync - No Items Found");
                }


                return(new OpportunityIndexViewModel
                {
                    ItemsList = vmListItems.Select(item => new OpportunityIndexModel
                    {
                        Id = item.Id,
                        DisplayName = item.DisplayName,
                        Customer = item.Customer,
                        OpportunityState = item.OpportunityState,
                        Template = item.Template,
                        Dealsize = item.MetaDataFields.ToList().Find(x => x.DisplayName == "Deal Size")?.Values.ToString(),
                        OpenedDate = item.MetaDataFields.ToList().Find(x => x.DisplayName == "Opened Date").Values.ToString()
                    }).ToList(),

                    PaginationInfo = new PaginationInfoViewModel
                    {
                        ActualPage = 1,
                        ItemsPerPage = itemsPage,
                        TotalItems = 0,
                        TotalPages = 0,
                        Next = String.Empty,
                        Previous = String.Empty
                    }
                });
            }
            catch (Exception ex)
            {
                _logger.LogError($"RequestId: {requestId} - GetAllAsync Service Exception: {ex}");
                throw new ResponseException($"RequestId: {requestId} - GetAllAsync Service Exception: {ex}");
            }
        }
Example #2
0
        public async Task <OpportunityIndexViewModel> GetAllAsync(int pageIndex, int itemsPage, string requestId = "")
        {
            _logger.LogInformation($"RequestId: {requestId} - GetAllAsync called.");

            Guard.Against.Null(pageIndex, nameof(pageIndex), requestId);
            Guard.Against.Null(itemsPage, nameof(itemsPage), requestId);

            try
            {
                var listItems = (await _opportunityRepository.GetAllAsync(requestId)).ToList();
                Guard.Against.Null(listItems, nameof(listItems), requestId);

                var vmListItems = new List <OpportunityViewModel>();
                foreach (var item in listItems)
                {
                    vmListItems.Add(await _opportunityHelpers.ToOpportunityViewModelAsync(item, requestId));
                }

                if (vmListItems.Count == 0)
                {
                    _logger.LogWarning($"RequestId: {requestId} - GetAllAsync no items found");
                    throw new NoItemsFound($"RequestId: {requestId} - Method name: GetAllAsync - No Items Found");
                }

                //Reduce to opportunityIndexModel
                var vimListItems = new List <OpportunityIndexModel>();
                foreach (var item in vmListItems)
                {
                    var vimItem = new OpportunityIndexModel
                    {
                        Id               = item.Id,
                        DisplayName      = item.DisplayName,
                        Customer         = item.Customer,
                        DealSize         = item.DealSize,
                        OpenedDate       = item.OpenedDate,
                        OpportunityState = item.OpportunityState
                    };
                    vimListItems.Add(vimItem);
                }

                var indexListItems = new OpportunityIndexViewModel
                {
                    ItemsList      = vimListItems,
                    PaginationInfo = new PaginationInfoViewModel
                    {
                        ActualPage   = 1,
                        ItemsPerPage = itemsPage,
                        TotalItems   = 0,
                        TotalPages   = 0,
                        Next         = String.Empty,
                        Previous     = String.Empty
                    }
                };

                return(indexListItems);
            }
            catch (Exception ex)
            {
                _logger.LogError($"RequestId: {requestId} - GetAllAsync Service Exception: {ex}");
                throw new ResponseException($"RequestId: {requestId} - GetAllAsync Service Exception: {ex}");
            }
        }