コード例 #1
0
ファイル: dvd.cs プロジェクト: rlittletht/UpcInv
        public static USR_DvdInfoList QueryDvdScanInfos(
            string sTitleSubstring,
            string sSummarySubstring,
            DateTime?dttmSince)
        {
            SqlWhere sqlw = new SqlWhere();

            sqlw.AddAliases(s_mpDvdAlias);
            if (!string.IsNullOrEmpty(sTitleSubstring))
            {
                sqlw.Add(String.Format("$$upc_dvd$$.Title like '%{0}%'", Sql.Sqlify(sTitleSubstring)), SqlWhere.Op.And);
            }
            if (!string.IsNullOrEmpty(sSummarySubstring))
            {
                sqlw.Add(String.Format("$$upc_dvd$$.Summary like '%{0}%'", Sql.Sqlify(sSummarySubstring)), SqlWhere.Op.And);
            }
            if (dttmSince != null)
            {
                sqlw.Add(String.Format("$$upc_codes$$.FirstScanDate > '{0}'", UpcBook.ToSqlDateTime(dttmSince.Value)), SqlWhere.Op.And);
            }

            string sFullQuery = String.Format("SELECT {0}", sqlw.GetWhere(s_sQueryDvd));

            return(Shared.DoGenericQueryDelegateRead(sFullQuery, ReaderGetDvdScanInfoListDelegate, USR_DvdInfoList.FromTCSR));
        }
コード例 #2
0
ファイル: book.cs プロジェクト: rlittletht/UpcInv
        /*----------------------------------------------------------------------------
        *       %%Function: GetBookScanInfosFromTitle
        *       %%Qualified: UpcApi.UpcBook.GetBookScanInfosFromTitle
        *
        *   Get the list of matching bookInfo items for the given title substring
        *  ----------------------------------------------------------------------------*/
        public static USR_BookInfoList QueryBookScanInfos(
            string sTitleSubstring,
            string sAuthorSubstring,
            string sSeriesSubstring,
            string sSummarySubstring,
            DateTime?dttmSince)
        {
            SqlWhere sqlw = new SqlWhere();

            sqlw.AddAliases(s_mpBookAlias);
            if (sTitleSubstring != null)
            {
                sqlw.Add(String.Format("$$upc_books$$.Title like '%{0}%'", Sql.Sqlify(sTitleSubstring)), SqlWhere.Op.And);
            }
            if (sAuthorSubstring != null)
            {
                sqlw.Add(String.Format("$$upc_books$$.Author like '%{0}%'", Sql.Sqlify(sAuthorSubstring)), SqlWhere.Op.And);
            }
            if (sSeriesSubstring != null)
            {
                sqlw.Add(String.Format("$$upc_books$$.Series like '%{0}%'", Sql.Sqlify(sSeriesSubstring)), SqlWhere.Op.And);
            }
            if (sSummarySubstring != null)
            {
                sqlw.Add(String.Format("$$upc_books$$.Summary like '%{0}%'", Sql.Sqlify(sSummarySubstring)), SqlWhere.Op.And);
            }
            if (dttmSince != null)
            {
                sqlw.Add(String.Format("$$upc_codes$$.FirstScanDate > '{0}'", ToSqlDateTime(dttmSince.Value)), SqlWhere.Op.And);
            }

            string sFullQuery = String.Format("SELECT {0}", sqlw.GetWhere(s_sQueryBook));

            return(Shared.DoGenericQueryDelegateRead(sFullQuery, ReaderGetBookScanInfoListDelegate, USR_BookInfoList.FromTCSR));
        }
コード例 #3
0
        public void Where_MakeFriendlyTrue_Change()
        {
            SqlWhere where = SqlWhere.Where(left: "Name", comparison: Comparison.Equal,
                                            right: "@name", makeFriendly: true);

            Assert.Equal("Name = '@name'", where.Raw);
        }
コード例 #4
0
        public void Where_MakeFriendlyFalse_NoChange()
        {
            // makeFriendly:false leaves the right side as-is.
            SqlWhere where = SqlWhere.Where(left: "Name", comparison: Comparison.Equal,
                                            right: "@name", makeFriendly: false);

            Assert.Equal("Name = @name", where.Raw);
        }
コード例 #5
0
                /* L O A D  R W P T  F R O M  C S V */

                /*----------------------------------------------------------------------------
                *       %%Function: LoadRwptFromCsv
                *       %%Qualified: RwpSvc.Practice:RwpSlots:CsvSlots.LoadRwptFromCsv
                *       %%Contact: rlittle
                *
                *  ----------------------------------------------------------------------------*/
                public RSR LoadRwpsFromCsv(string sLine, Sql sql, out RwpSlot rwps, out bool fAdd, out List <string> plsDiff)
                {
                    string [] rgs = LineToArray(sLine);
                    SqlWhere  sw  = new SqlWhere();

                    fAdd    = true;
                    plsDiff = new List <string>();
                    rwps    = null;

                    if (rgs[0] == "")
                    {
                        return(RSR.Success());
                    }

                    rwps = new RwpSlot();

                    sw.AddAliases(RwpSlot.s_mpAliases);
                    try
                    {
                        rwps.Slot = GetIntVal(rgs, "SLOTNO");

                        sw.Add(String.Format("$$rwllpractice$$.SlotNo = {0}", rwps.Slot), SqlWhere.Op.And);
                        SqlReader sqlr = new SqlReader(sql);
                        if (sqlr.FExecuteQuery(sw.GetWhere(RwpSlot.s_sSqlQueryString), _sResourceConnString) &&
                            sqlr.Reader.Read())
                        {
                            sqlr.Close();
                            // found a match.  for now, this is an error
                            throw new Exception(String.Format("slot {0} already exists", rwps.Slot));
                        }
                        sqlr.Close();

                        rwps.Slot         = GetIntVal(rgs, "SLOTNO");
                        rwps.Week         = GetDoubleVal(rgs, "WEEK");
                        rwps.Status       = GetStringVal(rgs, "STATUS");
                        rwps.Venue        = GetStringVal(rgs, "VENUE");
                        rwps.Field        = GetStringVal(rgs, "FIELD");
                        rwps.SlotDate     = GetDateVal(rgs, "DATE");
                        rwps.Weekday      = GetStringVal(rgs, "WEEKDAY");
                        rwps.StartTime    = GetStringVal(rgs, "STARTTIME");
                        rwps.EndTime      = GetStringVal(rgs, "ENDTIME");
                        rwps.Hours        = GetStringVal(rgs, "HOURS");
                        rwps.Reserved     = GetStringVal(rgs, "RESERVED");
                        rwps.Divisions    = GetStringVal(rgs, "DIVISIONS");
                        rwps.ReservedDate = GetDateValNullable(rgs, "RESERVEDATETIME");
                        rwps.Type         = GetStringVal(rgs, "TYPE");
                        rwps.Released     = GetDateValNullable(rgs, "RELEASEDATETIME");
                        rwps.ReleaseTeam  = GetStringValNullable(rgs, "RELEASETEAM");
                    }
                    catch (Exception e)
                    {
                        return(RSR.Failed(e));
                    }

                    return(RSR.Success());
                }
コード例 #6
0
        public void AndFilter()
        {
            var where = new SqlWhere(new And(
                                         new Eq(new Field("Title"), new Literal("Some Title")),
                                         new Lt(new Field("Posted"), new Literal(DateTimeOffset.Now))
                                         ));

            Assert.AreEqual(@"(exists (select * from FieldIndexes where FieldIndexes.RecordId = Records.Id and FieldIndexes.[Name] = 'Title' and FieldIndexes.[Text] = @p0)) and (exists (select * from FieldIndexes where FieldIndexes.RecordId = Records.Id and FieldIndexes.[Name] = 'Posted' and FieldIndexes.[Moment] < @p1))", where.Clause);
            Assert.AreEqual(2, where.Parameters.Count);
        }
コード例 #7
0
        public void InFilter()
        {
            var where = new SqlWhere(new And(
                                         new Eq(new Field("Title"), new Literal("Some Title")),
                                         new In(new Field("Numbers"), new Literal(1), new Literal(2), new Literal(3), new Literal(4))
                                         ));

            Assert.AreEqual(@"(exists (select * from FieldIndexes where FieldIndexes.RecordId = Records.Id and FieldIndexes.[Name] = 'Title' and FieldIndexes.[Text] = @p0)) and (exists (select * from FieldIndexes where FieldIndexes.RecordId = Records.Id and FieldIndexes.[Name] = 'Numbers' and FieldIndexes.[Number] in (@p1, @p2, @p3, @p4)))", where.Clause);
            Assert.AreEqual(5, where.Parameters.Count);
        }
コード例 #8
0
ファイル: Slots.cs プロジェクト: rlittletht/RWLLPracticeTool
        public static RSR_CalItems GetCalendarItemsForTeam(string sLinkID)
        {
            SqlWhere     sw = new SqlWhere();
            RSR          rsr;
            RSR_CalItems rci;
            RwpSlots     slots = new RwpSlots();

            sw.AddAliases(RwpSlot.s_mpAliases);
            try
            {
                sw.Add(String.Format("$$rwllpractice$$.Reserved = (select TeamID from rwllcalendarlinks where linkid='{0}')", Sql.Sqlify(sLinkID)), SqlWhere.Op.And);

                rsr = RSR.FromSR(Sql.ExecuteQuery(null, sw.GetWhere(RwpSlot.s_sSqlQueryString), slots,
                                                  Startup._sResourceConnString));

                if (!rsr.Succeeded)
                {
                    rci        = RSR_CalItems.FromRSR(rsr);
                    rci.Reason = String.Format("{0} {1}", rci.Reason, Startup._sResourceConnString);
                    return(rci);
                }

                rci = RSR_CalItems.FromRSR(RSR.FromSR(SR.Success()));

                List <CalItem> plci = new List <CalItem>();

                if (slots.Slots != null)
                {
                    foreach (RwpSlot slot in slots.Slots)
                    {
                        CalItem ci = new CalItem();

                        ci.Start       = slot.SlotStart;
                        ci.End         = slot.SlotStart.AddMinutes(slot.SlotLength);
                        ci.Location    = String.Format("{0}: {1}", slot.Venue, slot.Field);
                        ci.Title       = String.Format("Team Practice: {0}", slot.Reserved);
                        ci.Description =
                            String.Format("Redmond West Little League team practice at {0} ({1}), for team {2}",
                                          slot.Venue, slot.Field, slot.Reserved);
                        ci.UID = String.Format("{0}-rwllpractice-{1}", slot.Slot, slot.SlotStart.ToString("yyyyMMdd"));
                        plci.Add(ci);
                    }
                }

                rci.TheValue = plci;
                return(rci);
            }
            catch (Exception e)
            {
                rci        = RSR_CalItems.FromRSR(RSR.Failed(e));
                rci.Reason = String.Format("{0} ({1})", rci.Reason, sLinkID);
                return(rci);
            }
        }
コード例 #9
0
ファイル: dvd.cs プロジェクト: rlittletht/UpcInv
        /*----------------------------------------------------------------------------
        *   %%Function: GetFullDvdScanInfo
        *   %%Qualified: UpcSvc.UpcSvc.GetFullDvdScanInfo
        *
        *   Get the information for the DVD for the given scancode
        *  ----------------------------------------------------------------------------*/
        public static USR_DvdInfoEx GetFullDvdScanInfo(string sScanCode)
        {
            SqlWhere sqlw = new SqlWhere();

            sqlw.AddAliases(s_mpDvdAlias);
            sqlw.Add(String.Format("$$upc_codes$$.ScanCode='{0}'", Sql.Sqlify(sScanCode)), SqlWhere.Op.And);

            string sFullQuery = String.Format("SELECT {0}", sqlw.GetWhere(s_sQueryDvdEx));

            return(Shared.DoGenericQueryDelegateRead(sFullQuery, ReaderGetDvdScanInfoExDelegate, USR_DvdInfoEx.FromTCSR));
        }
コード例 #10
0
ファイル: dvd.cs プロジェクト: rlittletht/UpcInv
        /*----------------------------------------------------------------------------
        *       %%Function: GetDvdScanInfosFromTitle
        *       %%Qualified: UpcSvc.UpcSvc.GetDvdScanInfosFromTitle
        *       %%Contact: rlittle
        *
        *   Get the list of matching dvdInfo items for the given title substring
        *  ----------------------------------------------------------------------------*/
        public static USR_DvdInfoList GetDvdScanInfosFromTitle(string sTitleSubstring)
        {
            SqlWhere sqlw = new SqlWhere();

            sqlw.AddAliases(s_mpDvdAlias);
            sqlw.Add(String.Format("$$upc_dvd$$.Title like '%{0}%'", Sql.Sqlify(sTitleSubstring)), SqlWhere.Op.And);

            string sFullQuery = String.Format("SELECT {0}", sqlw.GetWhere(s_sQueryDvd));

            return(Shared.DoGenericQueryDelegateRead(sFullQuery, ReaderGetDvdScanInfoListDelegate, USR_DvdInfoList.FromTCSR));
        }
コード例 #11
0
ファイル: SqlWhereTests.cs プロジェクト: kitdotnet/Common
        public void Where_PassClause_PassThrough()
        {
            // Any string will do to prove the transfer.
            string expected = "[Name] LIKE %PEACE%";

            SqlWhere where = new SqlWhere(expected);

            SqlWhere otherClause = new SqlWhere(where);

            Assert.Equal(where.Raw, otherClause.Raw);

            Assert.Equal(expected, where.Raw);
        }
コード例 #12
0
        /*----------------------------------------------------------------------------
        *       %%Function: GetCalendarLinksForTeam
        *       %%Qualified: RwpApi.CalendarLinks.GetCalendarLinksForTeam
        *       %%Contact: rlittle
        *
        *  ----------------------------------------------------------------------------*/
        public static RSR_CalendarLinks GetCalendarLinksForTeam(string sTeam)
        {
            SqlWhere          sw = new SqlWhere();
            RSR               rsr;
            RSR_CalendarLinks rci;
            CalendarLinks     links = new CalendarLinks();

            sw.AddAliases(CalendarLinkItem.s_mpAliases);
            try
            {
                sw.Add(String.Format("$$rwllcalendarlinks$$.TeamID = '{0}'", Sql.Sqlify(sTeam)), SqlWhere.Op.And);

                rsr = RSR.FromSR(Sql.ExecuteQuery(null, sw.GetWhere(RwpSlots.RwpSlot.s_sSqlQueryString), links,
                                                  Startup._sResourceConnString));

                if (!rsr.Succeeded)
                {
                    rci        = RSR_CalendarLinks.FromRSR(rsr);
                    rci.Reason = String.Format("{0} {1}", rci.Reason, Startup._sResourceConnString);
                    return(rci);
                }

                rci = RSR_CalendarLinks.FromRSR(RSR.FromSR(SR.Success()));

                List <CalendarLink> plcall = new List <CalendarLink>();

                if (links.Links != null)
                {
                    foreach (CalendarLinkItem linkItem in links.Links)
                    {
                        CalendarLink link = new CalendarLink()
                        {
                            Link       = linkItem.Link, Team = linkItem.Team, Authority = linkItem.Authority,
                            CreateDate = linkItem.CreateDate, Comment = linkItem.Comment
                        };
                        plcall.Add(link);
                    }
                }

                rci.TheValue = plcall;
                return(rci);
            }

            catch (Exception e)
            {
                rci        = RSR_CalendarLinks.FromRSR(RSR.Failed(e));
                rci.Reason = String.Format("{0} ({1})", rci.Reason, sTeam);
                return(rci);
            }
        }
コード例 #13
0
        public ActionResult Read([DataSourceRequest] DataSourceRequest request)
        {
            SqlWhere        byUser = new SqlWhere(null, null, "RPTReportListByUser", "User_Key", Session["CurrentUserKey"], null, SqlWhereComparison.SqlComparer.Equal, SqlWhereAndOrOptions.SqlWhereAndOr.And);
            List <SqlWhere> wheres = new List <SqlWhere>();

            wheres.Add(byUser);
            if (Session ["ReportSearches"] != null)
            {
                wheres.AddRange((List <SqlWhere>)Session["ReportSearches"]);
            }
            DataSourceResult result = _cHelper.Read <RPTReportListByUserModel>(request, true, wheres);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
コード例 #14
0
                /* L O A D  R W P T  F R O M  C S V */

                /*----------------------------------------------------------------------------
                *       %%Function: LoadRwptFromCsv
                *       %%Qualified: RwpSvc.Practice:Teams:CsvTeams.LoadRwptFromCsv
                *       %%Contact: rlittle
                *
                *  ----------------------------------------------------------------------------*/
                public RSR LoadRwptFromCsv(string sLine, TCore.Sql sql, out RwpTeam rwpt, out bool fAdd, out List <string> plsDiff)
                {
                    string [] rgs = LineToArray(sLine);
                    SqlWhere  sw  = new SqlWhere();

                    fAdd    = true;
                    rwpt    = new RwpTeam();
                    plsDiff = new List <string>();

                    sw.AddAliases(RwpTeam.s_mpAliases);
                    try
                    {
                        rwpt.Name = GetStringVal(rgs, "TEAMNAME");
                        if (rwpt.Name == "")
                        {
                            return(RSR.Success());
                        }

                        sw.Add(String.Format("$$rwllteams$$.TeamName = '{0}'", Sql.Sqlify(rwpt.Name)), SqlWhere.Op.And);
                        SqlReader sqlr = new SqlReader(sql);
                        if (sqlr.FExecuteQuery(sw.GetWhere(RwpTeam.s_sSqlQueryString), _sResourceConnString) &&
                            sqlr.Reader.Read())
                        {
                            sqlr.Close();
                            // found a match.  for now, this is an error
                            throw new Exception(String.Format("team name {0} already exists", rwpt.Name));
                        }
                        sqlr.Close();

                        rwpt.Division            = GetStringValNullable(rgs, "DIVISION");
                        rwpt.Password            = GetStringValNullable(rgs, "PW");
                        rwpt.Created             = GetDateValNullable(rgs, "DATECREATED");
                        rwpt.Updated             = GetDateValNullable(rgs, "DATEUPDATED");
                        rwpt.FieldsReleased      = GetIntVal(rgs, "FIELDSRELEASECOUNT");
                        rwpt.CagesReleased       = GetIntVal(rgs, "CAGESRELEASECOUNT");
                        rwpt.FieldsReleasedToday = GetIntVal(rgs, "RELEASEDFIELDSTODAY");
                        rwpt.CagesReleasedToday  = GetIntVal(rgs, "RELEASEDCAGESTODAY");
                        rwpt.ReleasedFieldsDate  = GetDateValNullable(rgs, "RELEASEDFIELDSDATE");
                        rwpt.ReleasedCagesDate   = GetDateValNullable(rgs, "RELEASEDCAGESDATE");
                        rwpt.Email1 = GetStringValNullable(rgs, "EMAIL1");
                        rwpt.Email2 = GetStringValNullable(rgs, "EMAIL2");
                    }
                    catch (Exception e)
                    {
                        return(RSR.Failed(e));
                    }

                    return(RSR.Success());
                }
コード例 #15
0
        public void ComplexQuery()
        {
            DateTime start  = DateTime.Now.AddDays(-1);
            DateTime finish = DateTime.Now.AddDays(1);

            string expected = $"((((Name IS NULL AND Age > 30) OR (Name LIKE '%e%' AND Age < 30)) AND BankBalance BETWEEN 0 AND 500000) OR (TimeCreated = '{start.ToString(DateFormat)}' OR TimeCreated = '{finish.ToString(DateFormat)}'))";

            SqlWhere query = SqlWhere.WhereEqual(left: "Name", right: default(string))
                             .And(SqlWhere.WhereGreaterThan("Age", 30))
                             .Or(SqlWhere.WhereLike("Name", "%e%").And(SqlWhere.WhereLessThan("Age", 30)))
                             .And(SqlWhere.WhereBetween("BankBalance", 0, 500000))
                             .Or(SqlWhere.WhereEqual("TimeCreated", start)
                                 .Or(SqlWhere.WhereEqual("TimeCreated", finish)));

            Assert.Equal(expected, query.Raw);
        }
コード例 #16
0
ファイル: Teams.cs プロジェクト: rlittletht/RWLLPracticeTool
            /* L O A D  R W P T  F R O M  C S V */

            /*----------------------------------------------------------------------------
            *   %%Function: LoadRwptFromCsv
            *   %%Qualified: RwpSvc.Practice:Teams:CsvTeams.LoadRwptFromCsv
            *   %%Contact: rlittle
            *
            *  ----------------------------------------------------------------------------*/
            public RSR LoadRwptFromCsv(string sLine, TCore.Sql sql, out RwpTeam rwpt, out bool fAdd,
                                       out List <string> plsDiff)
            {
                string[] rgs = LineToArray(sLine);
                SqlWhere sw  = new SqlWhere();

                fAdd    = true;
                rwpt    = new RwpTeam();
                plsDiff = new List <string>();

                sw.AddAliases(RwpTeam.s_mpAliases);
                try
                {
                    rwpt.Name = GetStringVal(rgs, "TEAMNAME");
                    if (rwpt.Name == "")
                    {
                        return(RSR.Success());
                    }

                    rwpt.Division            = GetStringValNullable(rgs, "DIVISION");
                    rwpt.Password            = GetStringValNullable(rgs, "PW");
                    rwpt.Created             = GetDateValNullable(rgs, "DATECREATED");
                    rwpt.Updated             = GetDateValNullable(rgs, "DATEUPDATED");
                    rwpt.FieldsReleased      = GetIntVal(rgs, "FIELDSRELEASECOUNT");
                    rwpt.CagesReleased       = GetIntVal(rgs, "CAGESRELEASECOUNT");
                    rwpt.FieldsReleasedToday = GetIntVal(rgs, "RELEASEDFIELDSTODAY");
                    rwpt.CagesReleasedToday  = GetIntVal(rgs, "RELEASEDCAGESTODAY");
                    rwpt.ReleasedFieldsDate  = GetDateValNullable(rgs, "RELEASEDFIELDSDATE");
                    rwpt.ReleasedCagesDate   = GetDateValNullable(rgs, "RELEASEDCAGESDATE");
                    rwpt.Email1   = GetStringValNullable(rgs, "EMAIL1");
                    rwpt.Email2   = GetStringValNullable(rgs, "EMAIL2");
                    rwpt.Identity = GetStringValNullable(rgs, "IDENTITY");
                    rwpt.Tenant   = GetStringValNullable(rgs, "TENANT");
                }
                catch (Exception e)
                {
                    return(RSR.Failed(e));
                }

                return(RSR.Success());
            }
コード例 #17
0
            /* G E T  C S V */

            /*----------------------------------------------------------------------------
            *       %%Function: GetCsv
            *       %%Qualified: RwpSvc.Practice:RwpSlots.GetCsv
            *       %%Contact: rlittle
            *
            *  ----------------------------------------------------------------------------*/
            public SR GetCsv(Stream stm)
            {
                CsvSlots   csvs = new CsvSlots();
                SqlWhere   sw   = new SqlWhere();
                TextWriter tw   = new StreamWriter(stm);

                sw.AddAliases(RwpSlot.s_mpAliases);

                m_plrwps = new List <RwpSlot>();

                SR sr = Sql.ExecuteQuery(sw.GetWhere(RwpSlot.s_sSqlQueryString), this, _sResourceConnString);

                tw.WriteLine(csvs.Header());
                foreach (RwpSlot rwps in m_plrwps)
                {
                    tw.WriteLine(csvs.CsvMake(rwps));
                }

                tw.Flush();
                return(SR.Success());
            }
コード例 #18
0
ファイル: Teams.cs プロジェクト: rlittletht/RWLLPracticeTool
        /* G E T  C S V */

        /*----------------------------------------------------------------------------
        *   %%Function: GetCsv
        *   %%Qualified: RwpSvc.Practice:Teams.GetCsv
        *   %%Contact: rlittle
        *
        *  ----------------------------------------------------------------------------*/
        public RSR GetCsv(Stream stm)
        {
            CsvTeams   csvt = new CsvTeams();
            SqlWhere   sw   = new SqlWhere();
            TextWriter tw   = new StreamWriter(stm);

            sw.AddAliases(RwpTeam.s_mpAliases);

            m_plrwpt = new List <RwpTeam>();
//                StringBuilder sb = new StringBuilder(4096);

            RSR sr = RSR.FromSR(Sql.ExecuteQuery(sw.GetWhere(RwpTeam.s_sSqlQueryString), this, Startup._sResourceConnString));

            tw.WriteLine(csvt.Header());
            foreach (RwpTeam rwpt in m_plrwpt)
            {
                tw.WriteLine(csvt.CsvMake(rwpt));
            }

            tw.Flush();
            return(RSR.Success());
        }
コード例 #19
0
        static void Main(string[] args)
        {
            //MongoContext<TestEntity> mongoContext = new MongoContext<TestEntity>(MongoPointEnum.Master, 0, "test", "ObjClass2");
            //var test2 = new TestEntity2 { Url = "http://www.easydefinemvc.cn", TestID = 66 } ;

            //MongoContext<TestEntity2> mongoContext1 = new MongoContext<TestEntity2>(MongoPointEnum.Master, 0, "test", "ObjClass");
            //mongoContext1.Add(test2);

            //mongoContext.Add(new TestEntity { Name = "沙宇祥", Age = 30, Entity = test2 });
            //mongoContext.Add(new TestEntity { Name = "李闯", Age = 25 });
            //mongoContext.Add(new TestEntity { Name = "胡鑫", Age = 22 });
            // var list = mongoContext.Query(Builders<TestEntity>.Filter.Gte(e=>e.Age,30) & Builders<TestEntity>.Filter.Where(e=>e.Name.StartsWith("李")||e.Name.StartsWith("沙")));

            string WhereExp = "(Name = 123 or (Name like @Name2) or Age > 25 or (Name like @Name)) or (Name <> 123 or Age <=10)";

            SqlWhere sqlWhere = new SqlWhere(WhereExp);

            sqlWhere.ToSQLUnit();
            sqlWhere.Sentence();
            sqlWhere.GetWhereTrees();
            sqlWhere.ToMongoBuilders <TestEntity>();
            Console.ReadLine();
        }
コード例 #20
0
ファイル: SqlVisitor.cs プロジェクト: WouterDemuynck/popsql
 /// <summary>
 /// Visits the specified <see cref="SqlWhere"/>.
 /// </summary>
 /// <param name="expression">
 /// The expression to visit.
 /// </param>
 public virtual void Visit(SqlWhere expression)
 {
 }
コード例 #21
0
ファイル: teams.cs プロジェクト: rlittletht/RWLLPracticeTool
                /* L O A D  R W P T  F R O M  C S V */
                /*----------------------------------------------------------------------------
                    %%Function: LoadRwptFromCsv
                    %%Qualified: RwpSvc.Practice:Teams:CsvTeams.LoadRwptFromCsv
                    %%Contact: rlittle

                ----------------------------------------------------------------------------*/
                public RSR LoadRwptFromCsv(string sLine, TCore.Sql sql, out RwpTeam rwpt, out bool fAdd, out List<string> plsDiff)
                {
                    string []rgs = LineToArray(sLine);
                    SqlWhere sw = new SqlWhere();
                    fAdd = true;
                    rwpt = new RwpTeam();
                    plsDiff = new List<string>();

                    sw.AddAliases(RwpTeam.s_mpAliases);
                    try
                        {
                        rwpt.Name = GetStringVal(rgs, "TEAMNAME");
                        if (rwpt.Name == "")
                            return RSR.Success();

                        sw.Add(String.Format("$$rwllteams$$.TeamName = '{0}'", Sql.Sqlify(rwpt.Name)), SqlWhere.Op.And);
                        SqlReader sqlr = new SqlReader(sql);
                        if (sqlr.FExecuteQuery(sw.GetWhere(RwpTeam.s_sSqlQueryString), _sResourceConnString)
                            && sqlr.Reader.Read())
                            {
                            sqlr.Close();
                            // found a match.  for now, this is an error
                            throw new Exception(String.Format("team name {0} already exists", rwpt.Name));
                            }
                        sqlr.Close();

                        rwpt.Division = GetStringValNullable(rgs, "DIVISION");
                        rwpt.Password = GetStringValNullable(rgs, "PW");
                        rwpt.Created = GetDateValNullable(rgs, "DATECREATED");
                        rwpt.Updated = GetDateValNullable(rgs, "DATEUPDATED");
                        rwpt.FieldsReleased = GetIntVal(rgs, "FIELDSRELEASECOUNT");
                        rwpt.CagesReleased = GetIntVal(rgs, "CAGESRELEASECOUNT");
                        rwpt.FieldsReleasedToday = GetIntVal(rgs, "RELEASEDFIELDSTODAY");
                        rwpt.CagesReleasedToday = GetIntVal(rgs, "RELEASEDCAGESTODAY");
                        rwpt.ReleasedFieldsDate = GetDateValNullable(rgs, "RELEASEDFIELDSDATE");
                        rwpt.ReleasedCagesDate = GetDateValNullable(rgs, "RELEASEDCAGESDATE");
                        rwpt.Email1 = GetStringValNullable(rgs, "EMAIL1");
                        rwpt.Email2 = GetStringValNullable(rgs, "EMAIL2");
                        }
                    catch (Exception e)
                        {
                        return RSR.Failed(e);
                        }

                    return RSR.Success();
                }
コード例 #22
0
ファイル: teams.cs プロジェクト: rlittletht/RWLLPracticeTool
            /* G E T  C S V */
            /*----------------------------------------------------------------------------
                %%Function: GetCsv
                %%Qualified: RwpSvc.Practice:Teams.GetCsv
                %%Contact: rlittle

            ----------------------------------------------------------------------------*/
            public RSR GetCsv(Stream stm)
            {
                CsvTeams csvt = new CsvTeams();
                SqlWhere sw = new SqlWhere();
                TextWriter tw = new StreamWriter(stm);

                sw.AddAliases(RwpTeam.s_mpAliases);

                m_plrwpt = new List<RwpTeam>();
                //                StringBuilder sb = new StringBuilder(4096);

                RSR sr = RSR.FromSR(Sql.ExecuteQuery(sw.GetWhere(RwpTeam.s_sSqlQueryString), this, _sResourceConnString));
                tw.WriteLine(csvt.Header());
                foreach (RwpTeam rwpt in m_plrwpt)
                    tw.WriteLine(csvt.CsvMake(rwpt));

                tw.Flush();
                return RSR.Success();
            }
コード例 #23
0
 /// <summary>
 /// Visits the specified <see cref="SqlWhere"/>.
 /// </summary>
 /// <param name="expression">
 /// The expression to visit.
 /// </param>
 public virtual void Visit(SqlWhere expression)
 {
 }
コード例 #24
0
ファイル: Dvds.cs プロジェクト: rlittletht/UpcInv
        //                        0                    1                    2                     3                      4                       5                        6                              7                         8
        public void DoUpdate(string sConnectionString)
        {
            // get the set of books that we want to update
            TCore.Sql sql;

            SqlSelect sqls        = new SqlSelect(s_sBaseQuery, s_mpAliases);
            SqlWhere  swInnerJoin = new SqlWhere();

            swInnerJoin.Add("$$upc_dvd$$.ScanCode = $$upc_codes$$.ScanCode", SqlWhere.Op.And);
            sqls.AddInnerJoin(new SqlInnerJoin("$$#upc_codes$$", swInnerJoin));

            UpdateStatus flagsToUpdate = UpdateStatus.MediaType | UpdateStatus.Title | UpdateStatus.Categories | UpdateStatus.CoverSrc | UpdateStatus.Summary;

            if (m_config.ForceUpdateSummary)
            {
                flagsToUpdate |= UpdateStatus.Summary;
            }

            // we want to match any entry that hasn't tried to update ALL of our fields. (if they have tried some,
            // but not others, then try again. after all, we might know more fields now that we want to update.
            sqls.Where.Add($"$$upc_dvd$$.UpdateStatus & {(int)flagsToUpdate} <> {(int)flagsToUpdate}", SqlWhere.Op.And);
            sqls.Where.StartGroup(SqlWhere.Op.And);
            sqls.Where.Add(String.Format("$$upc_dvd$$.LastUpdate < '{0}'", DateTime.Now.ToString("d")), SqlWhere.Op.And);
            sqls.Where.Add("$$upc_dvd$$.LastUpdate IS NULL", SqlWhere.Op.Or);
            sqls.Where.EndGroup();

            // and lets update the latest scanned items first
            sqls.AddOrderBy("$$upc_codes$$.LastScanDate DESC");

            SR sr = Sql.OpenConnection(out sql, sConnectionString);

            if (!sr.Succeeded)
            {
                throw new Exception(sr.Reason);
            }

            // from this point on, we have to release the sql connection!!
            int cFailed = 0;

            try
            {
                sr = Sql.ExecuteQuery(sql, sqls.ToString(), this, null);

                if (!sr.Succeeded)
                {
                    throw new Exception(sr.Reason);
                }

                foreach (DvdElementEx dvdex in m_plDvd)
                {
                    string sError;

                    Console.WriteLine($"Trying to scrape dvd {dvdex.ScanCode}: {dvdex.Title}...");
                    DVD.ScrapeSet scrapedSet = 0;

                    if (m_config.ForceUpdateSummary)
                    {
                        dvdex.Summary = null;
                    }

                    if (DVD.FScrapeDvd(dvdex, out scrapedSet, out sError))
                    {
                        // we might not have scraped everything, but we scraped something...

                        if (scrapedSet.HasFlag(DVD.ScrapeSet.CoverSrc) && !DownloadCoverForDvd(dvdex, m_config.LocalCoverRoot, "covers", out sError))
                        {
                            Console.WriteLine($"FAILED: to download cover art: {sError}");
                            LogDvdUpdateError(dvdex, scrapedSet, sError);
                        }
                        else
                        {
                            Console.WriteLine(
                                $"SUCCEEDED: MediaType: {dvdex.MediaType}, Classification: {dvdex.Classification}");
                            AddDVDToUpdateQueue(dvdex, scrapedSet);
                        }
                    }
                    else
                    {
                        Console.WriteLine($"FAILED: {sError}");
                        LogDvdUpdateError(dvdex, scrapedSet, sError);
                        cFailed++;
                        if (cFailed > 150)
                        {
                            throw new Exception("giving up");
                        }
                    }
                }
            }
            finally
            {
                sql.Close();
            }
        }
コード例 #25
0
 public void ExpressionType_ReturnsWhere()
 {
     var where = new SqlWhere(SqlExpression.Equal("Id", 5));
     Assert.Equal(SqlExpressionType.Where, where.ExpressionType);
 }
コード例 #26
0
 public void ExpressionType_ReturnsWhere()
 {
     var where = new SqlWhere(SqlExpression.Equal("Id", 5));
     Assert.Equal(SqlExpressionType.Where, where.ExpressionType);
 }