コード例 #1
0
        public static FoundResult <User> TryGet(
            this IUsersCategory users,
            string screenName,
            ProfileFields fields   = null,
            NameCase nameCase      = null,
            bool skipAuthorization = false)
        {
            try
            {
                var result = users.Get(new List <string> {
                    screenName
                }, fields, nameCase, skipAuthorization)
                             .FirstOrDefault();

                return(result == null
                    ? FoundResult <User> .Error("Пользователь не найден.")
                    : FoundResult <User> .Success(result));
            }
            catch (InvalidUserIdException e)
            {
                return(FoundResult <User> .Error("Неверный ID пользователя", e));
            }
            catch (Exception e)
            {
                return(FoundResult <User> .Error($"Неизвестная ошибка. {e.Message}", e));
            }
        }
コード例 #2
0
 public void AddFound(string ObjectType, Guid ObjectId)
 {
     if (!string.IsNullOrEmpty(ObjectType))
     {
         FoundResult found = new FoundResult();
         found.ObjectId   = ObjectId;
         found.ObjectType = ObjectType.ToLower();
         this.Found.Add(found);
     }
 }
コード例 #3
0
 private FoundResult <Dictionary <char, double> > TryCollectCharsStat(User userInfo)
 {
     try
     {
         var stat = twitStatCollector.Collect(userInfo.Id);
         return(FoundResult <Dictionary <char, double> > .Success(stat));
     }
     catch (VkApiException e)
     {
         return(FoundResult <Dictionary <char, double> > .Error(e.Message));
     }
 }
コード例 #4
0
        private void AddResult(string text, string guid, TextPosition location, int length)
        {
            try
            {
                //resultsLock.EnterWriteLock();
                var trim = !char.IsWhiteSpace(text, location.index) && !char.IsWhiteSpace(text, location.index + length - 1);

                var lastAssetGuid = results.Count > 0 ? results[results.Count - 1].assetGuid : null;
                if (guid != lastAssetGuid)
                {
                    ++filesCount;

                    results.Add(
                        new FoundResult {
                        assetGuid = guid,
                        assetPath = AssetDatabase.GUIDToAssetPath(guid),
                        selected  = true,
                    });
                }
                else if (lastAssetGuid == null)
                {
                    ++filesCount;
                }

                var trimmed    = trim ? text.TrimStart() : text;
                var trimOffset = text.Length - trimmed.Length;
                trimmed = trim ? trimmed.TrimEnd() : text;
                var newFindResult =
                    new FoundResult {
                    description    = trimmed,
                    assetGuid      = guid,
                    assetPath      = AssetDatabase.GUIDToAssetPath(guid),
                    line           = location.line,
                    characterIndex = location.index,
                    length         = length,
                    trimOffset     = trimOffset,
                    selected       = true,
                };
                results.Add(newFindResult);
                flatResults.Add(newFindResult);
                ++resultsCount;
                resultsCountText = "Found " + resultsCount + " results in " + filesCount + " files.";
            }
            finally
            {
                //resultsLock.ExitWriteLock();
            }

            repaintOnUpdate = true;
        }
コード例 #5
0
        public FoundResult <NotifyResult> Notify(string target, string login, string password)
        {
            log.Info($"Collecting statistic of 5 post for {target}");
            var resultAuthorize = vkAuthorizer.TryAuthorize(vkApi, login, password);

            if (resultAuthorize.WasError)
            {
                log.Error($"Cannot authorize. {resultAuthorize.MessageError}");
                return(FoundResult <NotifyResult> .Error($"Не удалось авторизоваться. {resultAuthorize.MessageError}"));
            }

            var foundResultUser = vkApi.Users.TryGet(target);

            if (foundResultUser.WasError)
            {
                log.Error($"Error finding {target}. {foundResultUser.MessageError}");
                return(FoundResult <NotifyResult> .Error($"Во время поиска пользователя {target} произошла ошибка."));
            }

            var userInfo = foundResultUser.Value;

            var foundResultStat = TryCollectCharsStat(userInfo);

            if (foundResultStat.WasError)
            {
                log.Error($"Error collecting statistic. {foundResultStat.MessageError}");
                return(FoundResult <NotifyResult> .Error(foundResultStat.MessageError));
            }

            var json = JsonConvert.SerializeObject(foundResultStat.Value
                                                   .Select(e => new KeyValuePair <char, double>(e.Key, Math.Round(e.Value, 2)))
                                                   .ToDictionary(e => e.Key, e => e.Value));

            var postId = vkApi.Wall.Post(new WallPostParams
            {
                OwnerId = -181436132,
                Message = $"{userInfo.FirstName} {userInfo.LastName}, статистика для последних 5 постов: {json}"
            });

            return(FoundResult <NotifyResult> .Success(new NotifyResult { JsonStat = json, PostId = postId }));
        }
コード例 #6
0
 public void ReturnsTheExpectedElement()
 {
     FoundResult.ShouldBeTheSameAs(ExpectedResult);
 }
コード例 #7
0
 public void ReturnsAnElement()
 {
     FoundResult.ShouldNotBeNull();
 }
コード例 #8
0
 public void CollectionContainsExpectedElements()
 {
     FoundResult.ShouldHaveTheSameElementsAs(ExpectedResult[0], ExpectedResult[1]);
 }
コード例 #9
0
 public void ReturnsCollection()
 {
     FoundResult.ShouldNotBeNull();
 }
コード例 #10
0
 public void ReturnedCollectionIsEmpty()
 {
     FoundResult.ShouldBeEmpty();
 }
コード例 #11
0
        public override string ToString()
        {
            return(string.Format("{1}({2}){0}{3}({4}){0}{5}{0}{6}{0}{7}{0}{8}",
                                 " ", StartIp, StartIpNumber, EndIp, EndIpNumber, Address, AreaCode, FoundResult.GetDescription <FoundResult>(), Note));

            //return string.Format("{1}{0}{2}{0}{3}{0}{4}{0}{5}{0}{6}{0}{7}{0}{8}",
            //    "\t", StartIpNumber, EndIpNumber, StartIp, EndIp, Address, AreaCode, FoundResult.GetDescription<FoundResult>(), Note);
        }
コード例 #12
0
	private void AddResult(string text, string guid, TextPosition location, int length)
	{
		try
		{
			var resultType = ResultType.Default;
			if (validateResultFunction != null)
			{
				resultType = validateResultFunction(guid, location, length, ref referencedSymbol);
				if (resultType == ResultType.RemoveResult)
					return;
			}
			
			bool visible = CheckFiltering(resultType);
			
			//resultsLock.EnterWriteLock();
			var trim = !char.IsWhiteSpace(text, location.index) && !char.IsWhiteSpace(text, location.index + length - 1);
			
			if (visible)
			{
				var lastAssetGuid = results.Count > 0 ? results[results.Count - 1].assetGuid : null;
				if (guid != lastAssetGuid)
				{
					++filesCount;
					
					if (GroupByFile)
					{
						results.Add(
							new FoundResult {
							assetGuid = guid,
							assetPath = AssetDatabase.GUIDToAssetPath(guid),
							selected = true,
						});
					}
				}
				else if (lastAssetGuid == null)
				{
					++filesCount;
				}
			}
			
			var trimmed = trim ? text.TrimStart() : text;
			var trimOffset = text.Length - trimmed.Length;
			trimmed = trim ? trimmed.TrimEnd() : text;
			var assetPath = AssetDatabase.GUIDToAssetPath(guid);
			var newFindResult =
				new FoundResult {
					description = trimmed,
					assetGuid = guid,
					assetPath = assetPath,
					fileName = System.IO.Path.GetFileName(assetPath),
					line = location.line,
					characterIndex = location.index,
					length = length,
					trimOffset = trimOffset,
					resultType = resultType,
					selected = true,
				};
			if (visible)
			{
				results.Add(newFindResult);
				++resultsCount;
				resultsCountText = "Found " + resultsCount + " results in " + filesCount + " files.";
			}
			flatResults.Add(newFindResult);
		}
		finally
		{
			//resultsLock.ExitWriteLock();
		}
		
		repaintOnUpdate = true;
	}