public async Task <bool> EditGroupAsync(User user, EditGroupFormModel groupForm)
        {
            try
            {
                GroupAuth group = null;

                group = _context.GroupAuths.Include(c => c.Users).Include(c => c.GroupRoles).FirstOrDefault(c => c.Id == groupForm.GroupId);
                if (group != null)
                {
                    var isDuplicategroup = _context.GroupAuths.Any(c => c.Name == groupForm.Name && c.Id != groupForm.GroupId);
                    if (!isDuplicategroup)
                    {
                        var oldRoleIds = group.GroupRoles.Select(c => c.RoleId).ToList();
                        IEnumerable <long> differencesFirst  = groupForm.RoleIds.Except(oldRoleIds).Union(oldRoleIds.Except(groupForm.RoleIds));
                        IEnumerable <long> differencesSecond = groupForm.RoleIds.Union(oldRoleIds).Except(groupForm.RoleIds.Intersect(oldRoleIds));
                        if (differencesFirst.Count() > 0 || differencesSecond.Count() > 0)
                        {
                            foreach (var gpUser in group.Users.ToList())
                            {
                                _context.UserRoles.RemoveRange(_context.UserRoles.Where(c => c.UserId == gpUser.Id).ToList());
                            }
                            foreach (var gpUser in group.Users.ToList())
                            {
                                var newUserRoles = groupForm.RoleIds.Select(roleId =>
                                                                            new UserRole
                                {
                                    UserId = gpUser.Id,
                                    RoleId = roleId
                                }).ToList();
                                _context.UserRoles.AddRange(newUserRoles);
                            }
                        }
                        group.Name        = groupForm.Name;
                        group.Description = groupForm.Description;
                        await _context.SaveChangesAsync();

                        return(true);
                    }
                    throw new StockAssistanceProviderGlobalException(GroupServiceErrors.EditDuplicateGroupError);
                }
                throw new StockAssistanceProviderGlobalException(GroupServiceErrors.EditGroupNotExistError);
            }
            catch (Exception ex)
            {
                throw new StockAssistanceProviderGlobalException(GroupServiceErrors.EditGroupError, ex);
            }
        }
        public async Task <IActionResult> EditGroup([FromBody]  EditGroupFormModel groupForm)
        {
            var group = await _groupAuthenticationService.EditGroupAsync(HttpContext.GetUser(), groupForm);

            return(Ok(GetRequestResult(group)));
        }