Exemple #1
0
        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)));
        }
Exemple #2
0
        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));
        }