示例#1
0
        public GroupDetailsModel GetSpecificGroup(int groupId, int permission)
        {
            GroupDetailsModel groupDetailsModel = null;

            try
            {
                if (permission == 1)
                {
                    groupDetailsModel = new GroupDetailsModel();
                    groupDetailsModel.usersDetails = unitOfWork.DbContext.UserDetail.Select(g => new UserDetails
                    {
                        UserName = g.Name,
                        UserId   = g.ID,
                        IsMember = g.UserGroup.Any(us => us.GroupID == groupId) == true ? true : false,
                    }).ToList();
                    groupDetailsModel.groupName = unitOfWork.DbContext.Group.Where(gp => gp.ID == groupId).Select(gp => gp.Name).FirstOrDefault();
                    return(groupDetailsModel);
                }
                else
                {
                    throw new PermissionDeniedException();
                }
            }
            catch (BaseException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        public ActionResult Details(int IDgroup)
        {
            GroupDetailsModel model = new GroupDetailsModel();

            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var groupQuery = (from g in db.Group
                                  where g.IDgroup == IDgroup
                                  select g).Include(g => g.GroupType);
                model.GroupType = groupQuery.FirstOrDefault().GroupType.Name;
                model.Name      = groupQuery.FirstOrDefault().Name;
                model.IDgroup   = IDgroup;

                var membersQuery = (from b in db.BelongsToGroup
                                    where b.IDgroup == IDgroup
                                    select b).Include(b => b.User).ToList();
                model.Members = membersQuery;

                var otherUsers = (from u in db.User
                                  select u).Except(from b in db.BelongsToGroup
                                                   join s in db.User on b.IDuser equals s.IDuser
                                                   where b.IDgroup == IDgroup
                                                   select s).ToList();
                model.MembersNotInList = new SelectList(otherUsers, "IDuser", "Username");
            }
            return(View(model));
        }
示例#3
0
        public IHttpActionResult UpdateGroupInformation(GroupDetailsModel groupDetailsModel)
        {
            int          result = 0;
            ActionStatus status = new ActionStatus();

            try
            {
                result = userService.UpdateGroupInformation(groupDetailsModel, permission);
            }

            catch (BaseException ex)
            {
                status.Number = (int)ex.ErrorCode;
            }
            catch (Exception ex)
            {
                status.Number = -1;
                logger.Error("Exception in User/UpdateGroupInformation: {0} \r\n {1}", ex.ToString(), ex.StackTrace);
            }
            if (status.Number != -1)
            {
                return(Ok(new { result = result, Status = status }));
            }
            else
            {
                return(InternalServerError());
            }
        }
示例#4
0
        public IHttpActionResult GetSpecificGroup(int groupId)
        {
            GroupDetailsModel groupDetailsModel = null;
            ActionStatus      status            = new ActionStatus();

            try
            {
                groupDetailsModel = userService.GetSpecificGroup(groupId, permission);
                if (groupDetailsModel == null)
                {
                    throw new NoDataFoundException();
                }
            }

            catch (BaseException ex)
            {
                status.Number = (int)ex.ErrorCode;
            }
            catch (Exception ex)
            {
                status.Number = -1;
                logger.Error("Exception in User/GetSpecificGroup: {0} \r\n {1}", ex.ToString(), ex.StackTrace);
            }
            if (status.Number != -1)
            {
                return(Ok(new { groupDetailsModel = groupDetailsModel, Status = status }));
            }
            else
            {
                return(InternalServerError());
            }
        }
示例#5
0
        public IHttpActionResult CreateNewGroup(GroupDetailsModel groupDetailsModel)
        {
            logger.Info("Inside User/CreateNewGroup");
            int          result = 0;
            ActionStatus status = new ActionStatus();
            string       msg    = String.Empty;

            try
            {
                result = userService.CreateNewGroup(groupDetailsModel, permission);
            }
            catch (UserServiceException ex)
            {
                status.Number = (int)ex.ErrorCodeService;
            }
            catch (BaseException ex)
            {
                status.Number = (int)ex.ErrorCode;
            }
            catch (Exception ex)
            {
                status.Number = -1;
                logger.Error("Exception in User/CreateNewGroup: {0} \r\n {1}", ex.ToString(), ex.StackTrace);
            }
            if (status.Number != -1)
            {
                return(Ok(new { result = result, Status = status }));
            }
            else
            {
                return(InternalServerError());
            }
        }
示例#6
0
        public int CreateNewGroup(GroupDetailsModel groupDetailsModel, int permission)
        {
            int result = 0;

            try
            {
                if (permission == 1)
                {
                    var groupIsPresent = unitOfWork.DbContext.Group
                                         .Any(g => String.Compare(g.Name, groupDetailsModel.groupName, true) == 0
                                              );
                    if (groupIsPresent)
                    {
                        throw new GroupAlreadyPresentException();
                    }
                    else
                    {
                        Group gr = new Group
                        {
                            Name         = groupDetailsModel.groupName,
                            CreationDate = DateTime.UtcNow
                        };
                        unitOfWork.DbContext.Group.Add(gr);
                        foreach (var id in groupDetailsModel.UserIds)
                        {
                            UserGroup group = new UserGroup
                            {
                                Group  = gr,
                                UserID = id
                            };
                            unitOfWork.DbContext.UserGroup.Add(group);
                        }
                        unitOfWork.DbContext.SaveChanges();
                        result = 1;
                    }


                    return(result);
                }
                else
                {
                    throw new PermissionDeniedException();
                }
            }
            catch (UserServiceException ex)
            {
                throw ex;
            }
            catch (BaseException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#7
0
        /// <summary>
        /// Creates a viewModel for the Posts and adds the posts to the contact list
        /// </summary>
        /// <param name="group"></param>
        /// <returns>
        /// The viewModel
        /// </returns>
        private async Task <GroupDetailsModel> GetGroupDetails(Group group)
        {
            GroupDetailsModel viewModel = new GroupDetailsModel();

            viewModel.Group = group;

            List <Contact> contacts = await _context.Contact.Where(x => x.MyGroup == group).ToListAsync();

            viewModel.Contacts = contacts;

            return(viewModel);
        }
示例#8
0
        public int UpdateGroupInformation(GroupDetailsModel groupDetailsModel, int permission)
        {
            int result = 0;

            try
            {
                if (permission == 1)
                {
                    var group = unitOfWork.DbContext.Group.Where(g => g.ID == groupDetailsModel.groupId).FirstOrDefault();
                    if (group != null)
                    {
                        group.Name = groupDetailsModel.groupName;
                        List <int> newUserList = groupDetailsModel.usersDetails.Where(u => u.IsMember == true).Select(u => u.UserId).ToList();
                        List <int> oldUserList = unitOfWork.DbContext.UserGroup
                                                 .Where(ug => ug.GroupID == groupDetailsModel.groupId)
                                                 .Select(ug => ug.UserID)
                                                 .ToList();
                        List <int> firstNotSecond = newUserList.Except(oldUserList).ToList();
                        List <int> secondNotFirst = oldUserList.Except(newUserList).ToList();

                        foreach (var UserId in firstNotSecond)
                        {
                            UserGroup userGp = new UserGroup()
                            {
                                GroupID = groupDetailsModel.groupId,
                                UserID  = UserId
                            };
                            unitOfWork.DbContext.UserGroup.Add(userGp);
                        }

                        var oldUserGroup = unitOfWork.DbContext.UserGroup.Where(u => secondNotFirst.Contains(u.UserID) && u.GroupID == groupDetailsModel.groupId).ToList();
                        unitOfWork.DbContext.UserGroup.RemoveRange(oldUserGroup);
                        unitOfWork.DbContext.SaveChanges();
                        result = 1;
                    }
                    else
                    {
                        throw new NoDataFoundException();
                    }

                    return(result);
                }
                else
                {
                    throw new PermissionDeniedException();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#9
0
        private GroupDetailsModel BuildGroupModel(Pr1132Configuration config, int index)
        {
            var group      = config.Groups[index];
            var icon       = ApplicationData.Settings.GetIcon(index);
            var groupModel = new GroupDetailsModel(group, icon, index);

            foreach (var channelNumber in group.ChannelNumbers)
            {
                if (channelNumber.HasValue)
                {
                    var channel      = config.Channels[channelNumber.Value];
                    var channelModel = new ChannelModel(channel, (byte)channelNumber.Value);
                    groupModel.Channels.Add(channelModel);
                }
            }

            return(groupModel);
        }
示例#10
0
        /// <summary>
        /// Displays the details for the view and increments the post views counter, saves the post in the database
        /// </summary>
        /// <param name="id"></param>
        /// <returns>
        /// Post context including the assigned Comment system
        /// </returns>
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Group group = await _context.Group.SingleOrDefaultAsync(m => m.Id == id);

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

            GroupDetailsModel viewModel = await GetGroupDetails(group);

            group.viewed++;
            _context.Update(group);
            await _context.SaveChangesAsync();

            return(View(await _context.Group.Include(g => g.Comment).ToListAsync()));
        }
示例#11
0
        /// <summary>
        /// Assigns the viewModel to a contact and assigns a group to the contact
        /// </summary>
        /// <param name="viewModel"></param>
        /// <returns>
        /// The viewModel
        /// </returns>
        public async Task <IActionResult> Details([Bind("Id, FirstName")]
                                                  GroupDetailsModel viewModel)
        {
            if (ModelState.IsValid)
            {
                Contact contact = new Contact();

                contact.Id        = viewModel.GroupID;
                contact.FirstName = viewModel.FirstName;
                contact.LastName  = viewModel.LastName;

                Group group = await _context.Group.SingleOrDefaultAsync(m => m.Id == viewModel.GroupID);

                if (group == null)
                {
                    return(NotFound());
                }

                contact.MyGroup = group;
                _context.Contact.Add(contact);
                await _context.SaveChangesAsync();
            }
            return(View(viewModel));
        }