Exemplo n.º 1
0
        //Работает
        private OutputSocketMessageWithUsers creategroup(Object val, Guid myPublicLogin)
        {
            #region Тестовые данные

            /*
             * {
             *  "execFun": "createGroup",
             *  "data": {
             *      "groupName": "MeCloseGroup",
             *      "public_id": "48A0CA0657DE4FB09CDC86008B2A8EBE"
             *  }
             * }
             */
            #endregion

            OutputSocketMessage          output = new OutputSocketMessage("createGroup", true, "", new { });
            OutputSocketMessageWithUsers rez    = new OutputSocketMessageWithUsers();

            GroupInfo info = DeserObj <GroupInfo>(val, output, out rez);
            if (info == null)
            {
                return(rez);
            }

            using (var db = new CloudChatEntities())
            {
                Guid owner = db.usp_membersSelect(myPublicLogin).First().private_id;

                db.usp_groupsInsert(info.public_id, info.name, owner, "", Guid.Empty);
                db.usp_group_membersInsert(info.public_id, owner, "allow_or_deny");
            }
            output.data     = new { id = info.public_id, name = info.name };
            rez.msgForOwner = output;
            //rez.usersId.Add(info.login);
            return(rez);
        }
Exemplo n.º 2
0
        //Работает
        private OutputSocketMessageWithUsers addmemberingroup(Object val, Guid myPublicLogin)
        {
            #region Тестовые данные

            /*
             *          {
             *              "execFun": "addMemberInGroup",
             *              "data": {
             *                  "memberLogin": "******",
             *                  "groupId": "48A0CA0657DE4FB09CDC86008B2A8EBE"
             *              }
             *          }
             */
            #endregion

            OutputSocketMessage          output = new OutputSocketMessage("addMemberInGroup", true, "", new { });
            OutputSocketMessageWithUsers rez    = new OutputSocketMessageWithUsers();

            AddMemberInGroupInfo info = DeserObj <AddMemberInGroupInfo>(val, output, out rez);
            if (info == null)
            {
                return(rez);
            }

            using (var db = new CloudChatEntities())
            {
                if (db.members.Any(it => it.login.Equals(info.memberLogin.Trim(), StringComparison.CurrentCultureIgnoreCase)))
                {
                    Guid owner = db.members.First(it => it.public_id == myPublicLogin).private_id;
                    if (db.group_members.Any(it => it.member_id == owner && it.group_id == info.groupId))
                    {
                        members user = db.members.FirstOrDefault(it => it.login.Equals(info.memberLogin.Trim()));
                        if (db.group_members.Any(it => it.group_id == info.groupId && it.member_id == user.private_id))
                        {
                            output.success  = false;
                            output.msgError = "This user already consists in this group";
                        }
                        else
                        {
                            db.usp_group_membersInsert(info.groupId, user.private_id, "I don't known");
                            rez.usersId.Add(user.public_id);
                            rez.msgForOther = new {
                                callFunction = "addMemberInGroup",
                                id           = info.groupId,
                                name         = db.groups.Where(it => it.group_id == info.groupId).First().group_name_part
                            };
                        }
                    }
                    else
                    {
                        output.success  = false;
                        output.msgError = "Group is not found";
                    }
                }
                else
                {
                    output.success  = false;
                    output.msgError = "User is not found";
                }
            }

            rez.msgForOwner = output;
            return(rez);
        }