/// <summary>
        /// Retrieves all record..
        /// </summary>
        public RESTQueryResponse <T> GetByQuery <T>(string query)
        {
            var response = new RESTQueryResponse <T>();

            try
            {
                _TableName = TableResolver.GetTableName <T>();
                var request = new RestRequest(Method.GET);
                ServiceNowClient.BaseUrl = new Uri(URL);
                IRestResponse res = ServiceNowClient.Execute(request);

                if (res.StatusCode == HttpStatusCode.OK)
                {
                    RESTQueryResponse <T> tmp = JsonConvert.DeserializeObject <RESTQueryResponse <T> >(res.Content);
                    if (tmp != null)
                    {
                        response.Result = tmp.Result;
                    }
                }
            }
            catch (WebException ex)
            {
                response.ErrorMsg = ParseWebException(ex);
            }
            catch (Exception ex)
            {
                response.ErrorMsg = "An error occured retrieving the REST response: " + ex.Message;
            }

            return(response);
        }
Example #2
0
        protected override OutputData DoGet(IInputData input)
        {
            using (TableResolver resolver = PlugInFactoryManager.CreateInstance <TableResolver>(
                       ResolverPlugInFactory.REG_NAME, "TaxDocument", this))
            {
                MetaDataTableResolver metaResolver = resolver as MetaDataTableResolver;
                string conditionStr = string.Empty;
                if (metaResolver != null)
                {
                    Dictionary <string, string> query = new Dictionary <string, string>
                    {
                        { "Title", input.QueryString["Title"] }
                    };

                    IParamBuilder builder = metaResolver.GetQueryCondition(new QueryConditionObject(false, query));
                    if (builder != null)
                    {
                        QueryCondition condition = new QueryCondition(query, builder);
                        conditionStr = "&Condition=" + HttpUtility.UrlEncode(condition.ToEncodeString());
                    }
                }
                string url = WebUtil.ResolveUrl("~/Library/WebListXmlPage.tkx?Source=Cxcs/FaGui");
                return(OutputData.Create(url + conditionStr));
            }
        }
        public RESTSingleResponse <TResult> Post <TResult, TParam>(TParam @params)
        {
            string _params = JsonConvert.SerializeObject(@params, Formatting.None, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });
            var response = new RESTSingleResponse <TResult>();

            _TableName = TableResolver.GetTableName <TResult>();
            var request = new RestRequest(Method.POST);

            ServiceNowClient.BaseUrl = new Uri(URL);

            request.AddParameter("application/json", _params, ParameterType.RequestBody);

            IRestResponse res = ServiceNowClient.Execute(request);

            if (res.StatusCode != HttpStatusCode.BadRequest)
            {
                RESTSingleResponse <TResult> tmp = JsonConvert.DeserializeObject <RESTSingleResponse <TResult> >(res.Content);
                if (tmp != null)
                {
                    response.Result = tmp.Result;
                }
            }
            return(response);
        }
        public RESTSingleResponse <TResult> Put <TResult, TParam>(TParam @params, string id)
        {
            string _params = JsonConvert.SerializeObject(@params, Formatting.None, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });
            var response = new RESTSingleResponse <TResult>();

            _TableName = TableResolver.GetTableName <TResult>();
            var request = new RestRequest(Method.PUT);

            ServiceNowClient.BaseUrl = new Uri($"{URL}/{id}");

            request.AddHeader("accept", "application/json");
            //request.AddHeader("authorization", "Basic T01TX0FwcF9Vc2VyOjBzY2FyOTk=");
            //request.AddHeader("content-type", "application/json");

            request.AddParameter("application/json", _params, ParameterType.RequestBody);

            IRestResponse res = ServiceNowClient.Execute(request);

            if (res.StatusCode != HttpStatusCode.BadRequest)
            {
                RESTSingleResponse <TResult> tmp = JsonConvert.DeserializeObject <RESTSingleResponse <TResult> >(res.Content);
                if (tmp != null)
                {
                    response.Result = tmp.Result;
                }
            }
            return(response);
        }
        public RESTQueryResponse <TResult> GetByQuery <TResult, TParam>(TParam param) where TParam : class
        {
            var response = new RESTQueryResponse <TResult>();

            try
            {
                var query = ParameterParser.Parse(param);
                _TableName = TableResolver.GetTableName <TResult>();
                var request = new RestRequest(Method.GET);
                ServiceNowClient.BaseUrl = new Uri($"{URL}?{query}");
                IRestResponse res = ServiceNowClient.Execute(request);

                if (res.StatusCode == HttpStatusCode.OK)
                {
                    RESTQueryResponse <TResult> tmp = JsonConvert.DeserializeObject <RESTQueryResponse <TResult> >(res.Content);
                    if (tmp != null)
                    {
                        response.Result = tmp.Result;
                    }
                }
            }
            catch (WebException ex)
            {
                response.ErrorMsg = ParseWebException(ex);
            }
            catch (Exception ex)
            {
                response.ErrorMsg = "An error occured retrieving the REST response: " + ex.Message;
            }

            return(response);
        }
Example #6
0
        public static void FillCodeTable(this TableResolver resolver, IPageStyle style)
        {
            MetaDataTableResolver metaResolver = resolver as MetaDataTableResolver;

            if (metaResolver != null)
            {
                metaResolver.FillCodeTable(style);
            }
        }
Example #7
0
        private static void ReadDb()
        {
            EmptyDbDataSource source = new EmptyDbDataSource();
            TableResolver resolver = new TableResolver("WE_CORP_USER", source);

            resolver.Select();
            foreach (DataRow row in resolver.HostTable.Rows)
            {
                CorpUser user = new CorpUser("1", "user", new int[] { 1 });
                user.ReadFromDataRow(row, "CorpUser");
                Console.WriteLine(user);
            }
        }
Example #8
0
        private static void Synchronize()
        {
            var luser = CorpDepartment.GetAllUsers(1, true);
            Dictionary<string, bool> userId = new Dictionary<string, bool>();
            foreach (var lu in luser.UserList)
                userId.Add(lu.Id, false);

            Dictionary<string, CorpUser> DbId = new Dictionary<string, CorpUser>();
            EmptyDbDataSource source = new EmptyDbDataSource();
            TableResolver resolver = new TableResolver("WE_CORP_USER", source);
            resolver.Select();

            foreach (DataRow db in resolver.HostTable.Rows)
            {
                CorpUser user = new CorpUser("1", "user", new int[] { 1 });
                bool isDelete = db["ValidFlag"].Value<bool>();
                user.ReadFromDataRow(db, "CorpUser");

                if (isDelete == true)
                {
                    user.Delete();
                }
                else
                {
                    user.Enable = true;
                    DbId.Add(user.Id, user);
                }
            }

            foreach (var v in DbId)
                if (userId.ContainsKey(v.Key))
                {
                    userId[v.Key] = true;
                    v.Value.Update();
                }
                else
                {
                    userId.Add(v.Key, true);
                    v.Value.Create();
                }

            var remainder = from u in userId
                            where !u.Value
                            select u.Key;

            foreach (var rd in remainder)
            {
                CorpUser user = new CorpUser(rd, "user", new int[] { 1 });
                user.Delete();
            }
        }
 public HttpStatusCode Delete <T>(string id)
 {
     try
     {
         _TableName = TableResolver.GetTableName <T>();
         var request = new RestRequest(Method.DELETE);
         ServiceNowClient.BaseUrl = new Uri(URL + "/" + id);
         IRestResponse res = ServiceNowClient.Execute(request);
         return(res.StatusCode);
     }
     catch (WebException ex)
     {
         string ErrorMsg = ParseWebException(ex);
         throw new Exception(ErrorMsg);
     }
 }
Example #10
0
 public BaseSendMessage Reply(ReceiveMessage message)
 {
     TkDbContext context = DbContextUtil.CreateDbContext("Weixin");
     using (EmptyDbDataSource source = new EmptyDbDataSource() { Context = context})
     using (TableResolver resolver = new TableResolver("WE_CORP_APP_LOG", source))
     {
         resolver.SetCommands(AdapterCommand.Insert);
         DataRow row = resolver.NewRow();
         row.BeginEdit();
         row["LogId"] = resolver.CreateUniId();
         row["AppId"] = message.AgentId;
         row["CreateDate"] = message.CreateTime;
         row["UserId"] = message.FromUserName;
         row.EndEdit();
         resolver.UpdateDatabase();
     } 
     return null;
 }
Example #11
0
        private static void DownSync()
        {
            WeFanContainter container = WeFanContainter.GetFans();
            DateTime timeNow = DateTime.Now;
            int timeVersion = (int)timeNow.ToOADate();

            using (EmptyDbDataSource source = new EmptyDbDataSource())
            using (TableResolver resolver = new TableResolver("WE_USER", source))
            {
                resolver.SetCommands(AdapterCommand.Insert | AdapterCommand.Update);
                while (true)
                {
                    if (container.OpenIds == null)
                        break;
                    foreach (var openId in container.OpenIds)
                    {
                        WeUser user = WeUser.GetUser(openId);
                        DataRow row = resolver.TrySelectRowWithKeys(openId);
                        if (row == null)
                            row = resolver.NewRow();
                        user.AddToDataRow(row, WeConst.USER_MODE);
                        row["Version"] = timeVersion;
                    }
                    resolver.UpdateDatabase();
                    resolver.HostTable.Rows.Clear();
                    if (string.IsNullOrEmpty(container.NextOpenId))
                        break;
                    else
                        container = WeFanContainter.GetFans(container);
                }

                resolver.HostTable.Rows.Clear();
                IParamBuilder builder = SqlParamBuilder.CreateParamBuilder(
                    SqlParamBuilder.CreateSingleSql(source.Context, "WU_VERSION", TkDataType.Int, "!=", timeVersion),
                    ParamBuilder.CreateSql("WU_SUBSCRIBE = 1"));
                resolver.Select(builder);
                foreach (DataRow row in resolver.HostTable.Rows)
                {
                    row["subscribe"] = 0;
                }
                resolver.UpdateDatabase();
            }
        }
Example #12
0
        static void Main(string[] args)
        {
            if (!ConsoleApp.Initialize())
                return;

            string fileName = @"D:\C#\微信完整分类.csv";
            DataSet dSet = CSVUtility.OpenCSV(fileName);

            using (EmptyDbDataSource source = new EmptyDbDataSource())
            using (TableResolver resolver = new TableResolver("WE_CATEGORY", source))
            {
                resolver.SetCommands(AdapterCommand.Insert);
                DataRow newRow;
                foreach (DataRow row in dSet.Tables[0].Rows)
                {
                    newRow = resolver.NewRow();
                    row.AddToDataRow(newRow);
                }
               // resolver.UpdateDatabase();
            }
        }
Example #13
0
        public static void DownSync()
        {
            WeFanContainter container = WeFanContainter.GetFans();
            DateTime timeNow = DateTime.Now;
            int timeVersion = (int)timeNow.ToOADate();

            using (EmptyDbDataSource source = new EmptyDbDataSource())
            using (TableResolver resolver = new TableResolver("WE_USER", source))
            using (TableResolver subResolver = new TableResolver("WE_SUBSCRIBE_DATA", source))
            {
                subResolver.SetCommands(AdapterCommand.Insert);
                resolver.SetCommands(AdapterCommand.Insert | AdapterCommand.Update);
                while (true)
                {
                    if (container.OpenIds == null)
                        break;
                    foreach (var openId in container.OpenIds)
                    {
                        WeUser user = WeUser.GetUser(openId);
                        DataRow row = resolver.TrySelectRowWithKeys(openId);
                        if (row == null)
                        {
                            row = resolver.NewRow();
                            DataRow subRow = subResolver.NewRow();
                            subRow.BeginEdit();
                            subRow["Id"] = subResolver.CreateUniId();
                            subRow["OpenId"] = openId;
                            subRow["SubscribeDate"] = user.SubscribeTime;
                            subRow["IsSubscribe"] = 1;
                            subRow.EndEdit();
                        }
                        user.AddToDataRow(row, WeConst.USER_MODE);
                        row["Version"] = timeVersion;
                    }
                    UpdateUtil.UpdateTableResolvers(source.Context, (Action<Transaction>)null, resolver, subResolver);
                    resolver.HostTable.Rows.Clear();
                    subResolver.HostTable.Rows.Clear();
                    if (string.IsNullOrEmpty(container.NextOpenId))
                        break;
                    else
                        container = WeFanContainter.GetFans(container);
                }

                resolver.HostTable.Rows.Clear();
                subResolver.HostTable.Rows.Clear();
                IParamBuilder builder = SqlParamBuilder.CreateParamBuilder(
                    SqlParamBuilder.CreateSingleSql(source.Context, "WU_VERSION", TkDataType.Int, "!=", timeVersion),
                    ParamBuilder.CreateSql("WU_SUBSCRIBE = 1"));

                resolver.Select(builder);
                if (resolver.HostTable.Rows.Count > 0)
                {
                    foreach (DataRow row in resolver.HostTable.Rows)
                    {
                        row["subscribe"] = 0;
                        DataRow subRow = subResolver.NewRow();
                        subRow.BeginEdit();
                        subRow["Id"] = subResolver.CreateUniId();
                        subRow["OpenId"] = row["OpenId"];
                        subRow["Subscribe"] = DateTime.Now;
                        subRow["IsSubscribe"] = 0;
                        subRow.EndEdit();
                    }
                    UpdateUtil.UpdateTableResolvers(source.Context, (Action<Transaction>)null, resolver, subResolver);
                }
            }
        }
Example #14
0
        public static void DownSync()
        {
            WeFanContainter container = WeFanContainter.GetFans();
            DateTime timeNow = DateTime.Now;
            int timeVersion = (int)timeNow.ToOADate();

            // 公众号测试
            string description = "这是一家创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式";
            string picUrl = "http://p.img.eol.cn/images/1022/2011/0919/1316394859_12_iyeh.jpg";
            Article ar = new Article()
            {
                Title = "企业简介",
                Description = description,
                Url = "http://baike.sogou.com/v6234.htm",
                PicUrl = picUrl
            };
            //NewsCorpMessage n = new NewsCorpMessage();
            //n.SetAllUser();
            //n.Add(ar);
            //WeixinResult result = n.Send(1);

            string oppid = "oyyPUjvZNtOaKqJ3Nh5KIOOsclGA";
            NewsServiceMessage nMsg = new NewsServiceMessage(oppid);
            //TextServiceMessage tMsg = new TextServiceMessage(oppid, "你们在干什么呢?");
            nMsg.Add(ar);
            //WeixinResult result = nMsg.Send();
            WeixinResult result = nMsg.Send();
            Console.WriteLine(result);
            //公众号测试

            using (EmptyDbDataSource source = new EmptyDbDataSource())
            using (TableResolver resolver = new TableResolver("WE_USER", source))
            using (TableResolver subResolver = new TableResolver("WE_SUBSCRIBE_DATA", source))
            {
                subResolver.SetCommands(AdapterCommand.Insert);
                resolver.SetCommands(AdapterCommand.Insert | AdapterCommand.Update);
                while (true)
                {
                    if (container.OpenIds == null)
                        break;
                    foreach (var openId in container.OpenIds)
                    {
                        WeUser user = WeUser.GetUser(openId);
                        DataRow row = resolver.TrySelectRowWithKeys(openId);
                        if (row == null)
                        {
                            row = resolver.NewRow();
                            DataRow subRow = subResolver.NewRow();
                            subRow.BeginEdit();
                            subRow["Id"] = subResolver.CreateUniId();
                            subRow["OpenId"] = openId;
                            subRow["SubscribeDate"] = user.SubscribeTime;
                            subRow["IsSubscribe"] = 1;
                            subRow.EndEdit();
                        }
                        user.AddToDataRow(row, WeConst.USER_MODE);
                        row["Version"] = timeVersion;
                    }
                    UpdateUtil.UpdateTableResolvers(source.Context, (Action<Transaction>)null, resolver, subResolver);
                    resolver.HostTable.Rows.Clear();
                    //subResolver.HostTable.Rows.Clear();
                    if (string.IsNullOrEmpty(container.NextOpenId))
                        break;
                    else
                        container = WeFanContainter.GetFans(container);
                }

                resolver.HostTable.Rows.Clear();
                // subResolver.HostTable.Rows.Clear();
                IParamBuilder builder = SqlParamBuilder.CreateParamBuilder(
                    SqlParamBuilder.CreateSingleSql(source.Context, "WU_VERSION", TkDataType.Int, "!=", timeVersion),
                    ParamBuilder.CreateSql("WU_SUBSCRIBE = 1"));

                resolver.Select(builder);
                if (resolver.HostTable.Rows.Count > 0)
                {
                    foreach (DataRow row in resolver.HostTable.Rows)
                    {
                        row["subscribe"] = 0;
                        DataRow subRow = subResolver.NewRow();
                        subRow.BeginEdit();
                        subRow["Id"] = subResolver.CreateUniId();
                        subRow["OpenId"] = row["OpenId"];
                        subRow["Subscribe"] = DateTime.Now;
                        subRow["IsSubscribe"] = 0;
                        subRow.EndEdit();
                    }
                    UpdateUtil.UpdateTableResolvers(source.Context, (Action<Transaction>)null, resolver, subResolver);
                }
            }
        }
Example #15
0
        public static void UpSync()
        {
            var luser = CorpDepartment.GetAllUsers(1, true);
            Dictionary<string, bool> userId = new Dictionary<string, bool>();
            foreach (var lu in luser.UserList)
                userId.Add(lu.Id, false);

            Dictionary<string, Tuple<CorpUser, DataRow>> DbId = new Dictionary<string, Tuple<CorpUser, DataRow>>();
            EmptyDbDataSource source = new EmptyDbDataSource();
            TableResolver resolver = new TableResolver("WE_CORP_USER", source);
            resolver.SetCommands(AdapterCommand.Update);
            resolver.Select();

            foreach (DataRow db in resolver.HostTable.Rows)
            {
                CorpUser user = new CorpUser("1", "user", new int[] { 1 });
                bool isDelete = db["ValidFlag"].Value<bool>();
                user.ReadFromDataRow(db, "CorpUser");

                if (!isDelete)
                {
                    user.Enable = true;
                    Tuple<CorpUser, DataRow> tup = new Tuple<CorpUser, DataRow>(user, db);
                    DbId.Add(user.Id, tup);
                }
            }

            foreach (var v in DbId)
                if (userId.ContainsKey(v.Key))
                {
                    var userStatus = CorpUser.GetUser(v.Key).Status;
                    bool changed = false;

                    if (userStatus == UserStatus.Attention)
                    {
                        if (v.Value.Item2["AttentionFlag"].Value<int>() != ATTEN)
                        {
                            v.Value.Item2["AttentionFlag"] = ATTEN;
                            changed = true;
                        }
                    }
                    else if (v.Value.Item2["AttentionFlag"].Value<int>() == ATTEN)
                    {
                        v.Value.Item2["AttentionFlag"] = NOATTEN;
                        changed = true;
                    }

                    if (changed)
                        resolver.UpdateDatabase();

                    userId[v.Key] = true;
                    var result = v.Value.Item1.Update();
                    if (result.IsError)
                        Console.WriteLine("Update Error : User:{0}, {1}", v.Value.Item1.Name, result);
                }
                else
                {
                    userId.Add(v.Key, true);
                    var result = v.Value.Item1.Create();
                    if (result.IsError)
                        Console.WriteLine("Create Error : User:{0}, {1}", v.Value.Item1.Name, result);
                }

            var remainder = from u in userId
                            where !u.Value
                            select u.Key;

            foreach (var rd in remainder)
            {
                CorpUser user = new CorpUser(rd, "user", new int[] { 1 });
                var result = user.Delete();
                if (result.IsError)
                    Console.WriteLine("Delete Error : User:{0}, {1}", rd, result);
            }
        }