Beispiel #1
0
        internal static MarkAsReceivedModel MarkAsReceived(IServerAuthentication restClientAuthenticator, MarkAsReceivedModel model, string controllerName)
        {
            var baseAddress        = restClientAuthenticator.GetBaseAddress();
            var authorizationToken = restClientAuthenticator.GetToken();

            var tries      = 0;
            var keepTrying = true;

            using (var restClient = new HttpClient())
            {
                restClient.BaseAddress = new Uri(baseAddress);
                restClient.DefaultRequestHeaders.Accept.Clear();
                restClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                while (keepTrying)
                {
                    restClient.DefaultRequestHeaders.Add("Authorization", authorizationToken);

                    var response = restClient.PostAsJsonAsync <MarkAsReceivedModel>(string.Format(ApiClientGenericObjectResources.PostRequestUri, controllerName), model).Result;

                    if (response.StatusCode == HttpStatusCode.Unauthorized)
                    {
                        authorizationToken = restClientAuthenticator.GetToken(true);

                        tries++;
                        keepTrying = tries < 4;
                    }
                    else
                    {
                        keepTrying = false;

                        if (response.IsSuccessStatusCode)
                        {
                            MarkAsReceivedModel MarkAsReceivedModel = response.Content.ReadAsAsync <MarkAsReceivedModel>().Result;

                            return(MarkAsReceivedModel);
                        }
                        else
                        {
                            var additionalInformation = response.Content.ReadAsStringAsync().Result;

                            throw new ApplicationException(string.Format("{0}{1}", string.Format(ApiClientGenericObjectResources.UnsuccessfulResponseMessage, HttpStatusCode.BadRequest.ToString()), additionalInformation));
                        }
                    }
                }
                throw new ApplicationException(string.Format(ApiClientGenericObjectResources.UnsuccessfulResponseMessage, HttpStatusCode.Unauthorized.ToString()));
            }
        }
 /// Sets the status for the patient update to approved or denied. (To do) Triggers an email to inform patient of the results.
 public static MarkAsReceivedModel MarkAsReceived(IServerAuthentication restClientAuthenticator, MarkAsReceivedModel model)
 {
     return(MarkAsReceivedProvider.MarkAsReceived(restClientAuthenticator, model, MarkAsSentControllerName));
 }
Beispiel #3
0
        public ActionResult Send(MarkAsReceivedModel viewModel)
        {
            viewModel.ResultMessage = string.Empty;

            Guid markAsReceivedID;

            if (!Guid.TryParse(viewModel.MarkAsReceivedID, out markAsReceivedID))
            {
                viewModel.Success       = false;
                viewModel.ResultMessage = "Please provide a valid ID.";
                return(View("Index", viewModel));
            }

            Api.Models.MarkAsReceived.MarkAsReceivedModel result;

            try
            {
                switch (viewModel.ObjectType)
                {
                case "Appointment cancel request":
                    result = AppointmentCancelRequestProvider.MarkAsReceived(Helpers.GetAuthenticator(), new Api.Models.MarkAsReceived.MarkAsReceivedModel {
                        InternalID = markAsReceivedID
                    });
                    viewModel.ResultMessage = result.ResultMessage;
                    viewModel.Success       = result.Success;
                    break;

                case "Appointment request":
                    result = AppointmentRequestProvider.MarkAsReceived(Helpers.GetAuthenticator(), new Api.Models.MarkAsReceived.MarkAsReceivedModel {
                        InternalID = markAsReceivedID
                    });
                    viewModel.ResultMessage = result.ResultMessage;
                    viewModel.Success       = result.Success;
                    break;

                case "Appointment update":
                    result = CommunicationUpdatesAppointmentsProvider.MarkAsReceived(Helpers.GetAuthenticator(), new Api.Models.MarkAsReceived.MarkAsReceivedModel {
                        InternalID = markAsReceivedID
                    });
                    viewModel.ResultMessage = result.ResultMessage;
                    viewModel.Success       = result.Success;
                    break;

                case "Communication update":
                    result = PatientCommunicationProvider.MarkAsReceived(Helpers.GetAuthenticator(), new Api.Models.MarkAsReceived.MarkAsReceivedModel {
                        InternalID = markAsReceivedID
                    });
                    viewModel.ResultMessage = result.ResultMessage;
                    viewModel.Success       = result.Success;
                    break;

                case "Patient update":
                    result = CommunicationUpdatesPatientsProvider.MarkAsReceived(Helpers.GetAuthenticator(), new Api.Models.MarkAsReceived.MarkAsReceivedModel {
                        InternalID = markAsReceivedID
                    });
                    viewModel.ResultMessage = result.ResultMessage;
                    viewModel.Success       = result.Success;
                    break;

                case "Order update":
                    result = CommunicationUpdatesOrdersProvider.MarkAsReceived(Helpers.GetAuthenticator(), new Api.Models.MarkAsReceived.MarkAsReceivedModel {
                        InternalID = markAsReceivedID
                    });
                    viewModel.ResultMessage = result.ResultMessage;
                    viewModel.Success       = result.Success;
                    break;

                default:
                    viewModel.Success       = false;
                    viewModel.ResultMessage = "Please select an object type.";
                    break;
                }
            }
            catch (Exception ex)
            {
                viewModel.ResultMessage = ex.GetBaseException().Message;
            }
            return(View("Index", viewModel));
        }
Beispiel #4
0
        // Index
        public ActionResult Index()
        {
            var viewModel = new MarkAsReceivedModel();

            return(View(viewModel));
        }