Ejemplo n.º 1
0
        public async Task <ActionResult> Create(TripCreateViewModel vm)
        {
            try
            {
                byte[] uploadedImage = new byte[vm.MainImage.InputStream.Length];
                vm.MainImage.InputStream.Read(uploadedImage, 0, uploadedImage.Length);

                vm.Trip.MainPictureBytes = uploadedImage;

                var httpClient = TripGalleryHttpClient.GetClient();

                var serializedTrip = JsonConvert.SerializeObject(vm.Trip);

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

                if (response.IsSuccessStatusCode)
                {
                    return(RedirectToAction("Index", "Trips"));
                }
                else
                {
                    return(View("Error",
                                new HandleErrorInfo(ExceptionHelper.GetExceptionFromResponse(response),
                                                    "Trips", "Create")));
                }
            }
            catch (Exception ex)
            {
                return(View("Error", new HandleErrorInfo(ex, "Trips", "Create")));
            }
        }
        public void Create_ThrowExceptionIfMonumentWithGivenIdDoNotExist()
        {
            var model = new TripCreateViewModel {
                SelectedMonumentId = 1
            };
            Action testCode = () => this.tripsService.Create(model, "testUsername");

            testCode.ShouldThrow <MonumentNullException>();
        }
Ejemplo n.º 3
0
        public IActionResult Create(TripCreateViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(base.View(model));
            }

            this.tripsService.Create(model, this.User.Identity.Name);
            return(base.RedirectToAction("MyTrips", "Trips"));
        }
        public void Create_ShouldCreateNewTripCorrectly()
        {
            int    monumentId = 1;
            int    hotelId    = 2;
            string username   = "******";

            this.dbContext.Monuments.Add(new Monument {
                Id = monumentId
            });
            this.dbContext.Hotels.Add(new Hotel {
                Id = hotelId
            });
            this.dbContext.Users.Add(new MbUser {
                UserName = username
            });
            this.dbContext.SaveChanges();

            string description = "testDescription";
            string name        = "testName";
            var    model       = new TripCreateViewModel
            {
                Description        = description,
                Name               = name,
                SelectedMonumentId = monumentId,
                SelectedHotelId    = hotelId,
            };

            string imageUrl             = "testUrl";
            string imagesDirectory      = "wwwroot/images/trips/";
            string imagesFolderName     = "trips";
            var    mockedImagesUploader = new Mock <ImagesUploader>(null);

            mockedImagesUploader
            .Setup(x => x.Upload(null, imagesDirectory, imagesFolderName))
            .Returns(imageUrl);

            typeof(TripsService)
            .GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
            .First(x => x.FieldType == typeof(ImagesUploader))
            .SetValue(this.tripsService, mockedImagesUploader.Object);

            this.tripsService.Create(model, username);

            Trip result = this.dbContext.Trips.First();

            result.ShouldSatisfyAllConditions
            (
                () => result.Description.ShouldBe(description),
                () => result.Name.ShouldBe(name),
                () => result.ImageUrl.ShouldBe(imageUrl),
                () => result.MonumentId.ShouldBe(monumentId),
                () => result.HotelId.ShouldBe(hotelId)
            );
        }
Ejemplo n.º 5
0
        public IActionResult UpdateTravel(int tripId)
        {
            var travel              = _parteiDbContext.Travels.Find(tripId);
            var stopList            = _parteiDbContext.TravelStops.Where(x => x.TravelId == tripId).Select(x => x.StopId).ToList();
            var tripCreateViewModel = new TripCreateViewModel()
            {
                Travel        = travel,
                StopList      = _parteiDbContext.Stops.ToList(),
                SelectedStops = stopList,
            };

            return(View(tripCreateViewModel));
        }
Ejemplo n.º 6
0
        public HttpResponse Add(TripCreateViewModel model)
        {
            var validationResult = this.validator.ValidateTrip(model);

            if (validationResult.Any())
            {
                return(Redirect("/Trips/Add"));
            }

            this.tripsService.CreateTrip(model, this.User.Id);

            return(Redirect("/Trips/All"));
        }
        public void Create_ThrowExceptionIfHotelWithGivenIdDoNotExist()
        {
            int monumentId = 1;

            this.dbContext.Monuments.Add(new Monument {
                Id = monumentId
            });
            this.dbContext.SaveChanges();

            var model = new TripCreateViewModel {
                SelectedMonumentId = monumentId, SelectedHotelId = 2
            };
            Action testCode = () => this.tripsService.Create(model, "testUSername");

            testCode.ShouldThrow <HotelNullException>();
        }
Ejemplo n.º 8
0
        public IActionResult Create()
        {
            var hotels = this.hotelsService.GetAllOrderedByName()
                         .Select(x => new SelectListItem(x.Name, x.Id.ToString()))
                         .ToList();

            var monuments = this.monumentsService.GetAllOrderedByName()
                            .Select(x => new SelectListItem(x.Name, x.Id.ToString()))
                            .ToList();

            var viewModel = new TripCreateViewModel {
                Hotels = hotels, Monuments = monuments
            };

            return(base.View(viewModel));
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> IndexAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            var tripCreateViewModel = new TripCreateViewModel()
            {
                Travel = new Travel()
                {
                    OrganizationId = user.OrgranizationId
                },
                StopList      = _parteiDbContext.Stops.Where(x => !x.StopId.Equals(-1)).ToList(),
                SelectedStops = new List <int>(),
            };

            return(View(tripCreateViewModel));
        }
Ejemplo n.º 10
0
        public void CreateTrip(TripCreateViewModel model, string userId)
        {
            var trip = new Trip()
            {
                StartPoint    = model.StartPoint,
                EndPoint      = model.EndPoint,
                DepartureTime = DateTime.Parse(model.DepartureTime),
                Seats         = model.Seats,
                ImagePath     = model.ImagePath,
                Description   = model.Description,
            };

            trip.UserTrips.Add(new UserTrip()
            {
                UserId = userId
            });

            this.context.Trips.Add(trip);
            this.context.SaveChanges();
        }
Ejemplo n.º 11
0
        public List <string> ValidateTrip(TripCreateViewModel model)
        {
            var result = new List <string>();

            if (!DateTime.TryParseExact(model.DepartureTime, "dd.MM.yyyy HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out var time))
            {
                result.Add("Invalid DateTime Format");
            }

            if (model.Seats < 2 || model.Seats > 6)
            {
                result.Add("Invalid number of seats. Seats must be in range of 2 to 6.");
            }

            if (model.Description.Length > 80)
            {
                result.Add("Description is too long. It must be up to 80 characters.");
            }

            return(result);
        }
Ejemplo n.º 12
0
        public IActionResult StopList(String stopName)
        {
            if (_parteiDbContext.Stops.Where(x => x.StopName.ToLower().Equals(stopName.ToLower())).Count() >= 1)
            {
                throw new ArgumentException("Element existiert bereits!");
            }

            _parteiDbContext.Add(new Stop()
            {
                StopName = stopName,
            });
            _parteiDbContext.SaveChanges();


            var tripCreateViewModel = new TripCreateViewModel()
            {
                StopList      = _parteiDbContext.Stops.Where(x => !x.StopId.Equals(-1)).ToList(),
                SelectedStops = new List <int>(),
            };

            return(PartialView("_SelectStopList", tripCreateViewModel));
        }
Ejemplo n.º 13
0
        public void Create(TripCreateViewModel model, string username)
        {
            if (!this.monumentsService.CheckExistById(model.SelectedMonumentId))
            {
                throw new MonumentNullException();
            }

            if (!this.hotelsService.CheckExistById(model.SelectedHotelId))
            {
                throw new HotelNullException();
            }

            Trip trip = this.mapper.Map <Trip>(model);

            trip.ImageUrl = this.imagesUploader.Upload(model.Photo, ImagesDirectory, ImagesFolderName);

            MbUser user = this.usersService.GetByUsername(username);

            trip.User = user;

            this.dbContext.Trips.Add(trip);
            this.dbContext.SaveChanges();
        }
Ejemplo n.º 14
0
        public async Task <IActionResult> UpdateTravelAsync(TripCreateViewModel tripCreateViewModel)
        {
            _parteiDbContext.Travels.Update(tripCreateViewModel.Travel);
            var travel = _parteiDbContext.Travels.Include(t => t.TravelStops).Include(i => i.Images).Single(t => t.TravelId == tripCreateViewModel.Travel.TravelId);

            _parteiDbContext.TravelStops.RemoveRange(travel.TravelStops);
            tripCreateViewModel.Travel = travel;
            _parteiDbContext.SaveChanges();

            if (HttpContext.Request.Form.Files != null)
            {
                var files = HttpContext.Request.Form.Files;
                List <TravelImage> travelImages = new List <TravelImage>();
                List <Image>       images       = new List <Image>();

                foreach (var file in files)
                {
                    travelImages.Add(new TravelImage()
                    {
                        File = file, FileName = file.FileName
                    });
                    images.Add(new Image()
                    {
                        ImageName     = file.FileName,
                        ImageFileSize = int.Parse(file.Length.ToString()),
                        ImageFileType = file.ContentType,
                    });
                }

                if (files.Count > 0)
                {
                    var result = await BlobManager.AddTravelImagesAsync(travelImages);

                    if (result.Successfull)
                    {
                        for (int i = 0; i < files.Count; i++)
                        {
                            images[i].ImageUrl = ((IList <string>)result.Payload)[i];
                        }
                    }
                    if (tripCreateViewModel.Travel.Images.Count > 0)
                    {
                        tripCreateViewModel.Travel.Images.RemoveRange(tripCreateViewModel.Travel.Images.IndexOf(tripCreateViewModel.Travel.Images.First()), tripCreateViewModel.Travel.Images.Count());
                    }
                    tripCreateViewModel.Travel.Images = images;
                }
                else
                {
                    tripCreateViewModel.Travel.Images = new List <Image>();
                }
            }

            _parteiDbContext.SaveChanges();


            foreach (int stop in tripCreateViewModel.SelectedStops)
            {
                TravelStop travelStop = new TravelStop
                {
                    TravelId = tripCreateViewModel.Travel.TravelId,
                    StopId   = stop,
                };
                _parteiDbContext.Add(travelStop);
            }
            _parteiDbContext.SaveChanges();

            return(RedirectToAction("Index", "TripOverview"));
        }
Ejemplo n.º 15
0
        public async Task <IActionResult> AddTravelAsync(TripCreateViewModel tripCreateViewModel)
        {
            if (HttpContext.Request.Form.Files != null)
            {
                var files = HttpContext.Request.Form.Files;
                List <TravelImage> travelImages = new List <TravelImage>();
                List <Image>       images       = new List <Image>();

                foreach (var file in files)
                {
                    travelImages.Add(new TravelImage()
                    {
                        File = file, FileName = file.FileName
                    });
                    images.Add(new Image()
                    {
                        ImageName     = file.FileName,
                        ImageFileSize = int.Parse(file.Length.ToString()),
                        ImageFileType = file.ContentType,
                    });
                }

                if (files.Count > 0)
                {
                    var result = await BlobManager.AddTravelImagesAsync(travelImages);

                    if (result.Successfull)
                    {
                        for (int i = 0; i < files.Count; i++)
                        {
                            images[i].ImageUrl = ((IList <string>)result.Payload)[i];
                        }
                    }
                    tripCreateViewModel.Travel.Images = images;
                }
                else
                {
                    tripCreateViewModel.Travel.Images = new List <Image>();
                }
            }

            if (tripCreateViewModel.Travel.Images.Count == 0)
            {
                tripCreateViewModel.Travel.Images.Add(new Image
                {
                    ImageUrl      = null,
                    ImageName     = "Kein Foto hochgeladen",
                    ImageFileSize = 0,
                    ImageFileType = null,
                });
            }
            else
            {
                // COSMOS BEGIN
                foreach (var image in tripCreateViewModel.Travel.Images)
                {
                    try
                    {
                        CosmosManager.Images.InsertOne(new CosmosDB.DBModels.Image
                        {
                            BlobUrl   = image.ImageUrl,
                            Id        = CosmosManager.Images.FindSync <CosmosDB.DBModels.Image>(new BsonDocument()).ToList().Count,
                            ImageName = image.ImageName,
                            TravelId  = image.TravelId
                        });
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                }
                // COSMOS END
            }

            Console.WriteLine(tripCreateViewModel.Travel.Description);
            _parteiDbContext.Add(tripCreateViewModel.Travel);
            _parteiDbContext.SaveChanges();

            foreach (int stop in tripCreateViewModel.SelectedStops)
            {
                TravelStop travelStop = new TravelStop
                {
                    TravelId = tripCreateViewModel.Travel.TravelId,
                    StopId   = stop,
                };
                _parteiDbContext.Add(travelStop);
            }

            _parteiDbContext.SaveChanges();

            return(RedirectToAction("Index", "TripOverview"));
        }