コード例 #1
0
        public Data.QueuesResponse MakeQueuesRequest(string requestUrl)
        {
            HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest;

            request.Credentials = new NetworkCredential(Properties.Settings.Default.UriUserName, Properties.Settings.Default.UriPassword);

            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    throw new Exception(String.Format(
                                            "Server error (HTTP {0}: {1}).",
                                            response.StatusCode,
                                            response.StatusDescription));
                }

                using (var reader = new StreamReader(response.GetResponseStream()))
                {
                    JavaScriptSerializer js = new JavaScriptSerializer();
                    string objText          = reader.ReadToEnd();
                    objText = "{\"queues\":" + objText + "}";
                    object objResponse = (Data.QueuesResponse)js.Deserialize(objText, typeof(Data.QueuesResponse));
                    Data.QueuesResponse jsonResponse
                        = objResponse as Data.QueuesResponse;
                    return(jsonResponse);
                }
            }
        }
コード例 #2
0
        public Page1()
        {
            InitializeComponent();

            try
            {
                //Process requests:
                Requests request = new Requests();

                //Branches
                string branchesRequest = request.CreateBranchesRequest();
                Data.BranchesResponse bracnhesResponse = request.MakeBranchesRequest(branchesRequest);
                _viewModel.DataContext.Branches = request.ProcessBranchesResponse(bracnhesResponse);

                //Queues
                foreach (Data.Branches branch in _viewModel.DataContext.Branches)
                {
                    string queuesRequest = request.CreateQueuesRequest(branch.id.ToString());
                    Data.QueuesResponse queuesResponse = request.MakeQueuesRequest(queuesRequest);
                    if (_viewModel.DataContext.Queues == null)
                    {
                        _viewModel.DataContext.Queues = request.ProcessQueuesResponse(queuesResponse);
                    }
                    else
                    {
                        _viewModel.DataContext.Queues.AddRange(request.ProcessQueuesResponse(queuesResponse));
                    }
                }


                //Visits (must also be able to refresh)
                foreach (Models.Queue que in _viewModel.DataContext.Queues)
                {
                    string visitRequest = request.CreateVisitsRequest(que.branchId.ToString(), que.id.ToString());
                    Data.VisitsResponse visitsResponse = request.MakeVisitsRequest(visitRequest);

                    if (_viewModel.DataContext.Visits == null)
                    {
                        _viewModel.DataContext.Visits = request.ProcessVisitsResponse(que, visitsResponse);
                    }
                    else
                    {
                        _viewModel.DataContext.Visits.AddRange(request.ProcessVisitsResponse(que, visitsResponse));
                    }
                }

                DataContext = _viewModel;
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
コード例 #3
0
        public List <Models.Queue> ProcessQueuesResponse(Data.QueuesResponse queuesResponse)
        {
            List <Models.Queue> queues = new List <Models.Queue>();

            foreach (Data.Queues queue in queuesResponse.queues)
            {
                queues.Add(new Models.Queue
                {
                    id                     = queue.id,
                    branchId               = queue.branchId,
                    name                   = queue.name,
                    queueType              = queue.queueType,
                    branchName             = queue.branchName,
                    customersWaiting       = queue.customersWaiting,
                    openServicePoints      = queue.openServicePoints,
                    waitingTime            = queue.waitingTime,
                    appointmentWaitingTime = queue.appointmentWaitingTime,
                    estimatedWaitingTime   = queue.estimatedWaitingTime,
                    customersServed        = queue.customersServed
                });
            }
            return(queues);
        }