protected void Page_Load(object sender, EventArgs e) { userRepository = DependencyResolver.Current.GetService<IUserRepository>(); Response.ContentType = "text/plain"; int accountId; if (Request["accountId"] == null || !int.TryParse(Request["accountId"], out accountId)) { Logger.Error("Не корректно задан парамер accountId"); Response.BinaryWrite(GetErrorAvatar()); return; } if (!avatarSize.Contains(Request["size"].ToLower())) { Logger.Error("Не корректно задан парамер size"); Response.BinaryWrite(GetErrorAvatar()); return; } var user = userRepository.GetAccountOwner(accountId); if (user == null) { Logger.Error("Не найден пользователь-владелец счёта " + accountId); Response.BinaryWrite(GetErrorAvatar()); return; } dataSource = TradeSharpAccountStatistics.Instance.proxy; var userInfo = dataSource.GetUsersBriefInfo(new List<int> { user.ID }).FirstOrDefault(); if (userInfo == null) { Logger.Error("Не удалось получить подробную информацию о пользователе " + user.Login); Response.BinaryWrite(GetErrorAvatar()); return; } byte[] avatar; switch (Request["size"].ToLower()) { case "big": avatar = dataSource.ReadFiles(new List<string> { userInfo.AvatarBigFileName }).FirstOrDefault(); break; case "small": avatar = dataSource.ReadFiles(new List<string> { userInfo.AvatarSmallFileName }).FirstOrDefault(); break; default: avatar = dataSource.ReadFiles(new List<string> { userInfo.AvatarBigFileName }).FirstOrDefault(); break; } if (avatar == null) { Logger.Error("Не удалось получить файл"); Response.BinaryWrite(GetErrorAvatar()); return; } Response.BinaryWrite(avatar); }
// массовый запрос на информацию о пользователях public List <UserInfoEx> GetUsersInfo(List <int> userIds) { var result = new List <UserInfoEx>(); if (dataSource == null || userIds == null) { Logger.Info("UserInfoExCache.GetUsersInfo: server error"); return(null); } List <UserInfoEx> usersInfo; try { usersInfo = dataSource.GetUsersBriefInfo(userIds); } catch (Exception ex) { Logger.Info("UserInfoExCache.GetUsersInfo: {0}", ex); return(null); } if (usersInfo == null || usersInfo.Count != userIds.Count) { Logger.Info("UserInfoExCache.GetUsersInfo: server error"); return(null); } var requestNames = new List <string>(); var requestHashCodes = new List <string>(); foreach (var userInfo in usersInfo) { result.Add(userInfo); if (userInfo == null) { continue; } if (!string.IsNullOrEmpty(userInfo.AvatarBigFileName)) { requestNames.Add(userInfo.AvatarBigFileName); requestHashCodes.Add(userInfo.AvatarBigHashCode); } if (!string.IsNullOrEmpty(userInfo.AvatarSmallFileName)) { requestNames.Add(userInfo.AvatarSmallFileName); requestHashCodes.Add(userInfo.AvatarSmallHashCode); } if (!string.IsNullOrEmpty(userInfo.AboutFileName)) { requestNames.Add(userInfo.AboutFileName); requestHashCodes.Add(userInfo.AboutHashCode); } } var files = GetFiles(requestNames, requestHashCodes); if (files == null) { return(null); } for (var i = 0; i < requestNames.Count; i++) { var name = requestNames[i]; var data = files[i]; foreach (var info in usersInfo.Where(ui => ui != null && !string.IsNullOrEmpty(ui.AvatarBigFileName) && ui.AvatarBigFileName == name)) { info.AvatarBigData = data; } foreach (var info in usersInfo.Where(ui => ui != null && !string.IsNullOrEmpty(ui.AvatarSmallFileName) && ui.AvatarSmallFileName == name)) { info.AvatarSmallData = data; } foreach (var info in usersInfo.Where(ui => ui != null && !string.IsNullOrEmpty(ui.AboutFileName) && ui.AboutFileName == name)) { info.AboutData = data; } } return(result); }
protected void Page_Load(object sender, EventArgs e) { userRepository = DependencyResolver.Current.GetService <IUserRepository>(); Response.ContentType = "text/plain"; int accountId; if (Request["accountId"] == null || !int.TryParse(Request["accountId"], out accountId)) { Logger.Error("Не корректно задан парамер accountId"); Response.BinaryWrite(GetErrorAvatar()); return; } if (!avatarSize.Contains(Request["size"].ToLower())) { Logger.Error("Не корректно задан парамер size"); Response.BinaryWrite(GetErrorAvatar()); return; } var user = userRepository.GetAccountOwner(accountId); if (user == null) { Logger.Error("Не найден пользователь-владелец счёта " + accountId); Response.BinaryWrite(GetErrorAvatar()); return; } dataSource = TradeSharpAccountStatistics.Instance.proxy; var userInfo = dataSource.GetUsersBriefInfo(new List <int> { user.ID }).FirstOrDefault(); if (userInfo == null) { Logger.Error("Не удалось получить подробную информацию о пользователе " + user.Login); Response.BinaryWrite(GetErrorAvatar()); return; } byte[] avatar; switch (Request["size"].ToLower()) { case "big": avatar = dataSource.ReadFiles(new List <string> { userInfo.AvatarBigFileName }).FirstOrDefault(); break; case "small": avatar = dataSource.ReadFiles(new List <string> { userInfo.AvatarSmallFileName }).FirstOrDefault(); break; default: avatar = dataSource.ReadFiles(new List <string> { userInfo.AvatarBigFileName }).FirstOrDefault(); break; } if (avatar == null) { Logger.Error("Не удалось получить файл"); Response.BinaryWrite(GetErrorAvatar()); return; } Response.BinaryWrite(avatar); }