예제 #1
0
        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);
        }
예제 #2
0
        // массовый запрос на информацию о пользователях
        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);
        }
예제 #3
0
        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);
        }