示例#1
0
        public static MedicineViewModel Create(MedicineObject o)
        {
            var v = new MedicineViewModel
            {
                ID              = o?.DbRecord.ID,
                Name            = o?.DbRecord.Name,
                AtcCode         = o?.DbRecord.AtcCode,
                FormOfInjection = o?.DbRecord.FormOfInjection,
                Strength        = o?.DbRecord.Strength,
                Manufacturer    = o?.DbRecord.Manufacturer,
                LegalStatus     = o?.DbRecord.LegalStatus,
                Reimbursement   = o?.DbRecord.Reimbursement,
                Spc             = o?.DbRecord.Spc,
                Pil             = o?.DbRecord.Pil
            };

            if (o is null)
            {
                return(v);
            }
            v.ValidFrom = setNullIfExtremum(o.DbRecord.ValidFrom);
            v.ValidTo   = setNullIfExtremum(o.DbRecord.ValidTo);
            foreach (var c in o.EffectsInMedicines)
            {
                var product = EffectViewModelFactory.Create(c);
                v.EffectsInMedicine.Add(product);
            }
            return(v);
        }
        public EffectViewModelsList(IPaginatedList <EffectObject> list, string sortOrder = null)
        {
            if (list is null)
            {
                return;
            }
            PageIndex  = list.PageIndex;
            TotalPages = list.TotalPages;
            var products = new List <EffectViewModel>();
            IOrderedEnumerable <EffectViewModel> ordered;

            foreach (var e in list)
            {
                products.Add(EffectViewModelFactory.Create(e));
            }

            switch (sortOrder)
            {
            case "name_desc":
                ordered = products.OrderByDescending(s => s.Name);
                break;

            case "validFrom":
                ordered = products.OrderBy(s => s.ValidFrom);
                break;

            case "validFrom_desc":
                ordered = products.OrderByDescending(s => s.ValidFrom);
                break;

            case "validTo":
                ordered = products.OrderBy(s => s.ValidTo);
                break;

            case "validTo_desc":
                ordered = products.OrderByDescending(s => s.ValidTo);
                break;

            default:
                ordered = products.OrderBy(s => s.Name);
                break;
            }
            AddRange(ordered);
        }