public ActionResult Update(DogEventViewModel model) { if (!LoginHelper.IsAuthenticated()) { return(RedirectToAction("Login", "Account", new { returnUrl = this.Request.Url.AbsoluteUri })); } var lostPersonTrackPoints = new Trkseg { Trkpt = model.LostPersonTrackPoints }; var dogTrackPoints = new Trkseg { Trkpt = model.DogTrackPoints }; UpdateTracks(model.DogId, model.EventId, model.LostPersonTrackFilename, model.DogTrackFilename, lostPersonTrackPoints, dogTrackPoints); var dogEventModel = new DogEventModel { LostPerson = model.LostPerson, Notes = model.Notes, Weather = model.Weather, DogId = model.DogId, EventId = model.EventId }; client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", LoginHelper.GetToken()); System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Put, client.BaseAddress + $"dogevents/dogevent?dogId={model.DogId}&eventId={model.EventId}"); var dogEventSerialized = JsonConvert.SerializeObject(dogEventModel); message.Content = new StringContent(dogEventSerialized, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage responseMessage = client.SendAsync(message).Result; if (responseMessage.IsSuccessStatusCode) //200 OK { message.Dispose(); var responseData = responseMessage.Content.ReadAsStringAsync().Result; var definition = new { DogId = "", EventId = "" }; var ids = JsonConvert.DeserializeAnonymousType(responseData, definition); return(RedirectToAction("DogEvent", new { dogId = ids.DogId, eventId = ids.EventId })); } else // msg why not ok { ViewBag.Message = "code: " + responseMessage.StatusCode; return(View("Error")); } }
public async Task <ActionResult> DogEvent(int eventId, int dogId) { if (!LoginHelper.IsAuthenticated()) { return(RedirectToAction("Login", "Account", new { returnUrl = this.Request.Url.AbsoluteUri })); } client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", LoginHelper.GetToken()); var blobTrackLinkBase = @"https://kgtstorage.blob.core.windows.net/tracks/"; HttpResponseMessage responseMessage = await client.GetAsync($"dogevents/dogevent?eventId={eventId}&dogId={dogId}"); if (responseMessage.IsSuccessStatusCode) { var responseData = responseMessage.Content.ReadAsStringAsync().Result; var dogEvent = JsonConvert.DeserializeObject <DogEventModel>(responseData); var dogEventViewModel = new DogEventViewModel() { Dog = dogEvent.Dog, DogId = dogEvent.DogId, DogTrackFilename = String.IsNullOrWhiteSpace(dogEvent.DogTrackBlobUrl) ? null : dogEvent.DogTrackBlobUrl .Remove(dogEvent.DogTrackBlobUrl.IndexOf(blobTrackLinkBase), blobTrackLinkBase.Length), LostPerson = dogEvent.LostPerson, LostPersonTrackFilename = String.IsNullOrWhiteSpace(dogEvent.LostPersonTrackBlobUrl) ? null : dogEvent.LostPersonTrackBlobUrl .Remove(dogEvent.LostPersonTrackBlobUrl.IndexOf(blobTrackLinkBase), blobTrackLinkBase.Length), Notes = dogEvent.Notes, Event = dogEvent.Event, EventId = dogEvent.EventId, Weather = dogEvent.Weather }; if (!String.IsNullOrEmpty(dogEvent.DogTrackBlobUrl)) { var webRequestDogTrack = WebRequest.Create(dogEvent.DogTrackBlobUrl); try { using (var response = webRequestDogTrack.GetResponse()) using (var content = response.GetResponseStream()) using (var reader = new StreamReader(content)) { XDocument gpxDoc = XDocument.Load(reader); var serializer = new XmlSerializer(typeof(Trkseg)); var trkseg = (Trkseg)serializer.Deserialize(gpxDoc.Root.CreateReader()); var t = trkseg.Trkpt; dogEventViewModel.DogTrackPoints = t; //TODO: fill other fields DogEventViewModel class (dog part) } } catch (Exception e) { ViewBag.Message = e.Message; return(View("Error")); } } if (!String.IsNullOrEmpty(dogEvent.LostPersonTrackBlobUrl)) { var webRequestLostPersonTrack = WebRequest.Create(dogEvent.LostPersonTrackBlobUrl); try { using (var response = webRequestLostPersonTrack.GetResponse()) using (var content = response.GetResponseStream()) using (var reader = new StreamReader(content)) { XDocument gpxDoc = XDocument.Load(reader); var serializer = new XmlSerializer(typeof(Trkseg)); var trkseg = (Trkseg)serializer.Deserialize(gpxDoc.Root.CreateReader()); var t = trkseg.Trkpt; dogEventViewModel.LostPersonTrackPoints = t; //TODO: fill other fields DogEventViewModel class (person part) } } catch (Exception e) { ViewBag.Message = e.Message; return(View("Error")); } } return(View(dogEventViewModel)); } else { ViewBag.Message = "code: " + responseMessage.StatusCode; return(View("Error")); } }