public ActionResult CreateGroupPost(GroupDetailsViewModel model) { var userId = User.Identity.GetUserId(); var currentUser = _context.Users.Single(u => u.Id == userId); var groupPost = new GroupPost { GroupId = model.Group.Id, ApplicationUser = currentUser, ApplicationUserId = userId, Title = model.GroupPost.Title, Description = model.GroupPost.Description }; try { _context.GroupPosts.Add(groupPost); _context.SaveChanges(); Debug.WriteLine("Felicitari Jordi"); } catch (DbEntityValidationException ex) { foreach (var entityValidationErrors in ex.EntityValidationErrors) { foreach (var validationError in entityValidationErrors.ValidationErrors) { Debug.WriteLine("Property: " + validationError.PropertyName + " Error: " + validationError.ErrorMessage); } } } return(RedirectToAction("GroupDetails", "Groups", new { id = groupPost.GroupId })); }
public GroupDetailsViewModel GetGroupDetails(string groupId, string userId) { GroupDetailsViewModel groupDetails = this.context.Groups .Where(g => g.IsDeleted == false) .Where(g => g.Id == groupId) .Select(g => new GroupDetailsViewModel { Id = g.Id, Name = g.Name, OwnerName = g.Owner.UserName, GroupUserNames = this.context.GroupUsers .Where(gu => gu.GroupId == groupId) .Select(gu => gu.User.UserName).ToList(), Songs = this.context.GroupSongs .Where(gs => gs.GroupId == groupId) .Select(gs => new GroupSongsViewModel { Name = gs.Song.Name, SongId = gs.SongId, }).ToList(), IsUserInGroup = this.context.GroupUsers .Any(gu => gu.GroupId == groupId && gu.UserId == userId), }).FirstOrDefault(); return(groupDetails); }
public async Task <IActionResult> Details(int groupId, CancellationToken cancellationToken) { var account = await AccountProvider.GetAccountForCurrentUser(cancellationToken); var group = await GetGroup(groupId, cancellationToken); if (group == null) { return(NotFound()); } if (!group.IsMember(account)) { return(Forbid()); } var viewModel = new GroupDetailsViewModel { GroupId = group.Id, Name = group.Name, Owner = new AccountViewModel(group.Owner), Members = group.GroupAccounts .Select(x => new AccountViewModel(x.Account)) .ToArray(), }; return(View(viewModel)); }
// GET: Group /* * public ActionResult Index() * { * var id = User.Identity.GetUserId(); * ObjectId oId = new ObjectId(id); * IEnumerable<Group> groups = _groupManager.GetAllGroupsOfUser(oId); * List<GroupListViewModel> lmv = new List<GroupListViewModel>(); * foreach (var group in groups) * { * var email = UserManager.GetEmail(group.Creator.ToString()); * GroupListViewModel tmp = new GroupListViewModel { Id = group.Id , Name = group.Name, Creator = email, Description = group.Description, CreationTime = group.CreationTime, Size = group.Members.Count }; * lmv.Add(tmp); * } * return View(lmv); * } */ // GET: Group/Details/5 public ActionResult Details(string id) { var oId = new ObjectId(id); Group group = _groupManager.GetGroupById(oId); var email = UserManager.GetEmail(group.Creator.ToString()); GroupDetailsViewModel dvm = new GroupDetailsViewModel { Id = group.Id.ToString(), Name = group.Name, Description = group.Description, CreationTime = group.CreationTime, CreatorEmail = email, Members = group.Members }; ViewBag.GroupID = id; return(View(dvm)); }
public ActionResult Delete(GroupDetailsViewModel model) { try { _groupManager.RemoveGroup(new ObjectId(model.Id)); return(RedirectToAction("Index", "Home")); } catch (Exception) { return(View()); } }
public IActionResult Details(string id) { if (id.IsNullOrEmptyOrWhiteSpace()) { return(this.RedirectToAction("List")); } string userId = this.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; GroupDetailsViewModel groupDetails = this.groupsService.GetGroupDetails(id, userId); return(this.View(groupDetails)); }
public IActionResult Details(UsersListViewComponentViewModel inputModel, string id) { if (!ModelState.IsValid) { string userId = this.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; GroupDetailsViewModel groupDetails = this.groupsService.GetGroupDetails(id, userId); return(this.View(groupDetails)); } this.groupsService.AddUsers(inputModel, id); return(this.RedirectToAction("List")); }
private void ViewDetails() { GroupDetailsViewModel gdvm = new GroupDetailsViewModel(); gdvm.Group = Group; GroupDetailsWindow window = new GroupDetailsWindow() { DataContext = gdvm }; window.ShowDialog(); }
public GroupDetailsViewModel FindById(int groupId) { var group = this.db.Groups //.Include(g=>g.Teacher) optimize DB operation include case if group is teacherless .FirstOrDefault(g => g.Id == groupId && g.ActiveStatus != GroupActiveStatus.Quit); var level = this.db.Levels.FirstOrDefault(x => x.Id == group.LevelId); //dali 6e go nameri var students = this.db.Students.Where(x => x.GroupId == group.Id).ToArray(); //should it be Included? optimize var model = new GroupDetailsViewModel { Id = group.Id, Name = group.Name, CurrentLessonNumber = group.CurrentLessonNumber, AgeGroup = group.AgeGroup == 0 ? InfoStrings.GeneralNotSpecified : group.AgeGroup.ToString(), DayOfWeek = group.DayOfWeek, Duration = group.Duration.ToString(Constants.hourMinutesFormat), StartDate = group.StartDate.ToString(Constants.dateOnlyFormat), EndDate = group.EndDate.ToString(Constants.dateOnlyFormat), StartTime = group.StartTime.ToString(Constants.hourMinutesFormat), EndTime = group.EndTime.ToString(Constants.hourMinutesFormat), LevelId = (int)group.LevelId, LevelName = level.Name, ActiveStatus = group.ActiveStatus, MaxStudents = (int)group.MaxStudents, Students = students.Select(s => new AllSingleStudentsViewModel() { FullName = s.FullName, Age = s.Age, Gender = s.Gender, GroupName = group.Name, Id = s.Id } ).ToArray() }; var teacher = this.db.Teachers.FirstOrDefault(x => x.Id == group.TeacherId); //optimize database operation if ((teacher == null) == false) { model.TeacherId = teacher.Id; model.TeacherName = teacher.FullName; model.TeacherApplicationUserId = teacher.ApplicationUserId == null ? string.Empty : teacher.ApplicationUserId; } else { model.TeacherName = InfoStrings.GroupHasNoTeacherYet; } return(model); }
public async Task <IActionResult> DisplayGroupRecipients(int recipientGroupId, string recipientEmail = null) { var group = await _emailDistributionService.GetGroup(recipientGroupId); var recipients = await _emailDistributionService.GetGroupRecipients(recipientGroupId); var model = new GroupDetailsViewModel { GroupName = group?.GroupName, Recipients = recipients }; ViewData["removedEmail"] = recipientEmail; return(View("GroupRecipients", model)); }
public IActionResult EditGroup(GroupDetailsViewModel model) { Group group = repository.Groups .FirstOrDefault(g => g.GroupId == model.Group.GroupId); group.Name = model.Group.Name; group.Description = model.Group.Description; repository.SaveGroup(group); return(RedirectToAction("GroupDetails", new { id = group.CreatedBy.Id, groupId = group.GroupId })); }
// GET: Groups/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { _logger.LogWarning($"Groups/Details: id {id} no válido.."); return(NotFound()); } var groupSelected = await _context.Groups .FirstOrDefaultAsync(m => m.Id == id); if (groupSelected == null) { _logger.LogWarning($"Groups/Details: Id grupo = {id} no encontrado.."); return(NotFound()); } var groupEventsSelected = await _context.Events.Where(e => e.GroupId == groupSelected.Id).OrderByDescending(e => e.FechaHora).ToListAsync(); _logger.LogInformation($"Groups/Details: Id grupo = {id} Eventos: {groupEventsSelected.Count}"); int numGroupMembers = _context.GroupMembers.Where(gm => gm.GroupId == groupSelected.Id).Count(); _logger.LogInformation($"Groups/Details: Id grupo = {id} Miembros: {numGroupMembers}"); List <IListBlobItem> blobList = await _azureBlobManager.ListBlobsHierarchicalListingAsync(id + "/groupimage/"); string urlBlobGroupImage = blobList.Count > 0 ? blobList[0].StorageUri.PrimaryUri.ToString() : ""; _logger.LogInformation($"Groups/Details: Id grupo = {id} Blob URL: {urlBlobGroupImage}"); var groupDetailsViewModel = new GroupDetailsViewModel { GroupInfo = groupSelected, GroupProfileImagePath = urlBlobGroupImage, GroupEvents = groupEventsSelected, MembersTotalNumber = numGroupMembers }; var dictionay = new Dictionary <string, string>(); dictionay.Add("Group Details", groupSelected.Name); _telemetryClient.TrackEvent("UserInteraction", dictionay); return(View(groupDetailsViewModel)); }
private void RemoveUserButton_Click(object sender, EventArgs e) { if (((ConversationMessagesViewModel)this.DataContext).Recipient.IsGroupOwner) { foreach (var button in ApplicationBar.Buttons) { ((ApplicationBarIconButton)button).IsEnabled = false; // disables the button } GroupDetailsViewModel gdvm = ((GroupDetailsViewModel)((ConversationMessagesViewModel)this.DataContext).GroupDetail); gdvm.RemoveMember((UserModel)this.GroupMemberListSelector.SelectedItem); Messenger.Default.Register <GroupMemberRemovedEvent>(this, this.GroupMemberRemoved); } else { MessageBox.Show(Strings.OnlyOwnerCanModifyGroup); } }
// GET: Group/Delete/5 public ActionResult Delete(string id) { try { var group = _groupManager.GetGroupById(new ObjectId(id)); if (IsValidId(id) && IsValidGroup(group) && _groupManager.IsGroupOwner(group.Id.ToString(), User.Identity.GetUserId())) { var email = UserManager.GetEmail(group.Creator.ToString()); GroupDetailsViewModel gdvm = new GroupDetailsViewModel { Id = group.Id.ToString(), Name = group.Name, Description = group.Description, CreationTime = group.CreationTime, CreatorEmail = email, Members = group.Members }; return(View(gdvm)); } } catch (Exception) { return(RedirectToAction("Index", "Home")); } return(RedirectToAction("Index", "Home")); }
public IActionResult GroupDetails(int id) { //TODO: Authentication: Admin Only var versions = _logic.GetAllVersions(id); var versionsWithFields = new List <Dictionary <FieldType, string> >(); foreach (var version in versions) { versionsWithFields.Add(_logic.GetVersionFields(version)); } var vm = new GroupDetailsViewModel() { Group = _context.Groups.Single(g => g.GroupId == id), Versions = versionsWithFields, RawVersions = versions.ToList(), FieldTypes = _logic.GetAllFieldTypesByGroup(id) }; return(View("GroupDetails", vm)); }
public ActionResult Details(int id) { var group = groupService.GetDetails(id); if (group != null) { var model = new GroupDetailsViewModel { Id = group.Id, Name = group.Name, Description = group.Description, MembersCount = group.Members.Count(), StoryesCount = group.Stories.Count(), IsJoined = group.Members.Any(l => l.Id == CurrentUserId), Members = group.Members.Select(m => new UserViewModel { Id = m.Id, Name = m.Name }), Stories = group.Stories.Select(m => new StoryViewModel { Id = m.Id, Title = m.Title, Content = m.Content, Description = m.Description, PostedOn = m.PostedOn, IsEditable = (storyService.GetDetails(m.Id).CreatorId == CurrentUserId) }) }; return(View(model)); } else { ModelState.AddModelError("", "Group was not found"); } return(RedirectToAction("Index", "Group")); }
// GET: GroupModels/Details/5 public ActionResult Details(int?id) { groupViewModel = new GroupDetailsViewModel(); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } GroupModel groupModel = db.GroupModels.Find(id); List <AppUserModel> appUsersList = db.AppUserModels.Where(x => x.GroupId == groupModel.ID).ToList(); List <ChatMessage> chatMessageList = db.ChatMessages.Where(x => x.GroupId == groupModel.ID).ToList(); if (groupModel == null) { return(HttpNotFound()); } groupViewModel.GroupName = groupModel.GroupName; groupViewModel.GroupMembers = appUsersList; groupViewModel.ChatMessageList = chatMessageList; return(View(groupViewModel)); }
public object GetGroupDetails(string groupdId, string userId) { Group group = GetGroup(groupdId); User user = Context.Users.Find(userId); string[] locationArr = { group.Location.Country, group.Location.Town, group.Location.Address }; GroupDetailsViewModel groupDetails = new GroupDetailsViewModel { Id = group.Id, Name = group.Name, Sport = group.Sport, NumberOfPlayers = group.Players.Count, Address = string.Join(", ", locationArr), Players = group.Players.ToList(), Admins = group.Admins.ToList(), IsJoined = group.Players.Select(p => p.Id).Contains(userId), HasRequested = user.Notifications.OfType <JoinGroupRequestNotification>().Any(n => n.Group == group), IsAdmin = group.Admins.Select(a => a.Id).Contains(userId) }; return(groupDetails); }
public ActionResult GroupDetails(int id) { var group = _context.GroupList.Where(g => g.Id == id).First(); var userId = User.Identity.GetUserId(); var myGroups = _context.GroupMembers .Where(m => m.GroupMemberUserId == userId) .Select(g => g.Group) .ToList(); var groupPosts = _context.GroupPosts.Where(g => g.GroupId == id).ToList(); var groupDetailsViewModel = new GroupDetailsViewModel() { Group = group, GroupPosts = groupPosts, }; if (group != null && myGroups.Contains(group)) { return(View(groupDetailsViewModel)); } return(RedirectToAction("Index", "Groups")); }