public async Task <IActionResult> UnBanAsync(string id, int evId)
        {
            UserInEvent uie = await _dbContext.UserInEvents.Include(o => o.Event).Include(o => o.User).FirstOrDefaultAsync(o => o.User.Id == id && o.Event.Id == evId);

            uie.IsBanned = false;
            return(await _saveRepository.RedirectToEvent(uie.Event.Id));
        }
        // Post: Events/Details/5
        public async Task <IActionResult> Detailsubmit(int?id, int?userId = 1)
        {
            if (id == null || userId == null)
            {
                return(NotFound());
            }

            var @event = await _context.Events
                         .Include(e => e.Category)
                         .FirstOrDefaultAsync(m => m.Id == id);

            if (@event == null)
            {
                return(NotFound());
            }

            var @userInEvent = new UserInEvent
            {
                EventId      = Convert.ToInt32(id),
                UserId       = Convert.ToInt32(userId),
                IsApproved   = true,
                EventBarcode = Guid.NewGuid().ToString()
            };

            _context.Add(@userInEvent);
            await _context.SaveChangesAsync();

            int userEventid = @userInEvent.Id;

            return(RedirectToAction("ThankYou", new { id = userEventid }));
        }
        private async Task <IActionResult> ChangeModeratorAsync(Roles role, string id, int evId)
        {
            UserInEvent uie = await _dbContext.UserInEvents.Include(o => o.Event).Include(o => o.User).FirstOrDefaultAsync(o => o.User.Id == id && o.Event.Id == evId);

            uie.Role = role;
            _dbContext.UserInEvents.Update(uie);
            return(await _saveRepository.RedirectToEvent(uie.Event.Id));
        }
        public Task SignUserToEvent(int eventId, Guid userId)
        {
            var userEvent = new UserInEvent()
            {
                EventId = eventId,
                UserId  = userId
            };

            return(_unitOfWork.UserInEventRepository.SignUserToEvent(userEvent));
        }
        public async Task <IActionResult> LeaveAsync(int idEv)
        {
            var         userId = _userManager.GetUserId(HttpContext.User);
            UserInEvent uie    = await _dbContext.UserInEvents.Include(o => o.User).Include(o => o.Event).FirstOrDefaultAsync(o => o.Event.Id == idEv && o.User.Id == userId);

            _dbContext.UserInEvents.Remove(uie);
            await _dbContext.SaveChangesAsync();

            return(RedirectToAction("EventList", "Event"));
        }
        public string AddEvent([FromBody] AddEventmodel model)
        {
            DateTime timeNow     = DateTime.Now;
            string   cultureInfo = "ru-RU";
            var      culture     = new CultureInfo(cultureInfo);
            Event    event_      = new Event()
            {
                phoneNumberCreator = model.phoneNumberCreator,
                dateCreated        = timeNow.ToString(culture)
            };
            EventInfo eventinfo = new EventInfo()
            {
                phoneNumberCreator = event_.phoneNumberCreator,
                dateCreated        = event_.dateCreated,
                title         = model.title,
                description   = model.description,
                gender        = model.gender,
                personNumber  = model.personNumber,
                meetingDate   = model.meetingDate,
                userRegistred = 1,
                done          = false
            };
            EventBuilding connect = new EventBuilding()
            {
                phoneNumberCreator = event_.phoneNumberCreator,
                dateCreated        = event_.dateCreated,
                buildingId         = model.buildingId
            };
            UserInEvent user = new UserInEvent()
            {
                phoneNumberCreator = event_.phoneNumberCreator,
                dateCreated        = event_.dateCreated,
                phoneNumber        = model.phoneNumberCreator,
                takePart           = true
            };

            try
            {
                using (var context = new AppContext())
                {
                    context.Events.Add(event_);
                    context.EventsInfo.Add(eventinfo);
                    context.EventsBuilding.Add(connect);
                    context.UsersInEvents.Add(user);
                    context.SaveChanges();
                    return("true");
                }
            }
            catch
            {
                return("Ошибка подключения");
            }
        }
Exemple #7
0
        public async Task <bool> GetAsync(string email, string url)
        {
            //Проверка инвайта на существование, получение в случае елси существует
            var askedInvite = _dbContext.Invites.Include(o => o.Event).Where(o => o.Url == url);

            if (askedInvite.Count() == 0)
            {
                return(false);
            }
            Invite inv = askedInvite.First();

            //Не в блеклисте ли пользователь
            var User = await _dbContext.Users.FirstOrDefaultAsync(o => o.Email == email);

            var userId    = User.Id;
            var blacklist = _dbContext.UserInEvents.Include(o => o.User).Include(o => o.Event).ToList().Exists(o => o.User.Id == userId && o.IsBanned);

            if (blacklist)
            {
                return(false);
            }

            //Нет ли этого пользователя уже в этом ивенте
            var thisUserInThisEvent = _dbContext.UserInEvents.Include(o => o.User).Include(o => o.Event).ToList().Exists(o => o.Event.Id == inv.Event.Id && o.User.Id == userId);

            if (thisUserInThisEvent)
            {
                return(false);
            }

            var Event = await _dbContext.Events.FirstOrDefaultAsync(o => o.Id == inv.EventId);

            UserInEvent uie = new UserInEvent
            {
                User  = User,
                Event = Event,
                Role  = Roles.regularUser,
            };

            _dbContext.UserInEvents.Add(uie);
            if (inv.Type == InviteType.Single)
            {
                _dbContext.Invites.Remove(inv);
            }

            await _dbContext.SaveChangesAsync();

            return(true);
        }
        public async Task <IActionResult> JoinInviteAsync(string Url)
        {
            //Проверка инвайта на существование, получение в случае елси существует
            var askedInvite = _dbContext.Invites.Include(o => o.Event).Where(o => o.Url == Url);

            if (askedInvite.Count() == 0)
            {
                return(RedirectToAction("Index", "Home"));
            }
            Invite inv = askedInvite.First();

            //Не в блеклисте ли пользователь
            var userId    = _userManager.GetUserId(HttpContext.User);
            var blacklist = _dbContext.UserInEvents.Include(o => o.User).Include(o => o.Event).ToList().Exists(o => o.User.Id == userId && o.IsBanned);

            if (blacklist)
            {
                return(RedirectToAction("Index", "Home"));
            }

            //Нет ли этого пользователя уже в этом ивенте
            var thisUserInThisEvent = _dbContext.UserInEvents.Include(o => o.User).Include(o => o.Event).ToList().Exists(o => o.Event.Id == inv.Event.Id && o.User.Id == userId);

            if (thisUserInThisEvent)
            {
                return(RedirectToAction("Event", "Event", new { id = inv.Event.Id }));
            }

            var User = await _userManager.GetUserAsync(this.User);

            var Event = await _dbContext.Events.FirstOrDefaultAsync(o => o.Id == inv.EventId);

            UserInEvent uie = new UserInEvent
            {
                User  = User,
                Event = Event,
                Role  = Roles.regularUser,
            };

            _dbContext.UserInEvents.Add(uie);
            if (inv.Type == InviteType.Single)
            {
                _dbContext.Invites.Remove(inv);
            }

            return(await RedirectToEvent(inv.EventId));
        }
        public async Task <IActionResult> Ban(string id, int evId)
        {
            var curUsr = await _userManager.GetUserAsync(this.User);

            UserInEvent current = await _dbContext.UserInEvents.Include(o => o.Event).Include(o => o.User).FirstOrDefaultAsync(o => o.User.Id == _userManager.GetUserId(HttpContext.User) && o.Event.Id == evId);

            if (current.Role != Roles.moderator)
            {
                return(RedirectToAction("Event", "Event", new { id = evId })); //Проверка на то, модератор ли текущий пользователь
            }
            UserInEvent uie = await _dbContext.UserInEvents.Include(o => o.Event).Include(o => o.User).FirstOrDefaultAsync(o => o.User.Id == id && o.Event.Id == evId);

            uie.IsBanned = true;


            return(await _saveRepository.RedirectToEvent(uie.Event.Id));
        }
Exemple #10
0
        public async Task<UserInEventDTO> AddUserToEvent(UserInEventDTO userInEvent)
        {
            User user = await _dbContext.Users
                .Include(u => u.UserInEvents).ThenInclude(ue => ue.Event)
                .FirstOrDefaultAsync(u => u.Id == userInEvent.UserId);

            Event evt = await _dbContext.Events
                .FirstOrDefaultAsync(e => e.Id == userInEvent.EventId);

            UserInEvent newUserInEvent = new UserInEvent
            {
                Event = evt,
                User = user
            };
            await _dbContext.UserInEvents.AddAsync(newUserInEvent);
            await _dbContext.SaveChangesAsync();
            return userInEvent;
        }
 public string AddUserToEvent([FromBody] AddUserToEventModel model)
 {
     using (var context = new AppContext())
     {
         var event_ = context.Events.Where(u => u.phoneNumberCreator == model.phoneNumberCreator & u.dateCreated == model.dateCreated).ToList();
         if (event_.Count == 0)
         {
             return("Данного события не существует");
         }
         else
         {
             var check    = context.UsersInEvents.Where(u => u.phoneNumberCreator == model.phoneNumberCreator & u.dateCreated == model.dateCreated & u.phoneNumber == model.phoneNumber).ToList();
             var maxcount = context.EventsInfo.First(u => u.dateCreated == event_[0].dateCreated & u.phoneNumberCreator == event_[0].phoneNumberCreator);
             if (maxcount.userRegistred == maxcount.personNumber)
             {
                 return("Уже зарегистрировано максимальное количество человек");
             }
             else
             {
                 if (check.Count > 0)
                 {
                     return("Вы уже подали завку на участие в событии");
                 }
                 else
                 {
                     UserInEvent user = new UserInEvent()
                     {
                         phoneNumber        = model.phoneNumber,
                         phoneNumberCreator = model.phoneNumberCreator,
                         dateCreated        = model.dateCreated,
                         takePart           = false
                     };
                     context.UsersInEvents.Add(user);
                     context.SaveChanges();
                     return("true");
                 }
             }
         }
     }
 }
 public Task SignUserToEvent(UserInEvent userInEvent)
 {
     return(_dbContext.UsersInEvent.AddAsync(userInEvent));
 }