Ejemplo n.º 1
0
        public CallQueuePage()
        {
            InitializeComponent();

            _viewModel     = new CallQueueViewModel();
            BindingContext = _viewModel;

            listView.ItemsSource = _viewModel.QueueCalls;

            listView.ItemSelected += (sender, e) => {
                ((ListView)sender).SelectedItem = null;
            };
        }
Ejemplo n.º 2
0
        public CallQueueListModel Create(IEnumerable <CallQueue> callQueues, IEnumerable <CallQueueCriteria> callQueueCriterias, IEnumerable <Criteria> criterias, IEnumerable <CallQueueAssignment> callQueueAssignments,
                                         IEnumerable <OrderedPair <long, string> > idNamePairs, IEnumerable <OrderedPair <long, long> > callQueueIdTotalCustomersInQueuePairs, IEnumerable <OrderedPair <long, long> > callQueueIdTotalCustomersPairs,
                                         IEnumerable <OrderedPair <long, long> > callQueueIdTotalCustomersContactedPairs)
        {
            var model      = new CallQueueListModel();
            var collection = new List <CallQueueViewModel>();

            callQueues.ToList().ForEach(cq =>
            {
                var inQueuePair            = callQueueIdTotalCustomersInQueuePairs.SingleOrDefault(pair => pair.FirstValue == cq.Id);
                var totalCustomersPair     = callQueueIdTotalCustomersPairs.SingleOrDefault(pair => pair.FirstValue == cq.Id);
                var customersContactedPair = callQueueIdTotalCustomersContactedPairs.SingleOrDefault(pair => pair.FirstValue == cq.Id);
                var percentage             = 0m;
                if (totalCustomersPair != null && customersContactedPair != null && totalCustomersPair.SecondValue > 0)
                {
                    percentage = (Convert.ToDecimal(customersContactedPair.SecondValue) / Convert.ToDecimal(totalCustomersPair.SecondValue)) * 100;
                    percentage = Math.Round(percentage, 2);
                }

                var callQueueModel = new CallQueueViewModel
                {
                    Id                    = cq.Id,
                    Name                  = cq.Name,
                    Description           = cq.Description,
                    DateCreated           = cq.DataRecorderMetaData.DateCreated,
                    IsActive              = cq.IsActive,
                    TotalCustomersInQueue = inQueuePair != null ? inQueuePair.SecondValue : 0,
                    CustomerContacted     = percentage,
                    Criterias             = CreateCallQueueCriteriaViewModels(callQueueCriterias, criterias, cq.Id),
                    Assignments           = CreateCallQueueAssignmentViewModels(callQueueAssignments, idNamePairs, cq.Id)
                };
                collection.Add(callQueueModel);
            });

            model.Collection = collection;
            return(model);
        }