コード例 #1
0
        public ActionResult JoinUs(EventUsers eventUser)
        {
            bool added = false;

            try
            {
                var eventUserExist = db.EventUsers.Where(x => x.UserId == eventUser.UserId && x.EventId == eventUser.EventId);
                if (eventUserExist.Any())
                {
                    EventUsers newEventUser = eventUserExist.First();
                    newEventUser.EmailAddress = eventUser.EmailAddress;
                    newEventUser.PhoneNumber  = eventUser.PhoneNumber;
                    newEventUser.Joining      = eventUser.Joining;
                    newEventUser.UpdatedDate  = DateTime.UtcNow;
                }
                else
                {
                    eventUser.UpdatedDate = DateTime.UtcNow;
                    db.EventUsers.Attach(eventUser);
                    db.EventUsers.Add(eventUser);
                }
                db.SaveChanges();
                added = true;
                return(Json(added, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                return(Json(added, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #2
0
        public async Task <ActionResult <MemberDto> > addAttendee(int eventId, string attendeeUsername)
        {
            var attendee = await _userRepository.GetUserByUsernameAsync(attendeeUsername);

            var existingEvent = await _eventsRepository.GetEventByIdAsync(eventId);

            var existingEventTest = existingEvent.Attendees.FirstOrDefault(x => x.Attendee.UserName == attendeeUsername);

            if (existingEventTest != null)
            {
                return(BadRequest("Already attending event"));
            }

            var eventUser = new EventUsers
            {
                AttendeeId       = attendee.Id,
                AttendingEventId = eventId
            };

            // var existingEventTest = existingEvent.Attendees.FirstOrDefault(x => x == eventUser);

            //    if(existingEventTest != null) return BadRequest("Already attending event");

            existingEvent.Attendees = existingEvent.Attendees ?? new List <EventUsers>();

            existingEvent.Attendees.Add(eventUser);

            if (await _eventsRepository.SaveAllAsync())
            {
                return(Ok(_mapper.Map <AppUser, MemberDto>(attendee)));
            }

            return(BadRequest("Failed to add attendee"));
        }
コード例 #3
0
        public async Task <IActionResult> PutEventUsers(Guid id, EventUsers eventUsers)
        {
            if (id != eventUsers.Id)
            {
                return(BadRequest());
            }

            _context.Entry(eventUsers).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EventUsersExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #4
0
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,EventId,UserId")] EventUsers eventUsers)
        {
            if (id != eventUsers.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(eventUsers);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!EventUsersExists(eventUsers.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["EventId"] = new SelectList(_context.Events, "Id", "Id", eventUsers.EventId);
            ViewData["UserId"]  = new SelectList(_context.Profile, "UserId", "UserId", eventUsers.UserId);
            return(View(eventUsers));
        }
コード例 #5
0
        public CreateEventDto CreateEvent(CreateEventDto eventObj)
        {
            var returnObj = new Event()
            {
                AssignerId   = eventObj.AssignerId,
                AssignerName = eventObj.AssignerName,
                Description  = eventObj.Description,
                Start        = eventObj.Start,
                End          = eventObj.End,
            };

            _db.Event.Add(returnObj);
            Save();

            foreach (var userId in eventObj.Users)
            {
                var eventUsersObj = new EventUsers()
                {
                    UserId  = userId,
                    EventId = returnObj.Id,
                };
                _db.EventUsers.Add(eventUsersObj);
            }

            Save();
            return(eventObj);
        }
コード例 #6
0
        public ActionResult EventCode(string number, string message)
        {
            string userPhone = Phone.Parse(number);
            // Find User by Number
            var user = db.EventUsers.Where(u => u.PhoneNumber == userPhone).SingleOrDefault();

            // New User
            if (user == default(EventUsers) && regex.IsMatch(message))
            {
                var myEvent = db.Events.Where(e => e.IsHosted == true && e.EventCode == message.ToLower()).SingleOrDefault();

                // Event Not Hosted or Wrong Code
                if (myEvent == default(Events))
                {
                    return(SendMessage("Sorry, The Event You're Looking For Is Either Not Currently Hosted Or The Event Code Entered Is Incorrect."));
                }

                // Event Hosted and Code is Valid, New User
                else
                {
                    EventUsers newUser = new EventUsers
                    {
                        PhoneNumber = userPhone,
                        EventID     = myEvent.EventID
                    };
                    newUser.isBanned = false;
                    db.EventUsers.Add(newUser);
                    db.SaveChanges();
                    return(SendMessage($"You have been added to the event, {myEvent.EventName}.\r\n" +
                                       $"Text 'commands' to receive a list of helpful commands."));
                }
            }

            // Returning User
            else if (user != default(EventUsers) && regex.IsMatch(message))
            {
                var myEvent = db.Events.Where(e => e.IsHosted == true && e.EventCode == message.ToLower()).SingleOrDefault();

                // EventHosted or Wrong Code
                if (myEvent == default(Events))
                {
                    return(SendMessage("Sorry, The Event You're Looking For Is Either Not Currently Hosted Or The Event Code Entered Is Incorrect."));
                }

                // Event Hosted and Code Valid, Return User
                else
                {
                    user.EventID = myEvent.EventID;
                    db.SaveChanges();
                    return(SendMessage($"You have been added to the event, {myEvent.EventName}." +
                                       $"Text 'commands' to receive a list of helpful commands."));
                }
            }
            else
            {
                return(SendMessage("Invalid Input. Please try again, or Type 'help' for more information."));
            }
        }
コード例 #7
0
        public ActionResult CreateHost(EventUsers model)
        {
            var user    = User.Identity.GetUserId();
            var newID   = new Guid().ToString();
            var newHost = new EventUsers {
                PhoneNumber = model.PhoneNumber, AppUserId = user, UserID = user
            };

            db.EventUsers.Add(newHost);
            db.SaveChanges();
            return(RedirectToAction("IndexHost"));
        }
コード例 #8
0
        public async Task <IActionResult> Create([Bind("Id,EventId,UserId")] EventUsers eventUsers)
        {
            if (ModelState.IsValid)
            {
                eventUsers.Id = Guid.NewGuid();
                _context.Add(eventUsers);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["EventId"] = new SelectList(_context.Events, "Id", "Id", eventUsers.EventId);
            ViewData["UserId"]  = new SelectList(_context.Profile, "UserId", "UserId", eventUsers.UserId);
            return(View(eventUsers));
        }
コード例 #9
0
        public ActionResult _PartialRegisterAttendee(EventUsers model)
        {
            if (db.EventUsers.Find(model.PhoneNumber) != null)
            {
                var userID = User.Identity.GetUserId();
                var user   = new EventUsers {
                    PhoneNumber = model.PhoneNumber, AppUserId = userID, UserID = userID
                };
                db.EventUsers.Add(user);
                db.SaveChanges();
            }

            return(RedirectToAction("AttendeeIndex", "EventUsers"));
        }
コード例 #10
0
        public async Task <IActionResult> AddEvent([FromBody] EventViewModel model)
        {
            var newEv = new Event()
            {
                Date = model.Start.ToLocalTime(), RememberDate = model.RememberDate.ToLocalTime(), Title = model.Title
            };

            newEv = _eventRepository.AddEvent(newEv);
            IList <ApplicationUser> users = new List <ApplicationUser>();

            foreach (var item in model.Users)
            {
                var user = await _userManger.FindByIdAsync(item.Id);

                var newEvUsrs = new EventUsers()
                {
                    Event = newEv, User = user
                };
                users.Add(user);

                _eventUsersRepository.AddEventUsers(newEvUsrs);
            }

            foreach (var item in users)
            {
                _mailService.SendMail(to: item.Email, body: newEv.Title + " " + newEv.Date, subject: newEv.Title);
            }

            _notificationService.SendNotification(newEv.Title + " " + newEv.Date + "'da", users);
            var uservms = _mapper.Map <IList <UserViewModel> >(users);

            newEv.ReminderJobId = _reminderService.AddReminder(model, uservms);
            _eventRepository.UpdateEvent(newEv);

            var events = _eventRepository.GetEvents().Select(d => new EventViewModel
            {
                Start        = d.Date,
                Id           = d.Id,
                RememberDate = d.RememberDate,
                Title        = d.Title,
                Users        = _mapper.Map <IList <UserViewModel> >(d.EventUsers.Select(v => v.User).ToList())
            });

            return(Ok(events));
        }
コード例 #11
0
        public async Task <ActionResult <EventUsers> > PostEventUsers(EventUsers eventUsers)
        {
            _context.EventUsers.Add(eventUsers);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (EventUsersExists(eventUsers.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetEventUsers", new { id = eventUsers.Id }, eventUsers));
        }
コード例 #12
0
 public void AddEventUsers(EventUsers model)
 {
     _dbContext.EventUsers.Add(model);
     _dbContext.SaveChanges();
 }
コード例 #13
0
ファイル: Client.cs プロジェクト: taerd/NetWork
 private void OnUserList(string command, string data)
 {
     EventUsers?.Invoke(data);
 }