привет всем! работаю над мини CMSс объектами у которых есть параметер ORDER(int). допустим у меня есть 10 объектов и у каждого свой ORDER от 1 - 10.
я хочу подвинуть 3 елемент на 8 позицию следовательно 3 елемент должен получить позицию(order) 8 а 8 елемент толжен стать 7 а 7-6 а 6-5 и так до 1.....
и наоборот: если я сдвину 8 елемент на 2 позицию то 8 елемент получает ордер 2 2 получает 3, 3 получает 4 и так до query.Coun
я написал кривоватый код который при нагрузке глючит и выдаёт совсем не тот результат как хотелось бы. может кто сталкивался с такой проблемои просветите..
вот мой код:
public static void UpdateJsTreeOrder(this IDocumentSession session, string pageId, string parent, string element)
{
var pages = session.Query<Page>().Where(x => x.ParentPageId == parent);
var orderList = pages.Select(x => x.Order).Take(1024).ToList();
var page = session.Load<Page>(pageId);
if (element == null)
{
var subList = pages.Where(x => x.Order != page.Order).Take(1024).ToList();
foreach (var item in subList)
{
item.Order++;
session.Store(item);
}
page.Order = 1;
session.Store(page);
return;
}
var newOrder = session.Load<Page>(element).Order;
if (!orderList.Any())
{
//its the first item
}
//last item
if (newOrder == orderList.Max())
{
var subList = pages.Where(x => x.Order <= newOrder && x.Order != page.Order).Take(1024).ToList();
foreach (var item in subList)
{
item.Order--;
session.Store(item);
}
}
//first item
else if (newOrder == orderList.Min())
{
var subList = pages;
foreach (var item in subList)
{
item.Order--;
session.Store(item);
}
}
//int the middle
else
{
var subList = pages.Where(x => x.Order >= newOrder || x.Order == newOrder).Take(1024).ToList();
foreach (var item in subList)
{
item.Order--;
session.Store(item);
}
}
page.Order = newOrder;
session.Store(page);
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Не знаю как правильно обозвать данный вопрос) Не пинайте) Задача стоит получить коды смайлов vkНо c# упорно съедает сами коды, превращая их в квардраты