示例#1
0
        public async Task <ActionResult> Edit(EventViewModel eventViewModel)
        {
            try
            {
                var httpClient = RideShareHttpClient.GetClient();

                var serializedTrip = JsonConvert.SerializeObject(eventViewModel);

                var response = await httpClient.PutAsync("api/events/" + eventViewModel.EventId,
                                                         new StringContent(serializedTrip, Encoding.Unicode, "application/json"))
                               .ConfigureAwait(false);

                if (response.IsSuccessStatusCode)
                {
                    return(RedirectToAction("Index", "Home"));
                }
                return(View("Error",
                            new HandleErrorInfo(ExceptionHelper.GetExceptionFromResponse(response),
                                                "Events", "Edit")));
            }
            catch (Exception ex)
            {
                return(View("Error", new HandleErrorInfo(ex, "Events", "Edit")));
            }
        }
示例#2
0
        public async Task <ActionResult> View(Guid eventId)
        {
            try
            {
                var httpClient = RideShareHttpClient.GetClient();

                var response = await httpClient.GetAsync("api/events/" + eventId)
                               .ConfigureAwait(false);

                if (response.IsSuccessStatusCode)
                {
                    var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                    var @event = JsonConvert.DeserializeObject <Event>(responseString);

                    var eventViewModel = Mapper.Map <Event, EventViewModel>(@event);
                    eventViewModel.ViewModelMode = ViewModelMode.View;

                    return(View(eventViewModel));
                }

                return(View("Error",
                            new HandleErrorInfo(ExceptionHelper.GetExceptionFromResponse(response),
                                                "Events", "Create")));
            }
            catch (Exception ex)
            {
                return(View("Error", new HandleErrorInfo(ex, "Events", "Create")));
            }
        }
示例#3
0
        public async Task <ActionResult> ViewEvent(EventViewModel eventViewModel)
        {
            try
            {
                await Task.FromResult(0);

                var httpClient = RideShareHttpClient.GetClient();

                var serializedTrip = JsonConvert.SerializeObject(
                    new CreateCarForEventViewModel
                {
                    EventId     = eventViewModel.EventId,
                    Email       = eventViewModel.CarEmail,
                    Name        = eventViewModel.CarName,
                    Phone       = eventViewModel.CarPhone,
                    Description = "dummy" + DateTime.Now
                }
                    );

                var response = await httpClient.PostAsync("api/cars/",
                                                          new StringContent(serializedTrip, Encoding.Unicode, "application/json"))
                               .ConfigureAwait(false);

                if (response.IsSuccessStatusCode)
                {
                    return(RedirectToAction("View", "Events",
                                            new RouteValueDictionary {
                        { "eventId", eventViewModel.EventId }
                    }));
                }

                return(View("Error",
                            new HandleErrorInfo(ExceptionHelper.GetExceptionFromResponse(response),
                                                "Events", "Edit")));
            }
            catch (Exception ex)
            {
                return(View("Error", new HandleErrorInfo(ex, "Events", "Edit")));
            }
        }
示例#4
0
        public async Task <ActionResult> Index()
        {
            if (User.Identity.IsAuthenticated)
            {
                Log.Logger.Debug("Trace: User is authenticated.");
                var httpClient = RideShareHttpClient.GetClient();

                Log.Logger.Debug("HttpClient base url :" + httpClient.BaseAddress.AbsolutePath);

                var activeEvents = await httpClient
                                   .GetAsync("Api/Events/")
                                   .ConfigureAwait(false);

                var activeEventsAsString = await activeEvents
                                           .Content.ReadAsStringAsync()
                                           .ConfigureAwait(false);

                if (activeEvents.IsSuccessStatusCode)
                {
                    var models          = JsonConvert.DeserializeObject <IList <Event> >(activeEventsAsString).ToList();
                    var eventViewModels = models.Select(Mapper.Map <EventViewModel>);

                    var vm = new HomeIndexViewModel();
                    vm.Events.AddRange(eventViewModels);

                    return(View(vm));
                }

                Log.Logger.Error($"Non-successful call to API: {@activeEvents.StatusCode}, {activeEventsAsString}");

                return(View("Error",
                            new HandleErrorInfo(ExceptionHelper.GetExceptionFromResponse(activeEvents),
                                                "Home", "Index")));
            }
            return(View());
        }