public ActionResult GetPurposes(Guid categoryId)
        {
            var ultPurposes      = _catalog.GetPurposeListByCategoryId(categoryId);
            var ultPurposeVMList = new List <UltimatePurposeVM>();

            foreach (var i in ultPurposes)
            {
                var ultPurposeVM = new UltimatePurposeVM();
                ultPurposeVM.PurposeId = i.PurposeId;

                if (i.ItemId != null)
                {
                    ultPurposeVM.ItemId = i.ItemId;
                    var currItem = _catalog.GetItemById((Guid)i.ItemId);
                    ultPurposeVM.ItemBrand = _catalog.GetBrandById((Guid)currItem.BrandID).Name;
                    ultPurposeVM.ItemName  = currItem.Name;
                }
                ultPurposeVM.Price              = i.Price;
                ultPurposeVM.IsPromo            = (bool)i.IsPromo;
                ultPurposeVM.AvailabilityTypeID = i.AvailabilityTypeID;
                ultPurposeVM.CurencyID          = i.CurencyID;
                ultPurposeVMList.Add(ultPurposeVM);
            }
            if (ultPurposeVMList.Any())
            {
                return(PartialView(ultPurposeVMList));
            }
            else
            {
                return(null);
            }
        }
        public ActionResult CreatePurpose(Guid categoryId, Guid?itemId)
        {
            var purposeVM = new UltimatePurposeVM();

            purposeVM.CategoryId = categoryId;

            purposeVM.AvailabilityTypes = new SelectList(_catalog.GetAvailabilityTypeList(), "Id", "Name");
            purposeVM.CurrencyList      = new SelectList(_catalog.GetCurrencyList(), "Id", "Name");
            if (itemId != null)
            {
                var item = _catalog.GetItemById((Guid)itemId);
                purposeVM.ItemId    = item.Id;
                purposeVM.ItemName  = item.Name;
                purposeVM.ItemBrand = _catalog.GetBrandById((Guid)item.BrandID).Name;
            }
            return(View(purposeVM));
        }
        public ActionResult EditPurpose(UltimatePurposeVM ultimatePurposeVM)
        {
            if (string.IsNullOrEmpty(ultimatePurposeVM.ItemId.ToString()))
            {
                ModelState.AddModelError("ItemId", "Item must be chosen!");
            }
            if (string.IsNullOrEmpty(ultimatePurposeVM.Price.ToString()))
            {
                ModelState.AddModelError("Price", "Fill price");
            }
            if (string.IsNullOrEmpty(ultimatePurposeVM.AvailabilityTypeID.ToString()))
            {
                ModelState.AddModelError("AvailabilityTypeID", "Choose availability type");
            }
            if (string.IsNullOrEmpty(ultimatePurposeVM.CurencyID.ToString()))
            {
                ModelState.AddModelError("CurencyID", "Choose currency");
            }

            if (ModelState.IsValid)
            {
                var ultPurposeDTO = new UltimatePurposeDTO();
                ultPurposeDTO.PurposeId          = ultimatePurposeVM.PurposeId;
                ultPurposeDTO.ItemId             = ultimatePurposeVM.ItemId;
                ultPurposeDTO.Price              = ultimatePurposeVM.Price;
                ultPurposeDTO.IsPromo            = ultimatePurposeVM.IsPromo;
                ultPurposeDTO.AvailabilityTypeID = ultimatePurposeVM.AvailabilityTypeID;
                ultPurposeDTO.CurencyID          = ultimatePurposeVM.CurencyID;

                _catalog.UpdateUltimatePurpose(ultPurposeDTO);
                return(RedirectToAction("PurposesEditor", new { categoryId = ultimatePurposeVM.CategoryId }));
            }

            ultimatePurposeVM.AvailabilityTypes = new SelectList(_catalog.GetAvailabilityTypeList(), "Id", "Name");
            ultimatePurposeVM.CurrencyList      = new SelectList(_catalog.GetCurrencyList(), "Id", "Name");
            if (ultimatePurposeVM.ItemId != null)
            {
                var item = _catalog.GetItemById((Guid)ultimatePurposeVM.ItemId);
                ultimatePurposeVM.ItemName  = item.Name;
                ultimatePurposeVM.ItemBrand = _catalog.GetBrandById((Guid)item.BrandID).Name;
            }
            return(View(ultimatePurposeVM));
        }
        public ActionResult EditPurpose(Guid purposeId)
        {
            var purpose   = _catalog.GetPurposeById(purposeId);
            var purposeVM = new UltimatePurposeVM();

            purposeVM.AvailabilityTypes  = new SelectList(_catalog.GetAvailabilityTypeList(), "Id", "Name");
            purposeVM.CurrencyList       = new SelectList(_catalog.GetCurrencyList(), "Id", "Name");
            purposeVM.PurposeId          = purpose.PurposeId;
            purposeVM.AvailabilityTypeID = purpose.AvailabilityTypeID;
            purposeVM.Price     = purpose.Price;
            purposeVM.ItemId    = purpose.ItemId;
            purposeVM.IsPromo   = (bool)purpose.IsPromo;
            purposeVM.CurencyID = purpose.CurencyID;

            var item = _catalog.GetItemById((Guid)purpose.ItemId);

            purposeVM.ItemBrand  = _catalog.GetBrandById((Guid)item.BrandID).Name;
            purposeVM.ItemName   = item.Name;
            purposeVM.CategoryId = item.CategoryID;

            return(View(purposeVM));
        }