Пример #1
0
 public NewGroup(NewGroupViewModel vmPar)
 {
     InitializeComponent();
     vm             = vmPar;
     BindingContext = vm;
     LoadPeople();
 }
Пример #2
0
        public IActionResult Create([FromBody] NewGroupViewModel group)
        {
            if (group == null || group.GroupName == "")
            {
                return(BadRequest());
            }

            if (_context.Groups.Any(g => g.GroupName == group.GroupName))
            {
                ModelState.AddModelError("GroupName", "Group already exists");
                return(BadRequest(ModelState));
            }

            var newGroup = new Group {
                GroupName = group.GroupName
            };

            // insert new group to DB
            _context.Groups.Add(newGroup);
            _context.SaveChanges();

            // insert group-user mapping in UserGroup table
            foreach (var user in group.UserNames)
            {
                _context.UserGroup.Add(new UserGroup {
                    UserName = user, GroupId = newGroup.Id
                });
            }
            _context.SaveChanges();

            return(Created("GetGroupByName", new { name = group.GroupName }));
        }
Пример #3
0
        public async Task <IActionResult> CreateGroupAsync([FromBody] NewGroupViewModel group)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ValidationError(ModelState)));
            }

            var newGroup = await _groupsService.CreateGroupAsync(_mapper.Map <GroupDto>(group), group.EducationStartedAt);

            return(CreatedAtRoute("GetGroup", new { groupId = newGroup.Id }, newGroup));
        }
        public async Task <IActionResult> NewGroup(NewGroupViewModel model)
        {
            ViewData["Id"] = model.CreatedById;

            AppUser user = await userManager.FindByIdAsync(model.CreatedById);

            if (user != null)
            {
                string status = (model.Status == true) ? "Public" : "Private";

                Group newGroup = new Group
                {
                    Name        = model.Name,
                    Description = model.Description,
                    CreatedBy   = user,
                    CompanyName = user.CompanyName,
                    Status      = status
                };

                int groupId = repository.SaveGroup(newGroup);
                repository.AddUserToGroup(user.Id, groupId);

                //if photo exists
                if (model.ProfilePhoto != null)
                {
                    AddGroupPhoto(groupId, model.ProfilePhoto);
                }

                //create chat
                if (model.CreateChat == true)
                {
                    GroupChat groupChat = new GroupChat
                    {
                        Title         = model.Name,
                        Status        = status,
                        CreatedBy     = user.Id,
                        ChatPhotoPath = "Groups/" + repository.Groups
                                        .FirstOrDefault(g => g.GroupId == newGroup.GroupId).GroupPhotoPath
                    };
                    repository.EditGroupChat(groupChat);

                    //add admin to chat
                    repository.AddUserToGroupChat(groupChat.ChatId, user.Id);

                    newGroup.GroupChatId = groupChat.ChatId;
                    repository.SaveGroup(newGroup);
                }

                return(RedirectToAction("NewGroupStep2", new { id = model.CreatedById, groupId }));
            }

            return(RedirectToAction("Error", "UserNotFound"));
        }
Пример #5
0
        public IActionResult Create([FromBody] NewGroupViewModel group)
        {
            if (group == null || group.GroupName == "")
            {
                return(new ObjectResult(
                           new { status = "error", message = "incomplete request" }
                           ));
            }

            if ((_context.Groups.Any(gp => gp.GroupName == group.GroupName)) == true)
            {
                return(new ObjectResult(
                           new { status = "error", message = "group name already exist" }
                           ));
            }

            Group newGroup = new Group {
                GroupName = group.GroupName
            };

            // Insert this new group to the database...
            _context.Groups.Add(newGroup);
            _context.SaveChanges();
            //Insert into the user group table, group_id and user_id in the user_groups table...
            foreach (string UserName in group.UserNames)
            {
                _context.UsersGroups.Add(
                    new UserGroup {
                    UserName = UserName, GroupId = newGroup.Id
                }
                    );
                _context.SaveChanges();
            }

            var options = new PusherOptions
            {
                Cluster   = _configuration["PUSHER_APP_CLUSTER"],
                Encrypted = true
            };
            var pusher = new Pusher(
                _configuration["PUSHER_APP_ID"],
                _configuration["PUSHER_APP_KEY"],
                _configuration["PUSHER_APP_SECRET"],
                options
                );
            var result = pusher.TriggerAsync(
                "group_chat", //channel name
                "new_group",  // event name
                new { newGroup });

            return(new ObjectResult(new { status = "success", data = newGroup }));
        }
Пример #6
0
        public IActionResult Create([FromBody] NewGroupViewModel group)
        {
            if (group == null || group.GroupName == "")
            {
                return(new ObjectResult(
                           new { status = "error", message = "incomplete request" }
                           ));
            }
            if ((_context.Groups.Any(gp => gp.GroupName == group.GroupName)) == true)
            {
                return(new ObjectResult(
                           new { status = "error", message = "group name already exist" }
                           ));
            }

            Group newGroup = new Group {
                GroupName = group.GroupName
            };

            // Insert this new group to the database...
            _context.Groups.Add(newGroup);
            _context.SaveChanges();
            //Insert into the user group table, group_id and user_id in the user_groups table...
            foreach (string UserName in group.UserNames)
            {
                _context.UserGroup.Add(
                    new UserGroup {
                    UserName = UserName, GroupId = newGroup.ID
                }
                    );
                _context.SaveChanges();
            }

            var options = new PusherOptions
            {
                Cluster   = "us2",
                Encrypted = true
            };

            var pusher = new Pusher(
                "844329",
                "853fd35bbcb701bd665b",
                "2969f417aa1e79477afe",
                options);

            var result = pusher.TriggerAsync(
                "group_chat",        //channel name
                "new_group",         // event name
                new { newGroup });

            return(new ObjectResult(new { status = "success", data = newGroup }));
        }
Пример #7
0
 // GET: Group/New
 /// <summary>
 /// This is the controller for creating new groups
 /// </summary>
 /// <returns></returns>
 public ActionResult New()
 {
     if (!User.Identity.IsAuthenticated)
     {
         return(RedirectToAction("Login", "Account", new { returnUrl = Request.Url.ToString() }));
     }
     using (var db = new ZapContext())
     {
         NewGroupViewModel vm = new NewGroupViewModel();
         vm.Icons = db.Icons.Select(i => i.Icon).ToList();
         return(View(vm));
     }
 }
Пример #8
0
        public async Task <IActionResult> Create([FromBody] NewGroupViewModel group)
        {
            if (group == null || group.GroupName == "")
            {
                return(new ObjectResult(
                           new { status = "error", message = "incomplete request" }
                           ));
            }
            if ((_context.Groups.Any(gp => gp.GroupName == group.GroupName)) == true)
            {
                return(new ObjectResult(
                           new { status = "error", message = "group name already exist" }
                           ));
            }

            Group newGroup = new Group {
                GroupName = group.GroupName
            };

            // Insert this new group to the database...
            _context.Groups.Add(newGroup);
            _context.SaveChanges();
            //Insert into the user group table, group_id and user_id in the user_groups table...
            foreach (string UserName in group.UserNames)
            {
                _context.UserGroup.Add(
                    new UserGroup {
                    UserName = UserName, GroupId = newGroup.ID
                }
                    );
                _context.SaveChanges();
            }

            var options = new PusherOptions
            {
                Cluster   = "eu",
                Encrypted = true
            };
            var pusher = new Pusher(
                "733746",
                "2197134b840b0f51ef40",
                "6d3361985f6d36d29def",
                options);

            //WTF BRAAAAT
            var result = await pusher.TriggerAsync("group_chat", "new_group", new { newGroup });


            return(new ObjectResult(new { status = "success", data = newGroup }));
        }
Пример #9
0
        public async Task <IActionResult> CreateAsync([FromBody] NewGroupViewModel group)
        {
            if (group == null || group.GroupName == "")
            {
                return(new ObjectResult(
                           new { status = "error", message = "incomplete request" }
                           ));
            }
            if ((_context.Groups.Any(gp => gp.GroupName == group.GroupName)) == true)
            {
                return(new ObjectResult(
                           new { status = "error", message = "group name already exist" }
                           ));
            }

            Group newGroup = new Group {
                GroupName = group.GroupName
            };

            // Insert this new group to the database...
            _context.Groups.Add(newGroup);
            _context.SaveChanges();
            //Insert into the user group table, group_id and user_id in the user_groups table...
            foreach (string UserName in group.UserNames)
            {
                _context.UserGroup.Add(
                    new UserGroup {
                    UserName = UserName, GroupId = newGroup.ID
                }
                    );
                _context.SaveChanges();
            }
            var options = new PusherOptions
            {
                Cluster   = "us2",
                Encrypted = true
            };
            var pusher = new Pusher(
                "620160",
                "87c7848afc7bbeaf081c",
                "7e6906f867f9e88df0d2",
                options);
            var result = await pusher.TriggerAsync(
                "group_chat", //channel name
                "new_group",  // event name
                new { newGroup });

            return(new ObjectResult(new { status = "success", data = newGroup }));
        }
Пример #10
0
        public async Task <IActionResult> Create([FromBody] NewGroupViewModel group)
        {
            if (group == null || group.GroupName == "")
            {
                return(new ObjectResult(
                           new { status = "error", message = "incomplete request" }));
            }
            if ((_context.Groups.Any(gp => gp.GroupName == group.GroupName)) == true)
            {
                return(new ObjectResult(
                           new { status = "error", message = "group name already exist" }));
            }

            Group newGroup = new Group {
                GroupName = group.GroupName
            };

            // Insert this new group to the database...
            _context.Groups.Add(newGroup);
            _context.SaveChanges();

            //Insert into the user group table, group_id and user_id in the user_groups table...
            foreach (string UserName in group.UserNames)
            {
                _context.UserGroup.Add(
                    new UserGroup {
                    UserName = UserName, GroupId = newGroup.ID
                }
                    );
                _context.SaveChanges();
            }

            // Acionaremos um evento ao Pusher quando um novo grupo for criado,
            // para que outras pessoas vejam o grupo recém-criado
            var options = new PusherOptions
            {
                Cluster   = "us2",
                Encrypted = true
            };
            var pusher = new Pusher(
                "1042889",
                "669fe9e6a16ed660eb58",
                "4c3349548631a864e575",
                options);
            var result = await pusher.TriggerAsync("group_chat", "new_group", new { newGroup });

            return(new ObjectResult(new { status = "success", data = newGroup }));
        }
Пример #11
0
        public async Task <IActionResult> Create(NewGroupViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Index)));
            }
            Group group = new Group()
            {
                GroupName     = model.GroupName,
                TeacherId     = model.TeacherId,
                SchoolClassId = model.SchoolClassId,
            };
            await _db.Groups.AddAsync(group);

            await _db.SaveChangesAsync();

            return(RedirectToAction("Index", "Examine"));
        }
Пример #12
0
        public async Task <IActionResult> Create([FromBody] NewGroupViewModel group)
        {
            if (group == null || group.GroupName == "")
            {
                return(new ObjectResult(new { status = "error", message = "incomplete request" }));
            }
            if ((_context.Groups.Any(gp => gp.GroupName == group.GroupName)) == true)
            {
                return(new ObjectResult(new { status = "error", message = "group name already exist" }));
            }
            Group newGroup = new Group {
                GroupName = group.GroupName
            };

            //Insert the new Group into Database
            _context.Groups.Add(newGroup);
            _context.SaveChanges();
            //Insert into the user group table, groupId and userId in the user_groups table..
            foreach (var userGroup in group.UserNames)
            {
                _context.UserGroups.Add(new UserGroup {
                    UserName = userGroup, GroupId = newGroup.ID
                });
                _context.SaveChanges();
            }
            var options = new PusherOptions
            {
                Cluster   = "mt1",
                Encrypted = true
            };
            var pusher = new Pusher(
                "671063",
                "016b0a9c29ee69a1c1e0",
                "67c82f7eec24bfba97ed",
                options);
            var result = await pusher.TriggerAsync(
                "group_chat", //channel name
                "new_group",  // event name
                new { newGroup });

            return(new ObjectResult(new { status = "Success", data = newGroup }));
        }
Пример #13
0
        public ActionResult New(NewGroupViewModel m)
        {
            if (!ModelState.IsValid)
            {
                // Validation error - send back to user
                using (var db = new ZapContext())
                {
                    m.Icons = db.Icons.Select(i => i.Icon).ToList();
                    return(View(m));
                }
            }

            using (var db = new ZapContext())
            {
                var userId = User.Identity.GetUserId();

                Group g = new Group()
                {
                    GroupName               = m.GroupName,
                    TotalEarned             = 0.0,
                    TotalEarnedToDistribute = 0.0,
                    Moderators              = new List <User>(),
                    Members        = new List <User>(),
                    Administrators = new List <User>(),
                    Tags           = m.Tags,
                    Icon           = m.Icon,
                    CreationDate   = DateTime.UtcNow,
                };

                var u = db.Users.Where(us => us.AppId == userId).First();

                g.Members.Add(u);
                g.Moderators.Add(u);
                g.Administrators.Add(u);

                db.Groups.Add(g);
                db.SaveChanges();

                return(RedirectToAction(actionName: "GroupDetail", routeValues: new { id = g.GroupId }));
            }
        }
Пример #14
0
        public NewGroupPage()
        {
            InitializeComponent();

            BindingContext = new NewGroupViewModel(new PageService());
        }
Пример #15
0
 public ActionResult CreateNewGroup(NewGroupViewModel m)
 {
     return(RedirectToAction("Index", "Home"));
 }