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 }));
        }
示例#2
0
        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);
        }
示例#3
0
        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());
     }
 }
示例#6
0
        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));
        }
示例#7
0
        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"));
        }
示例#8
0
        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);
        }
示例#10
0
        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
            }));
        }
示例#12
0
        // 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);
            }
        }
示例#14
0
 // 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"));
 }
示例#15
0
        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));
        }
示例#16
0
        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));
        }
示例#18
0
        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);
        }
示例#19
0
        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"));
        }