示例#1
0
        public Stream Invite(string InviterID, string InviteeID)
        {
            if (string.IsNullOrEmpty(InviterID) || string.IsNullOrEmpty(InviteeID))
            {
                return(ResponseHelper.Failure("InviterID或InviteeID信息不完全!"));
            }

            try
            {
                if (EFHelper.GetAll <Visitor>().Where(t => t.VisitorID == InviterID).Count() == 0)
                {
                    return(ResponseHelper.Failure("Inviter游客不存在!"));
                }
                if (EFHelper.GetAll <Visitor>().Where(t => t.VisitorID == InviteeID).Count() == 0)
                {
                    return(ResponseHelper.Failure("Invitee游客不存在!"));
                }

                using (var db = new EFDbContext())
                {
                    //判断邀请者是否已拥有队伍
                    var inviterGroup = db.Groups.Where(t => t.VisitorID == InviterID && t.InviteeState == 1);
                    //若没有,则新建队伍
                    if (inviterGroup.Count() == 0)
                    {
                        string groupID = IDHelper.getNextGroupID(DateTime.Now);
                        //自己邀请自己即为建立队伍
                        db.Groups.Add(new Group()
                        {
                            GroupID      = groupID,
                            VisitorID    = InviterID,
                            InviteeState = 1,
                            InviterID    = InviterID
                        });
                        db.Groups.Add(new Group()
                        {
                            GroupID      = groupID,
                            VisitorID    = InviteeID,
                            InviteeState = 0,
                            InviterID    = InviterID
                        });
                    }
                    else  //否则以邀请者队伍进行邀请
                    {
                        var group = inviterGroup.Single();
                        db.Groups.Add(new Group()
                        {
                            GroupID      = group.GroupID,
                            VisitorID    = InviteeID,
                            InviteeState = 0,
                            InviterID    = InviterID
                        });
                    }

                    db.SaveChanges();
                    return(ResponseHelper.Success(null));
                }
            }
            catch (Exception ex)
            {
                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                }
                return(ResponseHelper.Failure(ex.Message));
            }
        }