public async Task <IEnumerable <string> > GetMusicFileIds(string machineId, string driveType)
        {
            var builder = new QueryBuilder();

            builder.AddSelectStatement("FileId");
            builder.AddFromStatement(Map.GetFromStatement());
            builder.AddFilter(machineId, "MachineId", p => "MachineId = " + p);
            builder.AddFilter(driveType, "DriveType", p => "DriveType = " + p);
            return(await Query <string>(builder));
        }
示例#2
0
        protected Task <IEnumerable <T> > GetByIdList <TKey>(QueryBuilder builder, List <TKey> ids, string customKeyColumn = null)
        {
            var keyColumn = customKeyColumn ?? Map.Columns.Single(c => c.IsKey).Column;

            builder.AddFilter(ids, "Ids", p => $"{keyColumn} IN {p}");

            return(Query <T>(builder));
        }
示例#3
0
        private void TestAddFilter(Action <IQuery <JObject>, IFilter <JObject> > assert)
        {
            // arrange
            var target = new QueryBuilder <JObject>();
            var filter = new ContainsFilter("someColumn", "someText");

            // act
            target.AddFilter(filter);
            var result = target.Build();

            // assert
            assert(result, filter);
        }
示例#4
0
 protected void Page_Load(object sender, EventArgs e)
 {
     lbError.Text = string.Empty;
     if (!IsPostBack)
     {
         QueryBuilder queryBuilder = new QueryBuilder();
         queryBuilder.AddFilter(IM_GroupInfo.UserID_Field, "=", userInfo.UserID.ToString());
         queryBuilder.AddOrderASC(IM_GroupInfo.GroupName_Field);
         ddlGroup.DataTextField  = IM_GroupInfo.GroupName_Field;
         ddlGroup.DataValueField = IM_GroupInfo.ID_Field;
         ddlGroup.DataSource     = new IM_GroupBLL().GetList(queryBuilder);
         ddlGroup.DataBind();
     }
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                hidUserID.Value = Request["UserID"];
                hidTeamID.Value = Request["TeamID"];
                lbUserName.Text = new IM_UserBLL().GetModel(new Guid(hidUserID.Value)).UserName;

                QueryBuilder queryBuilder = new QueryBuilder();
                queryBuilder.AddFilter(IM_TeamInfo.UserID_Field, "=", userInfo.UserID.ToString());
                queryBuilder.AddOrderASC(IM_TeamInfo.TeamName_Field);
                ddlTeam.DataTextField  = "TeamName";
                ddlTeam.DataValueField = "ID";
                ddlTeam.DataSource     = new IM_TeamBLL().GetList(queryBuilder);
                ddlTeam.DataBind();
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string      id       = Request.QueryString["ID"];
                IM_NewsInfo newModel = new IM_NewsBLL().GetModel(new Guid(id));
                lbNews.Text = newModel.Note;

                QueryBuilder queryBuilder = new QueryBuilder();
                queryBuilder.AddFilter("UserID", "=", newModel.ReceiveUserID.ToString());
                queryBuilder.AddOrderASC("CreateDate");
                ddlTeam.DataTextField  = "TeamName";
                ddlTeam.DataValueField = "ID";
                ddlTeam.DataSource     = new IM_TeamBLL().GetList(queryBuilder);
                ddlTeam.DataBind();
            }
        }
示例#7
0
        public string sendUserTalk(string SendUserID, string ReceiveUserID, string Type, string Note)
        {
            switch (Type)
            {
            case "1":
                IM_TalkInfo talkModel = new IM_TalkInfo();
                talkModel.SendUserID    = new Guid(SendUserID);
                talkModel.ReceiveUserID = new Guid(ReceiveUserID);
                talkModel.Note          = Note;
                talkModel.Type          = 0;
                talkModel.State         = 0;
                new IM_TalkBLL().Add(talkModel);
                return(DateTime.Now.ToString("yyyy-MM-dd HH:mm"));

            case "2":    //ReceiveUserID为GroupID
                IM_TalkGroupInfo talkGroupModel = new IM_TalkGroupInfo();
                talkGroupModel.ID         = Guid.NewGuid();
                talkGroupModel.SendUserID = new Guid(SendUserID);
                talkGroupModel.GroupID    = new Guid(ReceiveUserID);
                talkGroupModel.Note       = Note;
                talkGroupModel.Type       = 0;
                new IM_TalkGroupBLL().Add(talkGroupModel);

                QueryBuilder queryBuilder = new QueryBuilder();
                queryBuilder.AddFilter(IM_GroupMemberInfo.GroupID_Field, "=", ReceiveUserID);
                List <IM_GroupMemberInfo> groupMemberList  = new IM_GroupMemberBLL().GetList(queryBuilder);
                IM_TalkGroupHintBLL       talkGroupHintBLL = new IM_TalkGroupHintBLL();
                foreach (IM_GroupMemberInfo tmpModel in groupMemberList)
                {
                    IM_TalkGroupHintInfo talkGroupHintModel = new IM_TalkGroupHintInfo();
                    talkGroupHintModel.ID          = Guid.NewGuid();
                    talkGroupHintModel.TalkGroupID = talkGroupModel.ID;
                    talkGroupHintModel.GroupID     = talkGroupModel.GroupID;
                    talkGroupHintModel.UserID      = tmpModel.UserID;
                    talkGroupHintModel.State       = 0;
                    talkGroupHintBLL.Add(talkGroupHintModel);
                }
                return(DateTime.Now.ToString());
            }
            return("");
        }
        private void LoadTeamAndUser()
        {
            QueryBuilder queryBuilder = new QueryBuilder();

            queryBuilder.AddFilter("UserID", "=", userInfo.UserID.ToString());
            queryBuilder.AddOrderASC("CreateDate");
            List <IM_TeamInfo> teamList = new IM_TeamBLL().GetList(queryBuilder);
            List <IM_UserInfo> userList = new IM_TeamMemberBLL().GetAllTeamMemberList(userInfo.UserID);

            string teamHtml = "";

            foreach (IM_TeamInfo teamModel in teamList)
            {
                teamHtml += @"
<div class='team_item'>
    <div class='team_item_info' tID='" + teamModel.ID + @"'>
        <img src='/Image/sanjian.png' />
        <span>" + teamModel.TeamName + @"</span>
    </div>
    <ul class='team_user'>
";
                var tmpList = userList.Where(p => p.TeamID == teamModel.ID);
                foreach (var item in tmpList)
                {
                    teamHtml += @"
        <li uID='" + item.ID + @"'>
            <img src='" + ("/UpLoadFiles" + (string.IsNullOrEmpty(item.Pic) ? "/UserPic/default.jpg" : item.Pic)) + @"' width='17px' height='17' />
            <span>" + item.UserName + @"</span>
        </li>
";
                }

                teamHtml += @"
    </ul>
</div>
";
            }
            TeamListDIV.InnerHtml = teamHtml;
        }
示例#9
0
        public void QueryBuilder_AddFilter_Null_Arguments_ThrowsException()
        {
            var builder = new QueryBuilder();

            Assert.ThrowsException <ArgumentNullException>(() => builder.AddFilter(null, null));
        }
示例#10
0
        private QueryBuilder GetTrackQuery(TrackFilterDo filter, PagedQuery <TrackOrderColumnDo> page = null)
        {
            var baseQuery = new QueryBuilder();

            baseQuery.AddSelectStatement(Map.GetSelectStatement("track"));
            baseQuery.AddFromStatement(Map.GetFromStatement("track"));

            if (filter != null)
            {
                if (!string.IsNullOrEmpty(filter.Title))
                {
                    baseQuery.AddFilter(filter.Title, "title", p => $"track.[Title] LIKE '%' + {p} + '%'");
                }

                if (filter.ArtistId.HasValue)
                {
                    baseQuery.AddFromStatement("JOIN [Library].[TrackArtist] ta ON ta.TrackId = track.Id AND ta.ArtistId = @ArtistId");
                    baseQuery.AddParameter("ArtistId", filter.ArtistId.Value);
                }

                if (filter.PlaylistId.HasValue)
                {
                    baseQuery.AddFromStatement("JOIN [UserLibrary].[PlaylistTrack] pt ON pt.TrackId = track.Id AND pt.PlaylistId = @PlaylistId");
                    baseQuery.AddParameter("PlaylistId", filter.PlaylistId.Value);
                }

                if (filter.AlbumId.HasValue)
                {
                    baseQuery.AddFilter(filter.AlbumId.Value, "AlbumId", p => $"track.AlbumId = {p}");
                }

                if (filter.PlayedByUserId.HasValue)
                {
                    baseQuery.AddFromStatement("JOIN [UserLibrary].[PlayCount] pc ON pc.TrackId = track.Id AND pc.UserId = @UserId1");
                    baseQuery.AddParameter("UserId1", filter.PlayedByUserId.Value);
                }

                if (filter.IsInLibraryForUserId.HasValue)
                {
                    baseQuery.AddFromStatement("JOIN [UserLibrary].[UserTrack] ut ON ut.TrackId = track.Id AND ut.UserId = @UserId2");
                    baseQuery.AddParameter("UserId2", filter.IsInLibraryForUserId.Value);
                }
            }

            if (page != null)
            {
                if (page.OrderBy != null)
                {
                    switch (page.OrderBy.Column)
                    {
                    case TrackOrderColumnDo.TrackNumber:
                        baseQuery.AddOrderByStatement("DiscNumber", page.OrderBy.Direction);
                        baseQuery.AddOrderByStatement("TrackNumber", page.OrderBy.Direction);
                        break;

                    case TrackOrderColumnDo.LastPlayed:
                        baseQuery.AddSelectStatement("(SELECT MAX(Timestamp) FROM [UserLibrary].[PlayCount] WHERE TrackId = track.Id) AS Timestamp");
                        baseQuery.AddOrderByStatement("Timestamp", page.OrderBy.Direction);
                        break;

                    case TrackOrderColumnDo.CreatedOn:
                        baseQuery.AddOrderByStatement("CreatedOn", page.OrderBy.Direction);
                        break;

                    case TrackOrderColumnDo.Title:
                        baseQuery.AddOrderByStatement("track.Title", page.OrderBy.Direction);
                        break;
                    }
                }

                if (page.Skip.HasValue && page.Take.HasValue)
                {
                    baseQuery.AddPaging(page.Skip, page.Take);
                }
            }

            return(baseQuery);
        }
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Charset     = "utf-8";

            HttpPostedFile file       = context.Request.Files["Filedata"];
            string         uploadPath = context.Server.MapPath("~/UpLoadFiles/Files/");
            string         ReceiveID  = context.Request["ReceiveID"].Replace("'", "");
            string         UserID     = context.Request["UserID"].Replace("'", "");
            string         Type       = context.Request["Type"].Replace("'", "");
            string         FileName   = "";
            string         FileType   = "";

            if (file != null)
            {
                FileID   = Guid.NewGuid().ToString();
                FileType = file.FileName.Substring(file.FileName.LastIndexOf('.') + 1).ToLower();
                FileName = file.FileName.Substring(0, file.FileName.LastIndexOf('.'));
                if (!Directory.Exists(uploadPath))
                {
                    Directory.CreateDirectory(uploadPath);
                }
                uploadPath += FileID + "." + FileType;
                file.SaveAs(uploadPath);
                FileName += "." + FileType;

                IM_FileInfo fileModel = new IM_FileInfo();
                fileModel.ID         = Guid.NewGuid();
                fileModel.FileName   = FileName;
                fileModel.FilePath   = "/UpLoadFiles/Files/" + FileID + "." + FileType;
                fileModel.UserID     = new Guid(UserID);
                fileModel.ReceiveID  = new Guid(ReceiveID);
                fileModel.Type       = 1;
                fileModel.CreateDate = DateTime.Now;
                new IM_FileBLL().Add(fileModel);

                string Note = "<a href=\"" + fileModel.FilePath + "\" target=\"_blank\">" + fileModel.FileName + "</a>";
                switch (Type)
                {
                case "1":
                    IM_TalkInfo talkModel = new IM_TalkInfo();
                    talkModel.SendUserID    = fileModel.UserID;
                    talkModel.ReceiveUserID = fileModel.ReceiveID;
                    talkModel.Note          = Note;
                    talkModel.Type          = 1;
                    talkModel.State         = 0;
                    new IM_TalkBLL().Add(talkModel);
                    break;

                case "2":
                    IM_TalkGroupInfo talkGroupModel = new IM_TalkGroupInfo();
                    talkGroupModel.ID         = Guid.NewGuid();
                    talkGroupModel.SendUserID = fileModel.UserID;
                    talkGroupModel.GroupID    = fileModel.ReceiveID;
                    talkGroupModel.Note       = Note;
                    talkGroupModel.Type       = 1;
                    new IM_TalkGroupBLL().Add(talkGroupModel);

                    QueryBuilder queryBuilder = new QueryBuilder();
                    queryBuilder.AddFilter(IM_GroupMemberInfo.GroupID_Field, "=", fileModel.ReceiveID.ToString());
                    List <IM_GroupMemberInfo> groupMemberList  = new IM_GroupMemberBLL().GetList(queryBuilder);
                    IM_TalkGroupHintBLL       talkGroupHintBLL = new IM_TalkGroupHintBLL();
                    foreach (IM_GroupMemberInfo tmpModel in groupMemberList)
                    {
                        IM_TalkGroupHintInfo talkGroupHintModel = new IM_TalkGroupHintInfo();
                        talkGroupHintModel.ID          = Guid.NewGuid();
                        talkGroupHintModel.TalkGroupID = talkGroupModel.ID;
                        talkGroupHintModel.GroupID     = talkGroupModel.GroupID;
                        talkGroupHintModel.UserID      = tmpModel.UserID;
                        talkGroupHintModel.State       = 0;
                        talkGroupHintBLL.Add(talkGroupHintModel);
                    }
                    break;
                }
            }
            context.Response.Write(ReceiveID + "|" + FileName + "|" + "/UpLoadFiles/Files/" + FileID + "." + FileType + "|" + DateTime.Now);
        }
示例#12
0
        public string getUserAboutNews(string UserID)
        {
            QueryBuilder queryBuilder = new QueryBuilder();
            string       json         = "";

            //添加好友提示
            queryBuilder.AddFilter("ReceiveUserID", "=", UserID);
            //queryBuilder.AddFilter("BusinessType", "=", "1");
            queryBuilder.AddFilter("State", "=", "0");
            queryBuilder.AddOrderASC("CreateDate");
            IM_NewsBLL         newsBLL  = new IM_NewsBLL();
            List <IM_NewsInfo> newsList = newsBLL.GetList(queryBuilder);
            string             jsonItem = "";

            foreach (IM_NewsInfo newsModel in newsList)
            {
                newsBLL.UpdateForState(newsModel.ID, 1);
                jsonItem += ",{";
                jsonItem += "ID:'" + newsModel.ID + "'";
                jsonItem += ",SendUserID:'" + newsModel.SendUserID + "'";
                jsonItem += ",ReceiveUserID:'" + newsModel.ReceiveUserID + "'";
                jsonItem += ",BusinessType:'" + (newsModel.BusinessType == 3 ? 2 : newsModel.BusinessType) + "'";//修改加入群
                jsonItem += ",Note:'" + newsModel.Note + "'";
                jsonItem += "}";
            }
            json = "NewsList:[" + (jsonItem.Length == 0 ? "" : jsonItem.Substring(1)) + "]";

            //单聊提示
            jsonItem = "";
            IM_TalkBLL         talkBLL  = new IM_TalkBLL();
            List <IM_TalkInfo> talkList = talkBLL.GetList(new Guid(UserID));

            foreach (IM_TalkInfo talkModel in talkList)
            {
                talkBLL.UpdateForState(talkModel.ID, 1);
                jsonItem += ",{";
                jsonItem += "ID:'" + talkModel.ID + "'";
                jsonItem += ",SendUserName:'******'";
                jsonItem += ",SendUserID:'" + talkModel.SendUserID + "'";
                jsonItem += ",Note:'" + talkModel.Note + "'";
                jsonItem += ",Type:'" + talkModel.Type + "'";
                jsonItem += ",CreateDate:'" + talkModel.CreateDate + "'";
                jsonItem += "}";
            }
            json += ",TalkList:[" + (jsonItem.Length == 0 ? "" : jsonItem.Substring(1)) + "]";

            //群聊提示
            jsonItem = "";
            IM_TalkGroupBLL         talkGroupBLL     = new IM_TalkGroupBLL();
            IM_TalkGroupHintBLL     talkGroupHintBLL = new IM_TalkGroupHintBLL();
            List <IM_TalkGroupInfo> talkGroupList    = talkGroupBLL.GetList(new Guid(UserID));

            foreach (IM_TalkGroupInfo talkGroupModel in talkGroupList)
            {
                talkGroupHintBLL.UpdateForState(talkGroupModel.ID, new Guid(UserID), 1);
                jsonItem += ",{";
                jsonItem += "ID:'" + talkGroupModel.ID + "'";
                jsonItem += ",GroupName:'" + talkGroupModel.GroupName + "'";
                jsonItem += ",GroupID:'" + talkGroupModel.GroupID + "'";
                jsonItem += ",UserName:'******'";
                jsonItem += ",Note:'" + talkGroupModel.Note + "'";
                jsonItem += ",Type:'" + talkGroupModel.Type + "'";
                jsonItem += ",CreateDate:'" + talkGroupModel.CreateDate + "'";
                jsonItem += "}";
            }
            json += ",TalkGroupList:[" + (jsonItem.Length == 0 ? "" : jsonItem.Substring(1)) + "]";

            json = "[{" + json + "}]";



            return(json);
        }