public string BuildCouchDbApiPostData() { var stringBuilder = new StringBuilder(); if (string.IsNullOrEmpty(SelectPart) || FromParts.Count == 0) { throw new InvalidOperationException("A query must have a select part and at least one from part."); } stringBuilder.Append("{ \"map\":\"function (doc) {"); if (WhereParts.Count > 0) { stringBuilder.AppendFormat("if ({0}) ", SeparatedStringBuilder.Build(" && ", WhereParts)); } stringBuilder.AppendFormat("emit({0}, ", !String.IsNullOrEmpty(OrderBy) ? OrderBy : "doc._id"); // TODO: use the SelectParts to only return the properties that are needed by emitting {Name: "Jeff", Title: "Awesome"} var select = "doc"; // return the entire thing by default if (!String.IsNullOrEmpty(SelectPart)) { select = SelectPart; } stringBuilder.Append(select + ");}\"}"); return(stringBuilder.ToString()); }
private string GetMemberName(responseUser memberData) { int partsCount = 0; SeparatedStringBuilder name = new SeparatedStringBuilder(" "); if (!string.IsNullOrWhiteSpace(memberData.first_name)) { name.AppendWithSeparator(memberData.first_name.Trim()); partsCount++; } if (!string.IsNullOrWhiteSpace(memberData.last_name)) { name.AppendWithSeparator(memberData.last_name.Trim()); partsCount++; } if (partsCount == 2) { return(name.ToString()); } if (!string.IsNullOrWhiteSpace(memberData.screen_name)) { return(memberData.screen_name.Trim()); } return(name.ToString()); }
public override string ToString() { var result = string.Format("Fetch ({0}.{1})", _relationMember.DeclaringType.Name, _relationMember.Name); var innerResults = InnerFetchRequests.Select(request => request.ToString()); return(SeparatedStringBuilder.Build(".Then", new[] { result }.Concat(innerResults))); }
private string Serialize(IEnumerable<GroupQueueItem> items) { SeparatedStringBuilder stringBuilder = new SeparatedStringBuilder("; "); foreach (var item in items) { stringBuilder.AppendFormatWithSeparator("<{0}>", item.VkGroupId.ToString()); } return stringBuilder.ToString(); }
private string GetDebugString(IEnumerable <MemberSubscription> subscriptions) { var builder = new SeparatedStringBuilder("; "); foreach (var subscription in subscriptions) { builder.AppendFormatWithSeparator("<{0}, {1}, {2}>", subscription.VkGroupId, subscription.VkMemberId, subscription.SubscribedVkGroupId); } return(builder.ToString()); }
public string CreateEntityId(string entityName, string majorId, params string[] minorIds) { Contract.Requires(!string.IsNullOrWhiteSpace(entityName)); Contract.Requires(!string.IsNullOrWhiteSpace(majorId)); Contract.Requires(minorIds != null); Contract.Requires(minorIds.Length > 0); SeparatedStringBuilder stringBuilder = new SeparatedStringBuilder("_", minorIds); var entityId = string.Concat(entityName.ToLower(), "_", majorId.ToLower(), "_", stringBuilder.ToString()); this.log.DebugFormat("Generated caching key: {0}", entityId); return(entityId); }
private string GetRequestUrl(string apiMethodName, Dictionary <string, string> parameters) { SeparatedStringBuilder requestUrlBuilder = new SeparatedStringBuilder("&", string.Format("{0}/{1}?", CONST_ApiUrl, apiMethodName)); parameters.Add("access_token", this.accessToken); foreach (var parameter in parameters) { requestUrlBuilder.AppendFormatWithSeparator("{0}={1}", parameter.Key, parameter.Value); } return(requestUrlBuilder.ToString()); }
public void CalculateMembersDelta(int vkGroupId, DateTime date) { this.log.DebugFormat("Start processing: vkGroupId = {0}", vkGroupId); var membersDelta = new MembersDelta { VkGroupId = vkGroupId, PostedDate = date }; using (IDataGateway dataGateway = this.dataGatewayProvider.GetDataGateway()) { var newMembers = dataGateway.Connection.Query <long>("SELECT vkmemberid FROM memberupdate WHERE vkgroupid = @vkGroupId AND isnew = @isNew", new { vkGroupId, isNew = true }).ToList(); var deletedMembers = dataGateway.Connection.Query <long>("SELECT m.vkmemberid FROM member m LEFT OUTER JOIN memberupdate mu ON (m.vkgroupid = mu.vkgroupid AND m.vkmemberid = mu.vkmemberid) WHERE m.vkgroupid = @vkGroupId AND m.isdeleted = @isDeleted AND mu.id IS NULL", new { vkGroupId, isDeleted = false }).ToList(); var newMembersBuilder = new SeparatedStringBuilder(); var deletedMembersBuilder = new SeparatedStringBuilder(); foreach (var memberId in newMembers) { newMembersBuilder.AppendWithSeparator(memberId.ToString()); } foreach (var memberId in deletedMembers) { deletedMembersBuilder.AppendWithSeparator(memberId.ToString()); } membersDelta.InIds = newMembersBuilder.ToString(); membersDelta.InCount = newMembers.Count(); membersDelta.OutIds = deletedMembersBuilder.ToString(); membersDelta.OutCount = deletedMembers.Count(); dataGateway.Connection.Execute("INSERT INTO membersdelta (vkgroupid, posteddate, second, minute, hour, day, month, year, inids, incount, outids, outcount) VALUES (@VkGroupId, @PostedDate, @Second, @Minute, @Hour, @Day, @Month, @Year, @InIds, @InCount, @OutIds, @OutCount)", membersDelta); this.log.DebugFormat( "Delta: InCount = {0}, OutCount = {1}, InIds = [{2}], OutIds = [{3}]", membersDelta.InCount, membersDelta.OutCount, membersDelta.InIds, membersDelta.OutIds); dataGateway.Connection.Execute("DELETE FROM memberupdate WHERE vkgroupid = @vkGroupId", new { vkGroupId }); var markAsDeletedQuery = string.Format("UPDATE member SET isdeleted = true WHERE vkgroupid = @vkGroupId AND vkmemberid = ANY ({0})", QueryArrayBuilder.GetString(deletedMembers.ToArray())); dataGateway.Connection.Execute(markAsDeletedQuery, new { vkGroupId }); } }
public API.Responses.Cities.response GetCities(int offset) { if (offset == int.MaxValue) { throw new ArgumentOutOfRangeException("offset", "offset must be lower than Int32.MaxValue"); } IEnumerable <int> cityIdsInt = Enumerable.Range(offset + 1, CONST_CitiesPerQuery); var cityIds = new SeparatedStringBuilder(cityIdsInt.Select(i => i.ToString())); Dictionary <string, string> parameters = new Dictionary <string, string> { { "cids", cityIds.ToString() } }; string citiesResponse = this.vkAccessor.ExecuteCall("places.getCityById.xml", parameters); API.Responses.Cities.response cities = this.responseMapper.MapResponse <API.Responses.Cities.response>(citiesResponse); cities.Feed = citiesResponse; return(cities); }
public string BuildHQLString() { var stringBuilder = new StringBuilder(); if (string.IsNullOrEmpty(SelectPart) || FromParts.Count == 0) { throw new InvalidOperationException("A query must have a select part and at least one from part."); } stringBuilder.AppendFormat("select {0}", SelectPart); stringBuilder.AppendFormat(" from {0}", SeparatedStringBuilder.Build(", ", FromParts)); if (WhereParts.Count > 0) { stringBuilder.AppendFormat(" where {0}", SeparatedStringBuilder.Build(" and ", WhereParts)); } if (OrderByParts.Count > 0) { stringBuilder.AppendFormat(" order by {0}", SeparatedStringBuilder.Build(", ", OrderByParts)); } return(stringBuilder.ToString()); }
public IEnumerable <T> Enumerable <T>() { var querystring = string.Empty; var resultType = typeof(T); var hasFilter = false; if (_queryParts.ReturnCount) { querystring += "/$count"; } querystring += "?$format=json&"; if (_queryParts.Take.HasValue) { querystring += "$top=" + _queryParts.Take.Value + "&"; } if (_queryParts.Skip.HasValue) { querystring += "$skip=" + _queryParts.Skip.Value + "&"; } if (!string.IsNullOrEmpty(_queryParts.OrderBy)) { querystring += "$orderby=" + _queryParts.OrderBy + "&"; } var filter = SeparatedStringBuilder.Build(" and ", _queryParts.WhereParts); if (!string.IsNullOrEmpty(filter)) { querystring += "$filter=" + filter + "&"; } if (!string.IsNullOrEmpty(_queryParts.SelectPart)) { querystring += "$select=" + _queryParts.SelectPart + "&"; } var fullUrl = _url + "/" + _collectionName + querystring; var json = UrlHelper.Get(fullUrl); // Netflix retuns a separate array inside d when a filter is used for some reason, so hard-coded check for now during tests hasFilter = !querystring.EndsWith("$format=json&"); //var json = ODataRequest.Execute(fullUrl, "POST", _queryParts.BuildODataApiPostData(), "application/json"); JObject res; // check for Count() [Int32] and LongCOunt() [Int64] if (_queryParts.ReturnCount && (resultType == typeof(int) || resultType == typeof(long))) { var results = new List <T>(); res = JObject.Parse(json); results.Add(res["total_rows"].ToObject <T>()); return(results); } // get the rows property and deserialize that var jobject = JsonConvert.DeserializeObject(json) as JObject; var rows = jobject["d"]; if (hasFilter) { rows = rows["results"]; } var items = rows.Select(row => row.ToObject <T>()); return(items); }
public override string ToString() { var result = "orderby " + SeparatedStringBuilder.Build(", ", Orderings); return(result); }
public void AddOrderByPart(IEnumerable <string> orderings) { OrderByParts.Insert(0, SeparatedStringBuilder.Build(", ", orderings)); }