public async Task <ActionResult> GetComments(string id, string searchText) { LogBookView logViewModel = new LogBookView(); var apiController = new LogApiController(); logViewModel.TotalNumber = apiController.LogBookCount(id, searchText); //using (var client = new HttpClient()) //{ // string uri = WebAPI + "LogBookCount?"; // uri += "signalId=" + id; // uri += "&searchText=" + searchText; // //HTTP GET // var responseTask = client.GetAsync(uri); // responseTask.Wait(); // var result = responseTask.Result; // if (result.IsSuccessStatusCode) // { // string data = await result.Content.ReadAsStringAsync(); // //use JavaScriptSerializer from System.Web.Script.Serialization // JavaScriptSerializer JSserializer = new JavaScriptSerializer(); // //deserialize to your class // logViewModel.TotalNumber = JSserializer.Deserialize<int>(data); // } // else //web api sent error response // { // return Content("Server error. Please contact administrator."); // } //} return(PartialView("_Comments", logViewModel)); }
public async Task <ActionResult> GetCommentsResult(string id, string searchText) { LogBookView logViewModel = new LogBookView(); using (var client = new HttpClient()) { string uri = WebAPI + "LogBookGet?"; uri += "signalId=" + id; uri += "&pageSize=5000"; uri += "&pageNumber=1"; uri += "&searchText=" + searchText; //HTTP GET var responseTask = client.GetAsync(uri); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { string data = await result.Content.ReadAsStringAsync(); //use JavaScriptSerializer from System.Web.Script.Serialization JavaScriptSerializer JSserializer = new JavaScriptSerializer(); //deserialize to your class logViewModel = JSserializer.Deserialize <LogBookView>(data); } else //web api sent error response { return(Content("Server error. Please contact administrator.")); } } return(PartialView("_CommentsResult", logViewModel)); }
private LogBookView GetLogBookView(string uri) { var logBookView = new LogBookView(); using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Add(( new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"))); var response = client.GetAsync(uri).Result; if (response.IsSuccessStatusCode) { var content = response.Content.ReadAsStringAsync().Result; JavaScriptSerializer JSserializer = new JavaScriptSerializer(); logBookView = JSserializer.Deserialize <LogBookView>(content); } else //web api sent error response { return(null); //logBookView; } } logBookView = FindIntersection(logBookView); return(logBookView); }
//http://localhost:52920/api/LogApi/LogBookGet?locationId=7220&pageSize=5&pageNumber=1 public LogBookView LogBookEntries(string locationId, int pageSize, int pageNumber, string searchText) { LogBookView logViewModel = new LogBookView(); var db = Repositories.LogBook.LogBookRepositoryFactory.Create(); var logs = db.GetLogs(locationId, searchText); logViewModel.TotalNumber = logs.Count; logViewModel.Logs = logs.ToPagedList(pageNumber, pageSize).ToList(); logViewModel.PageSize = pageSize; logViewModel.PageNumber = pageNumber; return(logViewModel); }
public LogBookView LogBookReport(string locationId, string commentSearch, DateTime startDate, DateTime endDate, string userSearch, int onsiteRemote, int reasons, int pageRows, int pageNumber) { LogBookView logViewModel = new LogBookView(); var db = Repositories.LogBook.LogBookRepositoryFactory.Create(); var logs = db.SearchLogs(locationId, commentSearch, startDate, endDate, userSearch, onsiteRemote, reasons); logViewModel.TotalNumber = logs.Count; logViewModel.Logs = logs.ToPagedList(pageNumber, pageRows).ToList(); logViewModel.PageSize = pageRows; logViewModel.PageNumber = pageNumber; return(logViewModel); }
private LogBookView FindIntersection(LogBookView logBookView) { string currentLocation = ""; string currentIntersection = ""; foreach (LogView log in logBookView.Logs) { if (log.Onsite) { log.OnsiteOrRemote = "On Site"; } else { log.OnsiteOrRemote = "Remote"; } if (!String.Equals(currentLocation, "") && String.Equals(currentLocation, log.LocationId)) { log.Intersection = currentIntersection; } else { using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Add(( new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"))); string uri = WebAPI + "AIMSLocation?"; uri += "LocationToSearch=" + log.LocationId; var response = client.GetAsync(uri).Result; if (response.IsSuccessStatusCode) { var content = response.Content.ReadAsStringAsync().Result; JavaScriptSerializer JSserializer = new JavaScriptSerializer(); var locationView = JSserializer.Deserialize <ViewModels.AIMS.LocationView>(content); currentLocation = locationView.LocationIdentifier; currentIntersection = locationView.Name; log.Intersection = currentIntersection; } else //web api sent error response { log.Intersection = "Server error, cannot get intersection info"; } } } } return(logBookView); }
public LogsReportViewModel() { DateTime nowDate = DateTime.Now; EndDate = new DateTime(nowDate.Year, nowDate.Month, nowDate.Day, 0, 0, 0); StartDate = EndDate.AddMonths(-1); OnSite = true; Remote = true; CommentSearch = ""; LogsView = new LogBookView(); LogsView.Logs = new List <LogView>(); LogsView.PageSize = 20; LogsView.PageNumber = 1; ReasonForResponses = new List <ReasonForResponseView>(); }
public FileResult FileDownload(LogsReportViewModel vm) { string startDateFileName = vm.StartDate.ToString("yyyyMMdd"); string endDateFileName = vm.EndDate.ToString("yyyyMMdd"); string fileZipName = "ELogBook" + vm.LocationId + "_" + startDateFileName + "to" + endDateFileName + ".csv"; byte[] fileToSave = new byte[] {}; var logBookView = new LogBookView(); vm.LogsView.PageNumber = 1; string uri = BuildUriWithoutPage(vm); uri += "&pageRows=" + FileMaxRows; uri += "&pageNumber=" + vm.LogsView.PageNumber; if ((vm.EndDate.Ticks - vm.StartDate.Ticks) > 0) { logBookView = GetLogBookView(uri); var records = logBookView.Logs; fileToSave = Business.Exporter.GetLogFile(records); } return(File(fileToSave, "csv", fileZipName)); //// javascript download prefers text; haven't tested binary yet. //// works for chrome so far. not IE //using (var memStream = new MemoryStream()) //{ // using (var ziparchive = new ZipArchive(memStream, ZipArchiveMode.Create, true)) // { // var entry1 = ziparchive.CreateEntry(fileZipName, CompressionLevel.Optimal); // using (var entryStream = entry1.Open()) // { // entryStream.Write(fileToSave, 0, fileToSave.Length); // } // } // return File(memStream.ToArray(), "downloaded/csv", fileZipName); //} }
public ActionResult RunReport(LogsReportViewModel vm) { var logBookView = new LogBookView(); if (vm.LogsView.PageNumber == 0) { vm.LogsView.PageNumber = 1; } if (vm.ReportPageNumber == 0) { vm.ReportPageNumber = 1; } string uri = BuildUriWithoutPage(vm); uri += "&pageRows=" + PageRows; uri += "&pageNumber=" + vm.ReportPageNumber; //if (ModelState.IsValid) //don't do ModelState.IsValid ==> ReasonForResponses will always be invalid if ((vm.EndDate.Ticks - vm.StartDate.Ticks) > 0) { logBookView = GetLogBookView(uri); vm.LogsView = logBookView; //logViewModel.Logs; if (logBookView != null) { return(PartialView("ReportResult", vm)); } else { return(Content("Server error for Reports. Please contact administrator.")); } } else { return(Content("Please make sure End Date is before Start Date")); } }
private void AddLogBookItem() { var lbvm = new LogBookViewModel(SelectedCustomer.CustomerId); var lbv = new LogBookView(); Messenger.Default.Register<MessangerLogBook>(this, (message) => { switch (message.id) { case 1: using (dbContext db = new dbContext()) { LogBook x = new LogBook(); x.Customer = db.Customer.Find(message.CustomerId); x.CustomerContactType = db.CustomerContactType.Find(message.CustomerContactTypeId); x.Information = message.Information; x.Employeer = db.Employee.Find(message.EmployeerId); x.ContactDate = message.ContactDate; db.LogBook.Add(x); db.SaveChanges(); //RaisePropertyChanged("SelectedCustomer"); } break; } }); lbv.DataContext = lbvm; lbv.ShowDialog(); SearchCustomers(); }