public ActionResult Details(int complaintID) { LogginUser userLogin = GetUser(); if (userLogin == null || complaintID == 0) { return(RedirectToAction("SignIn", "Users")); } else { ViewBag.name = userLogin.FullName; ViewBag.Usertype = userLogin.UserTypeID; } using (var client = new HttpClient()) { var RetrievedComplaints = new ComplaintDetails(); client.BaseAddress = new Uri(Baseurl); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var Result = client.GetAsync(string.Format("api/PublicAPI/GetMyComplaintsDetailsAPI?complainID=" + complaintID)).Result; if (Result.IsSuccessStatusCode) { var MyComplaintResults = Result.Content.ReadAsStringAsync().Result; RetrievedComplaints = JsonConvert.DeserializeObject <ComplaintDetails>(MyComplaintResults); } return(View(RetrievedComplaints)); } }
public IActionResult ComplaintDetails(long id) { var complaint = new ComplaintDetails { Id = id }; return(View(complaint)); }
public ActionResult ValidateEdit(ComplaintDetails Model) { LogginUser userLogin = GetUser(); if (userLogin == null || userLogin.UserTypeID != 2) { return(RedirectToAction("SignIn", "Users")); } else { ViewBag.name = userLogin.FullName; ViewBag.Usertype = userLogin.UserTypeID; } var RetrievedComplaints = new ComplaintDetails(); ComplaintDetails _model = new ComplaintDetails(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(Baseurl); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var Result = client.GetAsync(string.Format("api/PublicAPI/GetMyComplaintsDetailsAPI?complainID=" + Model.ComplaintsID)).Result; if (Result.IsSuccessStatusCode) { var MyComplaintResults = Result.Content.ReadAsStringAsync().Result; RetrievedComplaints = JsonConvert.DeserializeObject <ComplaintDetails>(MyComplaintResults); } List <ComplaintStatus> ComplaintStatustModel = null; var ComplaintStatusListAPI = client.GetAsync("api/PublicAPI/GetComplaintStatusAPI/").Result; if (ComplaintStatusListAPI.IsSuccessStatusCode) { var ComplaintsStatusListIDs = ComplaintStatusListAPI.Content.ReadAsStringAsync().Result; ComplaintStatustModel = JsonConvert.DeserializeObject <List <ComplaintStatus> >(ComplaintsStatusListIDs); RetrievedComplaints.ComplaintStatus = (from d in ComplaintStatustModel select new SelectListItem { Value = d.ComplaintStatusID.ToString(), Text = d.Name.ToString() }).ToList(); } } return(View(RetrievedComplaints)); }
private void SendUserSuccessEmail(ComplaintDetails model, string caseResponse) { var submissionDetails = new ComplaintsMailModel() { Subject = "We've received your formal complaint", Reference = caseResponse, FirstName = model.ContactDetails.FirstName, LastName = model.ContactDetails.LastName, RecipientAddress = model.ContactDetails.EmailAddress }; _mailingServiceGateway.Send(new Mail { Payload = JsonConvert.SerializeObject(submissionDetails), Template = EMailTemplate.ComplaintsSuccess }); }
public ActionResult Edit(ComplaintDetails Model) { try { LogginUser userLogin = GetUser(); if (userLogin == null || userLogin.UserTypeID != 2) { return(RedirectToAction("SignIn", "Users")); } else { ViewBag.name = userLogin.FullName; ViewBag.Usertype = userLogin.UserTypeID; } if (!ModelState.IsValid) { ValidateEdit(Model); return(View()); } using (var client = new HttpClient()) { client.BaseAddress = new Uri(Baseurl); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var EditComplaintStatusAPI = client.PostAsJsonAsync <ComplaintDetails>("api/PublicAPI/EditComplaintStatus", Model); EditComplaintStatusAPI.Wait(); var EditComplaintStatusResultAPI = EditComplaintStatusAPI.Result; if (EditComplaintStatusResultAPI.IsSuccessStatusCode) { var EditComplaintStatusResult = EditComplaintStatusResultAPI.Content.ReadAsStringAsync().Result; bool EditComplaintStatus = JsonConvert.DeserializeObject <bool>(EditComplaintStatusResult); return(RedirectToAction("AllComplaints", "Complaints")); } } return(View()); } catch (Exception ex) { LoggedError(ex.Message); return(RedirectToAction("Users", "Index")); } }
public MainPage() { InitializeComponent(); SubmitButton.Clicked += async(s, e) => { int zipCode = 11111, DOM = 0, DOW = 0, Month = 0; double tmp = 0.0; var success = int.TryParse(Zip.Text, out zipCode) && int.TryParse(dayOfMonth.Text, out DOM) && int.TryParse(dayOfWeek.Text, out DOW) && int.TryParse(MonthNum.Text, out Month) && double.TryParse(avgTemp.Text, out tmp); if (!success) { await DisplayAlert("Error in inputs", "You must enter Integers as indicated", "OK"); return; } var comp = new ComplaintDetails { Agency = Agency.Text, complaintType = complaintType.Text, Descriptor = Descriptor.Text, incidentZip = zipCode, dayOfMonth = DOM, dayOfWeek = DOW, Month = Month, avgTemp = tmp }; Result.Text = "Please wait..."; SubmitButton.IsEnabled = false; Exception error = null; try { var req = new HttpRequestMessage(HttpMethod.Post, new Uri(Url)); req.Content = new StringContent(JsonConvert.SerializeObject(comp)); req.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = Client.SendAsync(req).Result; /*var url = Url.Replace("{num1}", number1.ToString()) * .Replace("{num2}", number2.ToString()); * * HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url); * req.Method = "POST"; * req.ContentType = "application/json"; * Stream stream = req.GetRequestStream(); * string json = "{\"name\": \"Azure\" }"; * byte[] buffer = Encoding.UTF8.GetBytes(json); * stream.Write(buffer, 0, buffer.Length); * HttpWebResponse res = (HttpWebResponse)req.GetResponse();*/ //var json = await Client.GetStringAsync(url); string responseBody = response.Content.ReadAsStringAsync().Result; var deserialized = JsonConvert.DeserializeObject <ComplaintDetails>(responseBody); TimeOnServer.Text = "Server Time: " + deserialized.TimeOnServer; Result.Text = "Estimated Time to Resolve Complaint:" + deserialized.complaintTimeToComplete.ToString(); } catch (Exception ex) { error = ex; } if (error != null) { Result.Text = "Error!!"; await DisplayAlert("There was an error", error.Message, "OK"); } SubmitButton.IsEnabled = true; }; }
public async Task <string> CreateComplaintCase(ComplaintDetails model) { var events = _complaintsConfig.Value.ComplaintsConfigurations; var eventCode = string.IsNullOrEmpty(model.CouncilDepartmentSub) ? events.FirstOrDefault(_ => _.EventName == model.CouncilDepartment)?.EventCode ?? events.FirstOrDefault(_ => _.EventName == "none")?.EventCode : events.FirstOrDefault(_ => _.EventName == model.CouncilDepartmentSub)?.EventCode ?? events.FirstOrDefault(_ => _.EventName == "none")?.EventCode; var crmCase = new Case { EventCode = (int)eventCode, EventTitle = string.IsNullOrEmpty(model.OtherService) ? $"Complaint - {model.ComplainAboutService}" : $"Complaint - {model.OtherService} - {model.ComplainAboutService}", Description = model.ComplainAboutDetails, Customer = new Customer { Forename = model.ContactDetails.FirstName, Surname = model.ContactDetails.LastName, Email = model.ContactDetails.EmailAddress, Telephone = model.ContactDetails.PhoneNumber, Address = new Address() } }; if (string.IsNullOrEmpty(model.ContactDetails.Address.PlaceRef)) { crmCase.Customer.Address.AddressLine1 = model.ContactDetails.Address.AddressLine1; crmCase.Customer.Address.AddressLine2 = model.ContactDetails.Address.AddressLine2; crmCase.Customer.Address.City = model.ContactDetails.Address.Town; crmCase.Customer.Address.Postcode = model.ContactDetails.Address.Postcode; } else { var splitAddress = model.ContactDetails.Address.SelectedAddress.Split(","); crmCase.Customer.Address.AddressLine1 = splitAddress[0]; crmCase.Customer.Address.AddressLine2 = splitAddress[1]; if (splitAddress.Length == 5) { crmCase.Customer.Address.AddressLine3 = splitAddress[2]; crmCase.Customer.Address.City = splitAddress[3]; crmCase.Customer.Address.Postcode = splitAddress[4]; } else { crmCase.Customer.Address.City = splitAddress[2]; crmCase.Customer.Address.Postcode = splitAddress[3]; } crmCase.Customer.Address.UPRN = model.ContactDetails.Address.PlaceRef; } try { _logger.LogWarning($"ComplaintsService.CreateComplaintCase: Attempting to create verint case. {JsonConvert.SerializeObject(crmCase)}"); var response = await _verintServiceGateway.CreateCase(crmCase); SendUserSuccessEmail(model, response.ResponseContent); return(response.ResponseContent); } catch (Exception ex) { throw new Exception($"ComplimentsComplaintsService CreateComplimentCase an exception has occured while creating the case in verint service", ex); } }
public async Task <HttpResponse <string> > SubmitComplaint(ComplaintDetails model) => await PostAsync <string>($"{ComplaintEndpoint}/submit-complaint", model);
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request for GetComplaintTimeEstimate"); if (req.Method.ToLower() == "post") { log.LogInformation($"POST method was used to invoke the function"); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); log.LogInformation("Request Body: " + requestBody); dynamic b = JsonConvert.DeserializeObject(requestBody); var comp = new ComplaintDetails { Agency = b.Agency, complaintType = b.complaintType, Descriptor = b.Descriptor, incidentZip = b.incidentZip, dayOfMonth = b.dayOfMonth, dayOfWeek = b.dayOfWeek, Month = b.Month, avgTemp = b.avgTemp, TimeOnServer = DateTime.Now }; string scoringUri = "http://26c756f8-7413-4bfd-829e-296f8b139d79.eastus2.azurecontainer.io/score"; //string authKey = "<your key or token>"; // Set the data to be sent to the service. // In this case, we are sending two sets of data to be scored. InputData payload = new InputData(); payload.data = new object[, ] { { comp.Agency, comp.complaintType, comp.Descriptor, comp.incidentZip, comp.dayOfMonth, comp.dayOfWeek, comp.Month, comp.avgTemp } }; // Create the HTTP client HttpClient client = new HttpClient(); // Set the auth header. Only needed if the web service requires authentication. //client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authKey); // Make the request try { var request = new HttpRequestMessage(HttpMethod.Post, new Uri(scoringUri)); request.Content = new StringContent(JsonConvert.SerializeObject(payload)); request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = client.SendAsync(request).Result; //log.LogInformation("ML Response: " + response.Content.ReadAsStringAsync().Result.GetType()); string responseBody = response.Content.ReadAsStringAsync().Result; log.LogInformation("Response Body: " + responseBody); responseBody = responseBody.Replace("\\\"", "\'"); log.LogInformation("New Response Body: " + responseBody); responseBody = responseBody.Replace("\"", ""); log.LogInformation("New Response Body: " + responseBody); dynamic r = JsonConvert.DeserializeObject(responseBody); //dynamic r = JsonConvert.DeserializeObject(json); //var json = JsonConvert.DeserializeObject(responseBody); //dynamic r = JObject.Parse(json); comp.complaintTimeToComplete = r.result[0]; //log.LogInformation("Result Type: " + timeResult); //comp.complaintTimeToComplete = r.result; //var timeResult = r.result[0]; // Display the response from the web service //log.LogInformation("ML Response:"); log.LogInformation("ML Result: " + comp.complaintTimeToComplete); return(new OkObjectResult(comp)); } catch (Exception e) { Console.Out.WriteLine(e.Message); } return(new BadRequestObjectResult("Error While Running")); } else { log.LogInformation("Method: " + req.Method + "was used to invoke the function"); return(new BadRequestObjectResult("Only POST can be used")); } /*var comp = new ComplaintDetails * { * Agency = "DEP", * complaintType = "Water System", * Descriptor = "Hydrant Running (WC3)", * incidentZip = 11249, * dayOfMonth = 31, * dayOfWeek = 3, * Month = 3, * avgTemp = 44.78, * TimeOnServer = DateTime.Now * };*/ }
public async Task <IActionResult> CreateCase([FromBody] ComplaintDetails model) { var result = await _caseService.CreateComplaintCase(model); return(Ok(result)); }