public async Task <IActionResult> Index() { var user = await GetCurrentUser(); var l = await portfolios.GetMedicines(user.Id); var catObjs = await categories.GetCategories(user.Id); List <CategoryViewModel> categoryViews = new List <CategoryViewModel>(); List <MedicineObject> usedMeds = new List <MedicineObject>(); foreach (var c in catObjs) { await categoryMedicines.LoadMedicines(c); foreach (var med in c.MedicinesWithCategory) { usedMeds.Add(med); await medicineEffects.LoadEffects(med); } categoryViews.Add(CategoryViewModelFactory.Create(c)); } var allMeds = await medicines.GetObjectsList(); List <string> duplicateIds = new List <string>(); for (int i = 0; i < allMeds.Count; i++) { bool contains = usedMeds.Any(x => x.DbRecord.ID == allMeds[i].DbRecord.ID); if (contains) { duplicateIds.Add(allMeds[i].DbRecord.ID); } } foreach (var id in duplicateIds) { var medicine = allMeds.Where(x => x.DbRecord.ID == id).ToList(); allMeds.Remove(medicine[0]); } //foreach (var med in allMeds) //{ // int index = usedMeds.FindIndex(x => x.DbRecord.ID == med.DbRecord.ID); // if (index>=0) // { // allMeds.Remove(med); // } //} ViewBag.Medicines = allMeds.Select(x => new SelectListItem { Value = x.DbRecord.ID, Text = x.DbRecord.Name + ", " + x.DbRecord.FormOfInjection + ", " + x.DbRecord.Strength }).ToList(); ViewBag.Categories = categoryViews; return(View(PortfolioViewModelFactory.Create(user.Id, l))); }
public async Task <IActionResult> Edit(string id, string currentFilter = null, string searchString = null, int?page = null) { if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewData["CurrentFilter"] = searchString; effectsRepository.SearchString = searchString; effectsRepository.PageIndex = page ?? 1; var effects = new EffectViewModelsList(null); if (!string.IsNullOrWhiteSpace(searchString)) { effects = new EffectViewModelsList(await effectsRepository.GetObjectsList()); } var a = await repository.GetObject(id); await medicineEffectsRepository.LoadEffects(a); var med = MedicineViewModelFactory.Create(a); foreach (var effect in med.EffectsInMedicine) { effects.RemoveAll(x => x.Name == effect.Name); } ViewBag.Products = effects; return(View(med)); }