/// <summary> /// Выбираем пользователей, которые подписаны на портфель, и отписываем их от портфеля /// </summary> /// <param name="id">уникальный идентификатор портфеля</param> /// <returns></returns> private static bool UnsubscribeSubscribersFromPortfolio(int id) { var errorsUnsubscribe = new List <string>(); try { using (var ctx = DatabaseContext.Instance.Make()) { var logins = ctx.USER_TOP_PORTFOLIO.Where(x => x.Portfolio == id).Select(x => x.PLATFORM_USER.Login); var proxy = new TradeSharpServerTrade(EmptyTradeSharpCallbackReceiver.Instance).proxy; Logger.Info("Начинаем отписывать пользователей от портфеля id = " + id); foreach (var login in logins) { var result = proxy.UnsubscribePortfolio(ProtectedOperationContext.MakeServerSideContext(), login, false, true); if (result != RequestStatus.OK) { errorsUnsubscribe.Add(login); } } } if (errorsUnsubscribe.Count > 0) { Logger.Error(string.Format("От портфеля {0} не удалось отписать следующих пользователей: {1}", id, string.Join(Environment.NewLine, errorsUnsubscribe))); return(false); } return(true); } catch (Exception ex) { Logger.Error("UnsubscribeOnPortfolio()", ex); return(false); } }
/// <summary> /// Выбираем пользователей, которые подписаны на портфель, и отписываем их от портфеля /// </summary> /// <param name="id">уникальный идентификатор портфеля</param> /// <returns></returns> private static bool UnsubscribeSubscribersFromPortfolio(int id) { var errorsUnsubscribe = new List<string>(); try { using (var ctx = DatabaseContext.Instance.Make()) { var logins = ctx.USER_TOP_PORTFOLIO.Where(x => x.Portfolio == id).Select(x => x.PLATFORM_USER.Login); var proxy = new TradeSharpServerTrade(EmptyTradeSharpCallbackReceiver.Instance).proxy; Logger.Info("Начинаем отписывать пользователей от портфеля id = " + id); foreach (var login in logins) { var result = proxy.UnsubscribePortfolio(ProtectedOperationContext.MakeServerSideContext(), login, false, true); if (result != RequestStatus.OK) errorsUnsubscribe.Add(login); } } if (errorsUnsubscribe.Count > 0) { Logger.Error(string.Format("От портфеля {0} не удалось отписать следующих пользователей: {1}", id, string.Join(Environment.NewLine, errorsUnsubscribe))); return false; } return true; } catch (Exception ex) { Logger.Error("UnsubscribeOnPortfolio()", ex); return false; } }