मैं निर्माण कर रहा हूँ एक दस्तावेज आवेदन में जो मैं लोगों को अनुमति देने के अंदर मेरा व्यवसाय का उपयोग करने के लिए प्रलेखन के बारे में कुछ सॉफ्टवेयर. इस के साथ, मैं एक पृष्ठ है, जहां किसी का प्रबंधन कर सकते व्यवस्थापक श्रेणियाँ और उपयोगकर्ताओं को. इस के लिए, मैं चाहता हूँ करने के लिए व्यवस्थापक सक्षम होने का क्रम बदलने के लिए एक वर्ग में जो यह प्रदर्शित किया जाना चाहिए पर मेरे NavigationMenu. अब, भाग में, जहां यह होना चाहिए ठीक तरह से क्रम में श्रेणियों के आधार पर आदेश के अंदर NavigationMenu काम करता है. लेकिन जब मैं करने के लिए प्रयास करें संपादित मौजूदा श्रेणियों और उनके क्रम संख्या, आदेश नहीं होंगे तदनुसार अपडेट देखते हैं, इस उदाहरण में:
यह संपादन करने से पहले मौजूदा श्रेणियों, इन श्रेणियों में कर रहे हैं हौसले से जोड़ा गया/बनाया
यह है के बाद से संपादन श्रेणियों, "प्रतिक्रिया" होना चाहिए के आदेश 2, जहां एपीआई के लिए किया जाएगा 0 क्रम, और परीक्षण के लिए किया जाएगा क्रम 1
के रूप में आप देख सकते हैं, के क्रम मतलब नहीं है अब और नहीं. जाहिर है, वहाँ नहीं होना चाहिए की अनुमति दी अधिक से अधिक 1 के किसी भी क्रम में.
अब, समस्या सबसे अधिक संभावना है से आ रहा है, इस कोड.
CategoryService.सीएस
public async Task<List<Category>> InsertCategory(Category category)
{
await GetCategories();
for (int i = 0; i < Categories.Where(c => c.Order >= category.Order).Count(); i++)
{
Categories[i].Order++;
if (Categories[i].Order == category.Order)
{
Categories[i].Order--;
break;
}
}
await categoryRepository.InsertAsync(Categories);
EventHelper.NotifyCategoryListChanged(Categories, EventArgs.Empty);
return Categories;
}
आदेश कोड के इस तरह चला जाता है:
CategoryDialog.उस्तरा
private async void SaveCategory(Category category)
{
if(!string.IsNullOrEmpty(category.Name))
{
await categoryService.SaveCategory(category);
Snackbar.Add("Category " + category.Name + " added", Severity.Success);
MudDialog.Close(DialogResult.Ok(category.Id));
}
else
{
Snackbar.Add("Please enter a category name.", Severity.Warning);
}
}
ऊपर कोड के बाद कहा जाता है एक बटन दबाएँ. यह गुजरता के साथ एक वर्ग के साथ एक निश्चित क्रम संख्या, इस संख्या में पारित हो जाता है के साथ एक सरल लटकती मेनू.
के SaveCategory
समारोह में इस तरह दिखता है:
CategorySerice.सीएस
public async Task<Category> SaveCategory(Category category)
{
await InsertCategory(category);
if (categoryRepository.GetByIdAsync(category.Id) == null)
{
await categoryRepository.AddAsync(category);
}
else
{
await categoryRepository.SaveAsync(category);
}
EventHelper.NotifyCategoryListChanged(Categories, EventArgs.Empty);
return category;
}
इस समारोह में कॉल समस्याग्रस्त समारोह से पहले वास्तव में बचत/कुछ भी जोड़ने के लिए डेटाबेस । तो यह कर सकते हैं जगह लेने के लिए नए जोड़े गए या संपादित श्रेणी ।
इस के बाद, एक घटना निकाल दिया जाता है को सूचित करने के लिए मेरे NavigationMenu है कि परिवर्तन किया गया है बनाया है, और यह चाहिए फिर से प्रस्तुत करने के लिए यह दिखाने के लिए. इस में कोई समस्या नहीं है.
लेकिन मैं नहीं कर सकते हैं बाहर आंकड़ा कैसे मैं ठीक से किया है, आदेश में सूचीबद्ध किया जब मैं उन्हें बदलने. त्वरित अनुस्मारक, इस समारोह में काम नहीं करता है जब संपादन मौजूदा श्रेणियों. अगर मैं एक नई श्रेणी जोड़ने के लिए उदाहरण में आदेश 2. यह ठीक से सब कुछ बदलाव के साथ कोई समस्या नहीं है ।
किसी भी मदद का स्वागत है!
CategoryService.cs
यह है एक ही स्रोत की सच्चाई, जबGetCategories
बुलाया जाता है, यह पकड़ लेता है नई जानकारी डेटाबेस से.