Пример #1
0
        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());
        }
        private string Serialize(IEnumerable<GroupQueueItem> items)
        {
            SeparatedStringBuilder stringBuilder = new SeparatedStringBuilder("; ");

            foreach (var item in items)
            {
                stringBuilder.AppendFormatWithSeparator("<{0}>", item.VkGroupId.ToString());
            }

            return stringBuilder.ToString();
        }    
Пример #3
0
        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());
        }
Пример #4
0
        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());
        }
Пример #5
0
        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 });
            }
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }