示例#1
0
        public async Task <BaseResponse> Invite([FromBody] GroupInviteRequest request)
        {
            var currentUserId = HttpContext.User.GetUserId();
            var response      = new BaseResponse();

            if (request == null || !ModelState.IsValid)
            {
                HttpContext.Response.StatusCode = StatusCodes.Status400BadRequest;
                response.Message = "Invalid input(s).";
                return(response);
            }

            try
            {
                if (!await _groupsRepository.UserInGroup(currentUserId, request.Group_Id))
                {
                    HttpContext.Response.StatusCode = StatusCodes.Status401Unauthorized;
                    response.Message = "User is not authorized to invite to this group.";
                    return(response);
                }
            }
            catch
            {
                HttpContext.Response.StatusCode = StatusCodes.Status401Unauthorized;
                response.Message = "Failed to authorize invite rights.";
                return(response);
            }

            var invite = new GroupInvite
            {
                Group_Id   = request.Group_Id,
                User_Id    = currentUserId,
                Inviter_Id = request.Inviter_Id
            };

            try
            {
                if (await _groupsRepository.CreateInvite(invite))
                {
                    response.Success = true;
                    response.Message = "User successfully invited to group!";
                }
                else
                {
                    throw new Exception();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                HttpContext.Response.StatusCode = StatusCodes.Status500InternalServerError;
                response.Message = "Failed to create invite.";
            }

            return(response);
        }
        protected void bAjaxPostback_Click(object sender, EventArgs e)
        {
            string status = string.Empty;

            try
            {
                Affine.Data.Managers.IDataManager dataMan = Affine.Data.Managers.LINQ.DataManager.Instance;
                aqufitEntities entities = new aqufitEntities();
                long           fid      = 0;
                switch (hiddenAjaxAction.Value)
                {
                case "friendAccept":
                    fid = Convert.ToInt64(hiddenAjaxValue.Value);
                    dataMan.AcceptFriendRequests(UserSettings.Id, fid);
                    status = "Friend has been added.";
                    break;

                case "friendReject":
                    fid = Convert.ToInt64(hiddenAjaxValue.Value);
                    dataMan.RejectFriendRequests(UserSettings.Id, fid);
                    status = "Friend request rejected.";
                    break;

                case "deleteNotification":
                    long         nid          = Convert.ToInt64(hiddenAjaxValue.Value);
                    Notification notification = entities.UserStreamSet.OfType <Notification>().FirstOrDefault(n => n.Id == nid && n.UserSetting.Id == UserSettings.Id);
                    if (notification != null)
                    {
                        entities.DeleteObject(notification);
                        entities.SaveChanges();
                    }
                    break;

                case "joinGroup":
                    fid = Convert.ToInt64(hiddenAjaxValue.Value);
                    GroupInviteRequest request = entities.UserRequestSet.Include("UserSetting").OfType <GroupInviteRequest>().FirstOrDefault(r => r.FriendRequestSettingsId == UserSettings.Id && r.UserSetting.Id == fid);
                    dataMan.JoinGroup(UserSettings.Id, request.UserSetting.Id, Utils.ConstsUtil.Relationships.GROUP_MEMBER);
                    request.Status = 0;
                    entities.SaveChanges();
                    break;

                case "deleteRequest":
                    fid = Convert.ToInt64(hiddenAjaxValue.Value);
                    GroupInviteRequest delRequest = entities.UserRequestSet.Include("UserSetting").OfType <GroupInviteRequest>().FirstOrDefault(r => r.FriendRequestSettingsId == UserSettings.Id && r.UserSetting.Id == fid);
                    entities.DeleteObject(delRequest);
                    break;

                case "AddSuggestFriend":
                    try
                    {
                        long usid = Convert.ToInt64(hiddenAjaxValue.Value);
                        status = dataMan.sendFriendRequest(UserSettings.Id, usid);
                        RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.atiProfile.ShowOk('A Friend request has been sent');");
                    }
                    catch (Exception ex)
                    {
                        RadAjaxManager1.ResponseScripts.Add("Aqufit.Page.Actions.ShowFail('Error: " + ex.Message + "');");
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                status = "ERROR: There was a problem with the action (" + ex.Message + ")";
            }
            RadAjaxManager1.ResponseScripts.Add("UpdateStatus('" + status + "'); ");
        }