private void AddStorageParameter(User user, ParameterString param) { var list = user.Teams.SelectMany(x => x.Storages).Select(x => x.Id.ToString()).Distinct().ToList(); // если список пуст - то добавляем несуществующее значение if (!list.Any()) { list.Add("0"); } if (param.Keys.Contains("Storage")) { var storageValue = param["Storage"].Value as string; if (!String.IsNullOrEmpty(storageValue)) { if (!list.Contains(param["Storage"].Value as string)) { param["Storage"].Value = "0"; //т.к. указано МХ, на которое у пользователя нет прав } } else { param["Storage"].Value = list; } } else { param.Add("Storage", ParameterStringItem.OperationType.OneOf, list); } }
public override bool Equals(object o) { if (!(o is Scripting)) { return(false); } Scripting v = o as Scripting; if (!Enabled.Equals(v.Enabled)) { return(false); } if (!ParameterString.Equals(v.ParameterString)) { return(false); } if (!ScriptFile.Equals(v.ScriptFile)) { return(false); } if (!WaitForScript.Equals(v.WaitForScript)) { return(false); } return(true); }
/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyLinnCoUkExaktInputs1(ICpDevice aDevice) : base("linn-co-uk", "ExaktInputs", 1, aDevice) { OpenHome.Net.Core.Parameter param; List <String> allowedValues = new List <String>(); iActionGetAssociation = new OpenHome.Net.Core.Action("GetAssociation"); param = new ParameterUint("InputIndex"); iActionGetAssociation.AddInputParameter(param); param = new ParameterString("DeviceId", allowedValues); iActionGetAssociation.AddOutputParameter(param); iActionSetAssociation = new OpenHome.Net.Core.Action("SetAssociation"); param = new ParameterUint("InputIndex"); iActionSetAssociation.AddInputParameter(param); param = new ParameterString("DeviceId", allowedValues); iActionSetAssociation.AddInputParameter(param); iActionClearAssociation = new OpenHome.Net.Core.Action("ClearAssociation"); param = new ParameterUint("InputIndex"); iActionClearAssociation.AddInputParameter(param); iActionInputCount = new OpenHome.Net.Core.Action("InputCount"); param = new ParameterUint("InputCount"); iActionInputCount.AddOutputParameter(param); iAssociations = new PropertyString("Associations", AssociationsPropertyChanged); AddProperty(iAssociations); iPropertyLock = new Mutex(); }
/// <summary> /// Constructor for string input argument for an action /// </summary> /// <remarks>Intended to be write only (its value is written on construction and not be later read)</remarks> /// <param name="aParameter">Defines the name plus any bounds to the value for the argument. /// Must have been previously added to the action using Action.AddInputParameter</param> /// <param name="aValue">Value for the argument</param> public ArgumentString(ParameterString aParameter, String aValue) { IntPtr value = InteropUtils.StringToHGlobalUtf8(aValue); iHandle = ActionArgumentCreateStringInput(aParameter.Handle(), value); Marshal.FreeHGlobal(value); }
public IList <ProductionOrderPayment> GetPaymentsFilteredList(object state, ParameterString parameterString) { ReadState(state); // Читаем данные из объекта state ParameterString df = new ParameterString(filter); ParameterString dp = new ParameterString(parameters); var producerId = ValidationUtils.TryGetInt(dp["ProducerId"].Value as string); var productionOrderPaymentTypeId = ValidationUtils.TryGetInt(dp["ProductionOrderPaymentTypeId"].Value as string); #region Фильтр var crit = Query <ProductionOrderPayment>(); crit.Where(x => x.Type == (ProductionOrderPaymentType)productionOrderPaymentTypeId); crit.Restriction <ProductionOrder>(x => x.ProductionOrder).Where(x => x.Producer.Id == producerId); CreateFilter(crit); #endregion int totalRowCount = crit.Count(); WriteTotalRowCount(state, totalRowCount); // Записываем общее кол-во строк SortByCriteria(crit, sort); // Вычисляем начальную и конечную строку страницы int maxPage = (totalRowCount + pageSize - 1) / pageSize; currentPage = currentPage > maxPage ? maxPage : currentPage; return(crit.SetFirstResult((currentPage - 1) * pageSize).SetMaxResults(pageSize).ToList <ProductionOrderPayment>()); }
/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyAvOpenhomeOrgNetworkMonitor1(CpDevice aDevice) : base("av-openhome-org", "NetworkMonitor", 1, aDevice) { OpenHome.Net.Core.Parameter param; List <String> allowedValues = new List <String>(); iActionName = new OpenHome.Net.Core.Action("Name"); param = new ParameterString("Name", allowedValues); iActionName.AddOutputParameter(param); iActionPorts = new OpenHome.Net.Core.Action("Ports"); param = new ParameterUint("Sender"); iActionPorts.AddOutputParameter(param); param = new ParameterUint("Receiver"); iActionPorts.AddOutputParameter(param); param = new ParameterUint("Results"); iActionPorts.AddOutputParameter(param); iName = new PropertyString("Name", NamePropertyChanged); AddProperty(iName); iSender = new PropertyUint("Sender", SenderPropertyChanged); AddProperty(iSender); iReceiver = new PropertyUint("Receiver", ReceiverPropertyChanged); AddProperty(iReceiver); iResults = new PropertyUint("Results", ResultsPropertyChanged); AddProperty(iResults); iPropertyLock = new Mutex(); }
private void InvokeUserDisconnect(object sender, EventArgs e) { NetCommand command = sender as NetCommand; if (command == null) { return; } ParameterInt32 hash = command.Parameters["hash"] as ParameterInt32; ParameterString un = command.Parameters["un"] as ParameterString; for (int i = 0; i < lvwUsers.Items.Count; i++) { if (hash.Value.Equals(lvwUsers.Items[i].Tag)) { lvwUsers.Items.RemoveAt(i); break; } } _Manager.Disconnected(un.Value); command.Response = new NetResponse(true); }
/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyLinnCoUkConfiguration1(ICpDevice aDevice) : base("linn-co-uk", "Configuration", 1, aDevice) { OpenHome.Net.Core.Parameter param; List <String> allowedValues = new List <String>(); iActionConfigurationXml = new OpenHome.Net.Core.Action("ConfigurationXml"); param = new ParameterString("aConfigurationXml", allowedValues); iActionConfigurationXml.AddOutputParameter(param); iActionParameterXml = new OpenHome.Net.Core.Action("ParameterXml"); param = new ParameterString("aParameterXml", allowedValues); iActionParameterXml.AddOutputParameter(param); iActionSetParameter = new OpenHome.Net.Core.Action("SetParameter"); param = new ParameterString("aTarget", allowedValues); iActionSetParameter.AddInputParameter(param); param = new ParameterString("aName", allowedValues); iActionSetParameter.AddInputParameter(param); param = new ParameterString("aValue", allowedValues); iActionSetParameter.AddInputParameter(param); iConfigurationXml = new PropertyString("ConfigurationXml", ConfigurationXmlPropertyChanged); AddProperty(iConfigurationXml); iParameterXml = new PropertyString("ParameterXml", ParameterXmlPropertyChanged); AddProperty(iParameterXml); iPropertyLock = new Mutex(); }
/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyLinnCoUkPrivacy1(ICpDevice aDevice) : base("linn-co-uk", "Privacy", 1, aDevice) { OpenHome.Net.Core.Parameter param; List <String> allowedValues = new List <String>(); iActionGetPolicyVersion = new OpenHome.Net.Core.Action("GetPolicyVersion"); param = new ParameterUint("Version"); iActionGetPolicyVersion.AddOutputParameter(param); iActionGetPolicyAgreed = new OpenHome.Net.Core.Action("GetPolicyAgreed"); param = new ParameterUint("Version"); iActionGetPolicyAgreed.AddOutputParameter(param); iActionGetPolicyDetails = new OpenHome.Net.Core.Action("GetPolicyDetails"); param = new ParameterString("Details", allowedValues); iActionGetPolicyDetails.AddOutputParameter(param); iActionSetPolicyDetails = new OpenHome.Net.Core.Action("SetPolicyDetails"); param = new ParameterString("Details", allowedValues); iActionSetPolicyDetails.AddInputParameter(param); iPolicyVersion = new PropertyUint("PolicyVersion", PolicyVersionPropertyChanged); AddProperty(iPolicyVersion); iPolicyAgreed = new PropertyUint("PolicyAgreed", PolicyAgreedPropertyChanged); AddProperty(iPolicyAgreed); iPolicyDetails = new PropertyString("PolicyDetails", PolicyDetailsPropertyChanged); AddProperty(iPolicyDetails); iPropertyLock = new Mutex(); }
/// <summary> /// Парсинг параметров в дерево /// </summary> /// <param name="paramStr">парметры</param> /// <param name="separator">Символ разделитель элементов строки</param> public void Parse(ParameterString paramStr, char separator) { foreach (var key in paramStr.Keys) { ParseItem(paramStr[key], separator); } }
public IList <CurrencyRate> GetCurrencyRateFilteredList(object state, Utils.ParameterString parameterString, bool ignoreDeletedRows = true) { ReadState(state); var crit = Query <CurrencyRate>(); //Создаем критерий var ps = new ParameterString(filter); filter = ""; if (ps["Date"] != null) { var dates = (ps["Date"].Value as string).Split('-'); DateTime?date1 = null; if (dates[0].Length > 0) { date1 = ValidationUtils.TryGetDate(dates[0]); date1 = date1.Value.SetHoursMinutesAndSeconds(0, 0, 0); } DateTime?date2 = null; if (dates[1].Length > 0) { date2 = ValidationUtils.TryGetDate(dates[1]); date2 = date2.Value.SetHoursMinutesAndSeconds(23, 59, 59); } // Фильтруем записи if (date1 != null && date2 != null) { crit.Where(x => (x.StartDate >= date1 && x.StartDate <= date2) || (x.EndDate >= date1 && x.EndDate <= date2)); } else if (date1 != null && date2 == null) { crit.Where(x => x.StartDate >= date1 || x.EndDate >= date1); } else if (date1 == null && date2 != null) { crit.Where(x => x.StartDate <= date2 || (x.EndDate <= date2 && x.EndDate != null)); } } parameterString.Delete("Date"); this.parameterString = parameterString; CreateFilter(crit); int totalRowCount = crit.CountDistinct(); WriteTotalRowCount(state, totalRowCount); //Записываем общее кол-во строк SortByCriteria(crit, sort); //Сортируем выборку state.GetType().GetMethod("CheckAndCorrectCurrentPage").Invoke(state, null); //приводит текущую страницу к корректному значению currentPage = (int)state.GetType().GetProperty("CurrentPage").GetValue(state, null); crit.SetFirstResult((currentPage - 1) * pageSize).SetMaxResults(pageSize); this.parameterString = null; return(crit.ToList <CurrencyRate>()); }
/// <summary> /// Получение отфильтрованного списка контрагентов /// </summary> /// <param name="state"></param> /// <param name="user"></param> /// <returns></returns> public IEnumerable <Contractor> GetContractorByUser(object state, User user) { List <string> types = new List <string>(); if (user.HasPermission(Permission.Provider_List_Details)) { types.Add(EnumUtils.ValueToString(ContractorType.Provider)); } if (user.HasPermission(Permission.Producer_List_Details)) { types.Add(EnumUtils.ValueToString(ContractorType.Producer)); } if (user.HasPermission(Permission.Client_List_Details)) { types.Add(EnumUtils.ValueToString(ContractorType.Client)); } if (types.Count == 0) //Прав нет ни на один тип { return(new List <Contractor>()); } var ps = new ParameterString(""); ps.Add("ContractorType", ParameterStringItem.OperationType.OneOf, types); return(contractorRepository.GetFilteredList(state, ps)); }
public IEnumerable <ClientContract> GetFilteredList(object state, ParameterString param, User user, Permission permission) { Func <ISubCriteria <Deal>, ISubCriteria <Deal> > cond = null; switch (user.GetPermissionDistributionType(permission)) { case PermissionDistributionType.None: return(new List <ClientContract>()); case PermissionDistributionType.Personal: cond = x => x.PropertyIn(y => y.Id, dealRepository.GetSubQueryForDealIdOnPersonalPermission(user.Id)).Select(y => y.Id); break; case PermissionDistributionType.Teams: cond = x => x.PropertyIn(y => y.Id, dealRepository.GetSubQueryForDealIdOnTeamPermission(user.Id)).Select(y => y.Id); break; case PermissionDistributionType.All: break; } // получаем список договоров через область видимости сделок // (кол-во записей на странице может быть меньше необходимого, т.к. одна сделка может быть связана с несколькими договорами) return(dealRepository.GetFilteredList(state, param, cond: cond).Select(x => x.Contract).Distinct()); }
/* Метод пока не используется * public decimal ImportCurrencyRate(Currency currency) * { * //var serv = new DailyInfoSoapClient(); * //var dataSet = serv.GetCursOnDate(DateTime.Now); * decimal rate = 0; * * //foreach (DataRow row in dataSet.Tables[0].Rows) * //{ * // var a = row; * //} * * return rate; * }*/ public IList <CurrencyRate> GetCurrencyRateFilteredList(short currencyId, object state, bool ignoreDeletedRows = true) { var ps = new ParameterString(state.GetType().GetProperty("Filter").GetValue(state, null) as string); ps.Add("Currency.Id", ParameterStringItem.OperationType.Eq, currencyId.ToString()); return(currencyRepository.GetCurrencyRateFilteredList(state, ps, ignoreDeletedRows)); }
public void ReadString() { var ps = new ParameterString("Key=qwerty;"); Assert.AreEqual(1, ps.Keys.Count()); Assert.AreEqual("Key", ps.Keys.ElementAt(0)); Assert.AreEqual("qwerty", ps["Key"].Value as string); }
public IEnumerable <Deal> GetFilteredList(object state, ParameterString param, User user) { if (param == null) { param = new ParameterString(""); } return(dealRepository.GetFilteredList(state, param)); }
/// <summary> /// Converts parameter string into a List of strings /// </summary> private void ConvertParametersToList() { string[] parameterArray = ParameterString.Split(DelimeterArray, StringSplitOptions.None); foreach (string parameter in parameterArray) { parameters.Add(parameter); } }
/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyAvOpenhomeOrgExakt2(ICpDevice aDevice) : base("av-openhome-org", "Exakt", 2, aDevice) { OpenHome.Net.Core.Parameter param; List <String> allowedValues = new List <String>(); iActionDeviceList = new OpenHome.Net.Core.Action("DeviceList"); param = new ParameterString("List", allowedValues); iActionDeviceList.AddOutputParameter(param); iActionDeviceSettings = new OpenHome.Net.Core.Action("DeviceSettings"); param = new ParameterString("DeviceId", allowedValues); iActionDeviceSettings.AddInputParameter(param); param = new ParameterString("Settings", allowedValues); iActionDeviceSettings.AddOutputParameter(param); iActionConnectionStatus = new OpenHome.Net.Core.Action("ConnectionStatus"); param = new ParameterString("ConnectionStatus", allowedValues); iActionConnectionStatus.AddOutputParameter(param); iActionSet = new OpenHome.Net.Core.Action("Set"); param = new ParameterString("DeviceId", allowedValues); iActionSet.AddInputParameter(param); param = new ParameterUint("BankId"); iActionSet.AddInputParameter(param); param = new ParameterString("FileUri", allowedValues); iActionSet.AddInputParameter(param); param = new ParameterBool("Mute"); iActionSet.AddInputParameter(param); param = new ParameterBool("Persist"); iActionSet.AddInputParameter(param); iActionReprogram = new OpenHome.Net.Core.Action("Reprogram"); param = new ParameterString("DeviceId", allowedValues); iActionReprogram.AddInputParameter(param); param = new ParameterString("FileUri", allowedValues); iActionReprogram.AddInputParameter(param); iActionReprogramFallback = new OpenHome.Net.Core.Action("ReprogramFallback"); param = new ParameterString("DeviceId", allowedValues); iActionReprogramFallback.AddInputParameter(param); param = new ParameterString("FileUri", allowedValues); iActionReprogramFallback.AddInputParameter(param); iActionVersion = new OpenHome.Net.Core.Action("Version"); param = new ParameterString("Version", allowedValues); iActionVersion.AddOutputParameter(param); iDeviceList = new PropertyString("DeviceList", DeviceListPropertyChanged); AddProperty(iDeviceList); iConnectionStatus = new PropertyString("ConnectionStatus", ConnectionStatusPropertyChanged); AddProperty(iConnectionStatus); iVersion = new PropertyString("Version", VersionPropertyChanged); AddProperty(iVersion); iPropertyLock = new Mutex(); }
public void MergeWithNotEqualKeys_Empty_Value_Mast_Be_Null() { var ps1 = new ParameterString("Key=;"); var ps2 = new ParameterString("Param=;"); ps1.MergeWith(ps2); Assert.AreEqual(null, ps1["Param"].Value); }
public IList <Article> GetFilteredList(object state, ParameterString param, bool ignoreDeletedRows = true) { if (param == null) { param = new ParameterString(""); } return(articleRepository.GetFilteredList(state, param, ignoreDeletedRows)); }
public IList <AccountOrganization> GetFilteredList(object state, ParameterString param = null) { if (param == null) { param = new ParameterString(""); } return(accountOrganizationRepository.GetFilteredList(state, param, true)); }
/// <summary> /// Получение списка записей с учетом фильтра /// </summary> protected IList <T> GetBaseFilteredList <T>(object state, ParameterString parameterString, bool ignoreDeletedRows = true, Func <ISubCriteria <T>, ISubCriteria <T> > cond = null) where T : class { this.parameterString = parameterString; var result = GetBaseFilteredList <T>(state, ignoreDeletedRows, cond); this.parameterString = null; return(result); }
/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyOpenhomeOrgTestLights1(ICpDevice aDevice) : base("openhome-org", "TestLights", 1, aDevice) { OpenHome.Net.Core.Parameter param; List <String> allowedValues = new List <String>(); iActionGetCount = new OpenHome.Net.Core.Action("GetCount"); param = new ParameterUint("Count"); iActionGetCount.AddOutputParameter(param); iActionGetRoom = new OpenHome.Net.Core.Action("GetRoom"); param = new ParameterUint("Index"); iActionGetRoom.AddInputParameter(param); param = new ParameterString("RoomName", allowedValues); iActionGetRoom.AddOutputParameter(param); iActionGetName = new OpenHome.Net.Core.Action("GetName"); param = new ParameterUint("Index"); iActionGetName.AddInputParameter(param); param = new ParameterString("FriendlyName", allowedValues); iActionGetName.AddOutputParameter(param); iActionGetPosition = new OpenHome.Net.Core.Action("GetPosition"); param = new ParameterUint("Index"); iActionGetPosition.AddInputParameter(param); param = new ParameterUint("X"); iActionGetPosition.AddOutputParameter(param); param = new ParameterUint("Y"); iActionGetPosition.AddOutputParameter(param); param = new ParameterUint("Z"); iActionGetPosition.AddOutputParameter(param); iActionSetColor = new OpenHome.Net.Core.Action("SetColor"); param = new ParameterUint("Index"); iActionSetColor.AddInputParameter(param); param = new ParameterUint("Color"); iActionSetColor.AddInputParameter(param); iActionGetColor = new OpenHome.Net.Core.Action("GetColor"); param = new ParameterUint("Index"); iActionGetColor.AddInputParameter(param); param = new ParameterUint("Color"); iActionGetColor.AddOutputParameter(param); iActionGetColorComponents = new OpenHome.Net.Core.Action("GetColorComponents"); param = new ParameterUint("Color"); iActionGetColorComponents.AddInputParameter(param); param = new ParameterUint("Brightness"); iActionGetColorComponents.AddOutputParameter(param); param = new ParameterUint("Red"); iActionGetColorComponents.AddOutputParameter(param); param = new ParameterUint("Green"); iActionGetColorComponents.AddOutputParameter(param); param = new ParameterUint("Blue"); iActionGetColorComponents.AddOutputParameter(param); }
public void MergeWithNullIntersectionItem() { var ps1 = new ParameterString("Key=1,2,3,4,5;"); var ps2 = new ParameterString("Key=6,7,8,9,10;"); ps1.MergeWith(ps2); Assert.AreEqual(1, ps1.Keys.Count()); Assert.AreEqual("0", (ps1["Key"].Value as IList <string>)[0]); }
/// <summary> /// Получение отфильтрованного списка задач /// </summary> /// <param name="state">Состояние грида</param> /// <param name="parameterString">Параметры грида</param> /// <param name="user">Пользователь</param> /// <param name="ignoreDeletedRows">Флаг, нужно ли игнорировать удаленные задачи</param> /// <returns>Коллекция задач</returns> public IList <Task> GetFilteredList(object state, ParameterString parameterString, User user, bool ignoreDeletedRows = true) { // Права на просмотр var r1 = RestrictOnUserByPermission("CreatedBy", user, Permission.Task_CreatedBy_List_Details); var r2 = RestrictOnUserByPermission("ExecutedBy", user, Permission.Task_ExecutedBy_List_Details); parameterString.Add(ParameterStringItem.OperationType.Or, r1, r2); return(taskRepository.GetFilteredList(state, parameterString, ignoreDeletedRows)); }
public void ParameterString() { var param = new ParameterString { Required = false, DefaultValue = "Default" }; object actual = param.ParseFromString("Value"); Assert.AreEqual("Value", actual); }
public void MergeWithOneIntersectionItem() { var ps1 = new ParameterString("Key=1,2,3;"); var ps2 = new ParameterString("Key=3,4,5;"); ps1.MergeWith(ps2); Assert.AreEqual(1, ps1.Keys.Count()); Assert.AreEqual("Key", ps1.Keys.ElementAt(0)); Assert.AreEqual("3", (ps1["Key"].Value as IList <string>)[0]); }
public override string ToString() { StringBuilder sb = new StringBuilder(); sb.AppendLine("Enabled=" + Enabled.ToString()); sb.AppendLine("ParameterString=" + ParameterString.ToString()); sb.AppendLine("ScriptFile=" + ScriptFile.ToString()); sb.AppendLine("WaitForScript=" + WaitForScript.ToString()); return(sb.ToString()); }
public void MergeWithManyIntersectionItemAndOtherKeys() { var ps1 = new ParameterString("Key=1,2,3,4,5;"); var ps2 = new ParameterString("Key=3,4,5,6,7;Param=qwerty;"); ps1.MergeWith(ps2); Assert.AreEqual(2, ps1.Keys.Count()); Assert.AreEqual(true, ps1.Keys.Contains("Key")); Assert.AreEqual(true, ps1.Keys.Contains("Param")); }
public void CaseInsensitivity() { var param = new ParameterString { Required = true, Lowercase = true }; var actual1 = (string)param.ParseFromString("VaLuE"); var actual2 = (string)param.ParseFromString("vAlUe"); Assert.IsTrue(actual1 == actual2); }