Проблемы с воспроизведением музыки в Light Alloy 4.1 (build 6105)

Кто-нибудь знает, почему в данной версии, если я дослушала песню до конца, то при следующей попытке прослышать эту же песню программа считает, что она перемотана в конец и переходит на следующую по списку песню, а не начинает песню заново, как раньше.

Неудобства нового Light Alloy 4.6 при прослушивании wav

Стоит у меня на работе Light Alloy. Сегодня попробовала послушать в нём музыку в формате wav и столкнулась с очень неприятной проблемой. Когда песня доиграла до конца и перешла автоматически к следующей в плей-листе, то при попытке вернуться к предыдущей песне у меня происходит перескакивание снова ко второй. То есть плеер перестал нормально перемещаться между песнями. Невозможно никак переместиться на песню, промотанную до конца и начать её слушать сначала. Чтобы снова послушать эту песню, мне приходилось заново её добавлять в список. Возможно это касается только формата wav. Завтра попробую послушать mp3 — с этим форматом в этом плеере раньше не было проблем. Кто-нибудь сталкивался с аналогичной проблемой? Может разработчики уже в курсе неё? Кто-нибудь знает можно ли её решить и как? Кроме отказа от wav путём перекодирования его в mp3.

Преобразование массива строк в массив чисел (ASP .NET C#)

Нашла более изящное и короткое решение данной задачи нежели простой перебор.

string[] StringsArray = StartString.Split(',');
int[] IntArray = StringsArray.Select(x => int.Parse(x)).ToArray();

Обычный метод перебора массива и преобразования.

int[] SelAuds = new int[] { };
if (SelAudsString != String.Empty)
{
    string[] auditors = SelAudsString.Split(',');
    SelAuds = new int[auditors.Count()];
    int index = 0;
    foreach (var item in auditors)
    {
        SelAuds[index] = Convert.ToInt32(item);
        index++;
    }
}

Источник
(запись от Thursday, May 17, 2007 10:34 PM)

Как воспользоваться getProperty в случае, если property nullable (ASP .NET C#)

Понадобилось мне добавить сортировку в запрос, но поле, по которому сортировать и направление сортировки передавать я могла только через переменную. Например, var sortby = "UserRoleId";. В связи с этим пришлось познакомиться с лямбда-выражениями (как мне говорили другие программисты эти выражения очень сильная штука и полезная). Ниже приведено само формирование выражения — конец метода вместе с return.


var type = typeof(T);
var parameter = Expression.Parameter(type, "p");
var sortBy = "UserRoleId";
var property = type.GetProperty(sortBy);
var propertyAccess = Expression.MakeMemberAccess(parameter, property);
var orderByExp = Expression.Lambda(propertyAccess, parameter);
MethodCallExpression resultExp;
if (sortDir == "asc")
resultExp = Expression.Call(typeof(Queryable), "OrderBy", new Type[] { type, property.PropertyType }, queryResult.Expression, Expression.Quote(orderByExp));
else resultExp = Expression.Call(typeof(Queryable), "OrderByDescending", new Type[] { type, property.PropertyType }, queryResult.Expression, Expression.Quote(orderByExp));

return queryResult.Provider.CreateQuery<T>(resultExp).Skip(page * countOnPage).Take(countOnPage);

Помимо того, что необычным способом передавалось поле для сортировки, были поля, по которым надо было иметь возможность сортировать, но в базе они числились как nullable, то есть могут быть null, а это в корне меняет дело, ведь getProperty уже использовать нельзя, так как эта функция приводит к ошибке.

У этой проблемы есть 2 решения.

1. get-property-lambda-from-property-name-where-property-type-can-be-nullable

ParameterExpression param = Expression.Parameter(typeof(T), "arg");

Expression member = Expression.Property(param, propertyName);

if (member.Type.IsValueType)
{
  member = Expression.Convert(member, typeof(object));
}

return Expression.Lambda<Func<T, object>>(member, param);

2. convert-changetype-fails-on-nullable-types

Я, например, выбрала такой:


if (sortBy != String.Empty && sortDir != String.Empty)
{
// add sort by column sortBy
var type = typeof(T);
ParameterExpression parameter = Expression.Parameter(type, "arg");
Expression member = Expression.Property(parameter, sortBy);

member = Expression.Convert(member, typeof(object));

var orderByExp = Expression.Lambda<Func<T, object>>(member, parameter);
MethodCallExpression resultExp;
if (sortDir == «asc»)
resultExp = Expression.Call(typeof(Queryable), «OrderBy», new Type[] { type, member.Type }, queryResult.Expression, Expression.Quote(orderByExp));
else resultExp = Expression.Call(typeof(Queryable), «OrderByDescending», new Type[] { type, member.Type }, queryResult.Expression, Expression.Quote(orderByExp));
return queryResult.Provider.CreateQuery<T>(resultExp).Skip(page * countOnPage).Take(countOnPage);
}

return queryResult.Skip(page * countOnPage).Take(countOnPage);

ASP .NET MVC 3 Проблемы с jquery validation и textarea

Случилось так, что не работала у меня нормально jquery валидация для поля textarea. А именно проблема была в следующем.

Есть у меня типизированная вьюха (View) Create.aspx для создания сущности. По идее эта вьюха не принимает никакие значения полей, а просто отдает модель данного типа и все поля ввода пустые. Но мне надо было при переходе с быстрой (краткой) формы создания передать в полную форму многострочное поле ввода, которое я описала во вьюхе как <%: Html.TextAreaFor(model=>model.Text)%> (оно присутствует в обеих формах). Я пробовала создать в контроллере новый элемент нужного мне класса и заполнить только нужное мне поле (остальные поля были автоматически заполнены значениями по-умолчанию при создании экземпляра класса). В результате заметила, что помимо всего прочего, textarea неправильно генерировась в хтмл код.

Надо было (этот код успешно генерируется в случае перзагрузке страницы, что логично):


textarea cols="50" data-val="true" data-val-length="Текст должен состоять минимум из 1 символов и максимум из 1000." data-val-length-max="1000" data-val-length-min="1" data-val-required="The Текст field is required." id="Text" name="Text" rows="10">

А генерировалось:


textarea class="input-validation-error" cols="50" id="Text" name="Text" rows="10">

(Чтобы показать хтмл пришлось убрать по одной угловой скобке вначале)
В моем случае помимо textarea были еще однострочные поля ввода Html.EditorFor() — для них валидация работала замечательно. Так вот, чтобы было многострочное поле ввода и валидация работала, надо в модели, где описана валидация: что поле обязательное, ограничения на длину, например. Туда следует дописать следующую строчку: [DataType(DataType.MultilineText)]