public ActionResult Create(DestinationViewModel newDestination)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(newDestination));
            }

            var destinationToAdd = this.MappingService.Map <DestinationViewModel, Destination>(newDestination);

            if (newDestination.Image != null)
            {
                if (!this.ImageService.IsImageFile(newDestination.Image))
                {
                    ModelState.AddModelError("Image", "The uploaded file is not an image!");
                }

                var path = this.ImageService.MapPath(destinationToAdd.ImagePath);
                newDestination.Image.SaveAs(path);
            }

            if (newDestination.ImageUrl == null && newDestination.Image == null)
            {
                destinationToAdd.ImageUrl = ControllersConstants.defaultImageUrl;
            }

            this.destinationService.AddDestination(destinationToAdd);
            return(Redirect("/Admin/Administration"));
        }
        public ActionResult LoadDetails(int id)
        {
            var model = new DestinationViewModel();

            model = _destinationService.GetAll().Where(x => x.ID == id).FirstOrDefault();
            return(Json(model, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        //GET user/Edit/5
        public ActionResult Edit(int?destId)
        {
            try
            {
                if (destId == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                DestinationViewModel destViewModel = new DestinationViewModel();
                var dest = destViewModel.FindDestination(destId);
                TempData["daID"] = dest.DAID;

                if (dest.destID == 0)
                {
                    return(HttpNotFound());
                }
                return(View(dest));
            }
            catch (Exception ex)
            {
                errorlogviewmodel = new ErrorLogViewModel();
                errorlogviewmodel.LogError(ex);
                return(View("Error"));
            }
        }
        public async Task <IActionResult> Edit(int id, DestinationViewModel destinationViewModel)
        {
            if (id != destinationViewModel.Id)
            {
                return(this.NotFound());
            }

            if (!this.ModelState.IsValid)
            {
                return(this.View(destinationViewModel));
            }

            try
            {
                await this.destinationsService.EditAsync(id, destinationViewModel);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!this.DestinationExists(destinationViewModel.Id))
                {
                    return(this.NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(this.RedirectToAction(nameof(this.Index)));
        }
        public ActionResult Update(DestinationViewModel model)
        {
            //update data
            string msg = _destinationService.Update(model);

            return(Json(new { Message = msg }, JsonRequestBehavior.AllowGet));
        }
Пример #6
0
        private async Task <DestinationViewModel> GetDestinationsBySearch(DestinationViewModel viewModel, string searchString)
        {
            if (Enum.TryParse(searchString, out DestinationKeyword keyword))
            {
                List <int> destinationIds = await _context.Keyword.Where(i => i.KeywordEnum == keyword).Select(i => i.DestinationId).ToListAsync();

                List <Destination> destinations = new List <Destination>();
                viewModel.PageViewModel.TotalCount = destinationIds.Count();
                foreach (int id in destinationIds)
                {
                    destinations.Add(await _context.Destination.Where(s => s.Id == id).FirstAsync());
                }
                foreach (Destination destination in destinations.Skip(((viewModel.PageViewModel.PageNumber) - 1) * viewModel.PageViewModel.PageSize).Take(viewModel.PageViewModel.PageSize))
                {
                    await GetImagePaths(destination);

                    viewModel.Destinations.Add(destination);
                }
            }
            else
            {
                List <Destination> destinationList = await _context.Destination.Where(s => s.Name.Contains(searchString) || s.City.Contains(searchString) || s.State.Contains(searchString)).ToListAsync();

                viewModel.PageViewModel.TotalCount = destinationList.Count();
                foreach (Destination destination in destinationList.Skip(((viewModel.PageViewModel.PageNumber) - 1) * viewModel.PageViewModel.PageSize).Take(viewModel.PageViewModel.PageSize))
                {
                    await GetImagePaths(destination);

                    viewModel.Destinations.Add(destination);
                }
            }
            return(viewModel);
        }
Пример #7
0
        public async Task <Destination> Do(DestinationViewModel destination)
        {
            try
            {
                var state = _context.States.Where(stateSr => stateSr.Name == "Active").FirstOrDefault();

                var destinationSave = new Destination()
                {
                    UserId                 = destination.UserId,
                    TypeId                 = destination.TypeId,
                    SourceCoordinates      = destination.SourceCoordinates,
                    SourceName             = destination.SourceName,
                    DestinationCoordinates = destination.DestinationCoordinates,
                    DestinationName        = destination.DestinationName,
                    StateId                = state.Id
                };
                _context.Destinations.Add(destinationSave);
                await _context.SaveChangesAsync();

                _context.Orders.Add(new Order()
                {
                    DestinationId = destinationSave.Id,
                    StateId       = state.Id
                });
                await _context.SaveChangesAsync();

                return(destinationSave);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Пример #8
0
        public IActionResult Filter(DestinationViewModel src)
        {
            DestinationViewModel  result = new DestinationViewModel();
            IEnumerable <Country> list   = _countryRepository.FindAll();

            // If there is any filter data, we add filters to our list using the Where statement (just like SQL)
            if (src.FilterData != null)
            {
                if (!string.IsNullOrWhiteSpace(src.FilterData.EnglishName))
                {
                    // Where contains a Lambda expression. this expression returns True if the English Name contains the filter data
                    // false if it doesn't.
                    list = list.Where(c => c.EnglishName.Contains(src.FilterData.EnglishName, StringComparison.OrdinalIgnoreCase));
                }
                if (!(src.FilterData.Currency == null) && !string.IsNullOrWhiteSpace(src.FilterData.Currency.Symbol))
                {
                    // if currency is set as well, we at a where clause to our query checking if the country has a currency with a matching symbol
                    list = list.Where(c => c.Currency != null && !string.IsNullOrWhiteSpace(c.Currency.Symbol) && c.Currency.Symbol.Contains(src.FilterData.Currency.Symbol, StringComparison.OrdinalIgnoreCase));
                }
                if (!(src.FilterData.Region == null))
                {
                    // if region is filled, we add a where that only selects countries for that region
                    list = list.Where(c => c.Region.Equals(src.FilterData.Region));
                }
            }
            // with all filters complete, we execute the query by call the ToList method.

            // the filtered data should be ordered:
            // first by subregion
            // then by country name
            result.Countries = list.ToList();
            PrepViewBag();
            return(View("AllDestinations", result));
        }
Пример #9
0
        public ActionResult Index(int?id)
        {
            try
            {
                if (id == null)
                {
                    id = (int)TempData["daID"];
                }

                DestinationViewModel destViewModel = new DestinationViewModel();
                destViewModel.GetDestinationDetails((int)id);
                destViewModel.GetScreenAccessRights("Destination Details");
                CommonFunctions comfuns = new CommonFunctions();

                var da = comfuns.FindDA((int)id);
                destViewModel.DAID     = (int)id;
                destViewModel.DAName   = da.DAName;
                destViewModel.ModuleId = da.ModuleId;
                TempData["daId"]       = destViewModel.DAID;

                return(View(destViewModel));
            }
            catch (Exception ex)
            {
                errorlogviewmodel = new ErrorLogViewModel();
                errorlogviewmodel.LogError(ex);
                return(View("Error"));
            }
        }
        public async Task <bool> Do(DestinationViewModel destination)
        {
            try
            {
                var state = _context.States
                            .Where(stateSr => stateSr.Name == "Awaiting Departure").FirstOrDefault();

                var destinationSave = new Destination()
                {
                    UserId                 = destination.UserId,
                    TypeId                 = destination.TypeId,
                    SourceCoordinates      = destination.SourceCoordinates,
                    SourceName             = destination.SourceName,
                    DestinationCoordinates = destination.DestinationCoordinates,
                    DestinationName        = destination.DestinationName,
                    VehicleId              = destination.VehicleId,
                    StateId                = state.Id
                };
                _context.Destinations.Add(destinationSave);
                await _context.SaveChangesAsync();
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }
Пример #11
0
        public ActionResult Edit(DestinationViewModel destViewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    bool isduplicate = false;
                    destViewModel.destDesc = destViewModel.destDesc.Trim();
                    isduplicate            = destViewModel.CheckDuplicate(destViewModel);
                    if (isduplicate)
                    {
                        ModelState.AddModelError("destDesc", "Destination already exists");
                        return(View("Edit", destViewModel));
                    }

                    destViewModel.UpdateDestination(destViewModel);
                    return(RedirectToAction("Index", "Destination"));
                }
                return(View());
            }
            catch (Exception ex)
            {
                errorlogviewmodel = new ErrorLogViewModel();
                errorlogviewmodel.LogError(ex);
                return(View("Error"));
            }
        }
        // GET: Destinations/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }


            var destination = await _repository.GetDestinationWithUserCityAndCoutryAsync(id.Value);

            if (destination == null)
            {
                return(NotFound());
            }

            DestinationViewModel model = new DestinationViewModel()
            {
                Id        = destination.Id,
                Airport   = destination.Airport,
                IATA      = destination.IATA,
                UserId    = destination.User.Id,
                City      = destination.City.Name,
                Country   = destination.Country.Name,
                Countries = _countryRepository.GetComboCountries(),
                Cities    = _countryRepository.GetComboCities(0)
            };


            return(View(model));
        }
Пример #13
0
        public async Task <IActionResult> Edit(string id)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(id))
                {
                    return(NotFound());
                }
                Destination destination = await destinationDAL.FindDestinationByIdAsync(id);

                if (destination == null)
                {
                    return(NotFound());
                }
                DestinationViewModel model = new DestinationViewModel
                {
                    Id          = destination.Id,
                    Name        = destination.Name,
                    Image       = destination.Image,
                    Description = destination.Description ?? "",
                    Country     = destination.Country,
                    IsActive    = destination.IsActive
                };
                return(View(model));
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                throw;
            }
        }
        // GET: Destinations/Create
        public IActionResult Create()
        {
            var model = new DestinationViewModel();

            GetCombos(model);

            return(View(model));
        }
        public IActionResult JustAfrica()
        {
            DestinationViewModel destinations = new DestinationViewModel();

            destinations.Countries = _countryRepository.FindByRegion("Africa");
            ViewBag.FilterName     = "African";
            return(View("FilteredDestinations", destinations));
        }
        public IActionResult EnglishSpeaking()
        {
            DestinationViewModel destinations = new DestinationViewModel();

            destinations.Countries = _countryRepository.FindByLanguage("English");
            ViewBag.FilterName     = "English speaking";
            return(View("FilteredDestinations", destinations));
        }
        public IActionResult EuroArea()
        {
            DestinationViewModel destinations = new DestinationViewModel();

            destinations.Countries = _countryRepository.FindByCurrency("€");
            ViewBag.FilterName     = "Euro area";
            return(View("FilteredDestinations", destinations));
        }
Пример #18
0
        public string Update(DestinationViewModel model)
        {
            string msg = string.Empty;

            try
            {
                Data.Entities.Destination destination = _context.AsQueryable <Data.Entities.Destination>().Where(x => x.ID == model.ID).FirstOrDefault();
                bool isExists = false;

                #region Check if new name changed
                if (destination.Name.Trim().ToUpper() != model.Name.Trim().ToUpper())
                {
                    int ctr = _context.AsQueryable <Data.Entities.Destination>().Where(x => x.Name.Trim() == model.Name.Trim()).Count();
                    if (ctr > 0)
                    {
                        isExists = true;
                    }
                }
                #endregion

                if (isExists)
                {
                    msg = "Destination already exists.";
                }
                else
                {
                    if (!string.IsNullOrEmpty(model.Name))
                    {
                        destination.Name = model.Name;
                    }
                    if (!string.IsNullOrEmpty(model.Description))
                    {
                        destination.Description = model.Description;
                    }
                    destination.DateModified = DateTime.Now;

                    if (destination != null)
                    {
                        _context.Update <Data.Entities.Destination>(destination);
                        _context.SaveChanges();
                    }
                    msg = "Destination updated.";
                }
            }
            catch (Exception ex)
            {
                msg = "Unexpected error encountered. Please contact your system administrator.";
                LogsViewModel error = new LogsViewModel()
                {
                    ActionType   = ActionType.Error.ToString(),
                    Description  = ex.Message + "\n" + ex.StackTrace,
                    ModifiedBy   = "Destination Service Error : Update()",
                    DateModified = DateTime.Now.ToString("MM/dd/yyyy HH:mm")
                };
                new LogsService().Create(error);
            }
            return(msg);
        }
Пример #19
0
        public IActionResult Add()
        {
            DestinationViewModel model = new DestinationViewModel
            {
                Image = "https://ztourist.blob.core.windows.net/others/destination.jpg"
            };

            return(View(model));
        }
Пример #20
0
        public IActionResult Index()
        {
            DestinationViewModel result = new DestinationViewModel();

            // The find all method returns a list of all destinations
            result.Countries = _countryRepository.FindAll().ToList();
            PrepViewBag();
            return(View("AllDestinations", result));
        }
Пример #21
0
        public IActionResult Sort(string id)
        {
            DestinationViewModel result = new DestinationViewModel();

            // FindAll returns all destinations, we order those by the EnglishName and return the result
            result.Countries = _countryRepository.FindAll().OrderBy(p => p.EnglishName).ToList();
            result.SortedBy  = id;
            PrepViewBag();
            return(View("AllDestinations", result));
        }
Пример #22
0
        /// <summary>
        /// convert destination view model to domain
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public Destination ConvertToDomain(DestinationViewModel model)
        {
            Destination destination = new Destination();

            destination.DestinationId = model.DestinationId;
            destination.Description   = model.DestinationDescription;
            destination.IsActive      = model.IsActive;

            return(destination);
        }
Пример #23
0
        /// <summary>
        /// convert destination to view model
        /// </summary>
        /// <param name="destination"></param>
        /// <returns></returns>
        public DestinationViewModel ConvertToView(Destination destination)
        {
            DestinationViewModel model = new DestinationViewModel();

            model.DestinationId          = destination.DestinationId;
            model.DestinationDescription = (!string.IsNullOrEmpty(destination.Description)) ? destination.Description : "N/A";
            model.IsActive = destination.IsActive;

            return(model);
        }
Пример #24
0
        public JsonResult GetFilteredDestinations(string term)
        {
            List <Destination>   destinations = new List <Destination>();
            DestinationViewModel viewModel    = new DestinationViewModel();
            List <string>        DestinationNames;

            DestinationNames = viewModel.RetrieveDesiredDestinations(term).Select(d => d.DestinationName).ToList();

            return(Json(DestinationNames, JsonRequestBehavior.AllowGet));
        }
Пример #25
0
        private void ButtonConfirm_OnClick(object sender, RoutedEventArgs e)
        {
            if (TypeComboBox.SelectedItem is not ValueDescription destinationType)
                return;

            var viewModel = DestinationViewModel.Create((DestinationType)destinationType.Value);
            _viewModel.Destinations.Add(viewModel);
            ElementsDataGrid.SelectedItem = viewModel;
            ButtonsPanel.Visibility = Visibility.Visible;
            AddConfirmationPanel.Visibility = Visibility.Hidden;
        }
Пример #26
0
 public async Task <IActionResult> Add(DestinationViewModel model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             if (await destinationDAL.IsExistedDestinationIdAsync(model.Id))
             {
                 ModelState.AddModelError("", $"Destination ID '{model.Id.ToUpper()}' is existed");
             }
             if (!ModelState.IsValid)
             {
                 return(View("Add", model));
             }
             Destination destination = new Destination
             {
                 Id          = model.Id.ToUpper(),
                 Name        = model.Name,
                 Description = model.Description ?? "",
                 Country     = model.Country,
                 IsActive    = model.IsActive
             };
             string img = model.Image ?? "https://ztourist.blob.core.windows.net/others/destination.jpg";
             if (model.Photo != null && !string.IsNullOrWhiteSpace(model.Photo?.FileName)) // if photo is chosen then copy
             {
                 string filePath = model.Id + "." + model.Photo.FileName.Substring(model.Photo.FileName.LastIndexOf(".") + 1);
                 img = await blobService.UploadFile("destinations", filePath, model.Photo);
             }
             if (img != null)
             {
                 destination.Image = img;
                 if (await destinationDAL.AddDestinationAsync(destination))
                 {
                     return(RedirectToAction(nameof(Details), new { model.Id }));
                 }
                 else
                 {
                     ModelState.AddModelError("", "Add destination failed");
                 }
             }
             else
             {
                 ModelState.AddModelError("", "Can't upload image");
             }
         }
         return(View("Add", model));
     }
     catch (Exception ex)
     {
         logger.Error(ex.Message);
         throw;
     }
 }
Пример #27
0
        private async Task <DestinationViewModel> GetDestinationsDefault(DestinationViewModel viewModel)
        {
            viewModel.PageViewModel.TotalCount = await _context.Destination.CountAsync();

            foreach (Destination destination in await _context.Destination.Skip(((viewModel.PageViewModel.PageNumber) - 1) * viewModel.PageViewModel.PageSize).Take(viewModel.PageViewModel.PageSize).ToListAsync())
            {
                await GetImagePaths(destination);

                viewModel.Destinations.Add(destination);
            }
            return(viewModel);
        }
        public async Task EditAsync(int id, DestinationViewModel input)
        {
            var destination = this.destinationsRepository.All().FirstOrDefault(x => x.Id == id);

            destination.Continent = input.Continent;
            destination.Country   = input.Country;
            destination.Town      = input.Town;
            destination.IsDeleted = input.IsDeleted;

            this.destinationsRepository.Update(destination);
            await this.destinationsRepository.SaveChangesAsync();
        }
        public async Task <IActionResult> Create(DestinationViewModel model)
        {
            if (ModelState.IsValid)
            {
                City city = await _countryRepository.GetCityAsync(model.CityId);

                Country country = _countryRepository.GetCountryAsync(city);

                User user = await _userHelper.GetUserByEmailAsync(User.Identity.Name);

                Destination destination = new Destination()
                {
                    Airport = model.Airport,
                    IATA    = model.IATA,
                    City    = city,
                    Country = country,
                    User    = user,
                };

                try
                {
                    await _repository.CreateAsync(destination); // Ao usar o create grava logo

                    return(RedirectToAction(nameof(Index)));    //Redirecionamento para a página
                                                                // nameof(Index) é o mesmo que colocar ("Index")
                }
                catch (Exception ex)
                {
                    if (ex.InnerException.Message.Contains("duplicate"))
                    {
                        model.CityId    = 0;
                        model.CountryId = 0;
                        model.Cities    = _countryRepository.GetComboCities(0);
                        model.Countries = _countryRepository.GetComboCountries();
                        ModelState.AddModelError(string.Empty, "Already exists a destination with that IATA");
                        return(View(model));
                    }

                    else
                    {
                        ModelState.AddModelError(string.Empty, ex.InnerException.Message);
                        model.Cities    = _countryRepository.GetComboCities(0);
                        model.Countries = _countryRepository.GetComboCountries();
                        return(View(model));
                    }
                }
            }
            return(View(model));
        }
Пример #30
0
        public async Task <DestinationViewModel> GetDestinations(int?pageNumber, string searchString, bool isMapView)
        {
            DestinationViewModel viewModel = new DestinationViewModel();

            viewModel.PageViewModel.PageNumber = pageNumber ?? 1;
            viewModel.PageViewModel.IsMapView  = isMapView;
            if (string.IsNullOrEmpty(searchString))
            {
                return(await GetDestinationsDefault(viewModel));
            }
            else
            {
                return(await GetDestinationsBySearch(viewModel, searchString));
            }
        }