public async Task <TouristEditForm> ShowCurrentTouristEditForm(int?id) { Tourist tourist = new Tourist(); if (id != 0) { tourist = await db.Tourists.Where(x => x.Touristid == id).FirstOrDefaultAsync(); } TouristEditForm model = new TouristEditForm(); model.Hometown = tourist.Hometown; model.Fullname = tourist.Fullname; model.Age = tourist.Age; model.GuideId = tourist.GuideId; model.Path = tourist.Avatar; model.Tours = await db.Tours.ToListAsync(); model.SelectedTourIds = await db.TouristTour.Where(x => x.TouristId == tourist.Touristid).Select(x => x.TourId).ToListAsync(); model.Guides = await db.Guides.ToListAsync(); model.selectListg = new SelectList(model.Guides, "GuideId", "Name"); model.Touristid = tourist.Touristid; foreach (var t in model.Tours) { if (model.SelectedTourIds.Contains(t.TourId)) { t.selected = true; } } return(model); }
public async Task <ActionResult> EditTouristAsync(TouristEditForm model) { await _touristServ.SaveEditedTourist(model); string message = "Editing of tourist"; var logger = _loggerCreator.FactoryMethod(); logger.LoggMessage(this.GetType().Name, message); return(Ok()); }
public async Task SaveEditedTourist(TouristEditForm model) { Tourist tourist = new Tourist(); tourist.Fullname = model.Fullname; tourist.Hometown = model.Hometown; tourist.GuideId = model.GuideId; tourist.Age = model.Age; tourist.Touristid = model.Touristid; if (model.Avatar != null) { _fileManagerServ.DeletePhoto(model.Path); model.Path = await model.Avatar.PathReturn(_appEnvironment); } tourist.Avatar = model.Path; List <TouristTour> touristToursToRemove = new List <TouristTour>(); touristToursToRemove = await db.TouristTour.Where(x => x.TouristId == tourist.Touristid).ToListAsync(); db.RemoveRange(touristToursToRemove); await db.SaveChangesAsync(); List <TouristTour> touristToursToAdd = new List <TouristTour>(); foreach (var t in model.Tours.Where(x => x.selected == true)) { TouristTour touristTour = new TouristTour(); touristTour.TouristId = tourist.Touristid; touristTour.TourId = t.TourId; touristToursToAdd.Add(touristTour); } db.TouristTour.AddRange(touristToursToAdd); await db.SaveChangesAsync(); if (model.Touristid != 0) { db.Entry(tourist).State = EntityState.Modified; await db.SaveChangesAsync(); } }