Example #1
0
        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());
        }
Example #3
0
        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();
            }
        }