// Create provider code. Get
        public ActionResult Add()
        {
            var model = new ProviderCodeViewModel();

            model.StartDate = new DateTime(DateTime.Now.Year, 7, 1);
            model.EndDate   = new DateTime(DateTime.Now.Year + 1, 6, 30);

            return(View(model));
        }
        public ActionResult Update(ProviderCodeViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // Update provider code in db
            _providerCodeService.AddOrUpdate(model);

            return(RedirectToAction(nameof(Index)));
        }
        /// <summary>
        /// Gets the current Provider Code based on current date
        /// </summary>
        /// <returns></returns>
        public ProviderCodeViewModel GetCurrent()
        {
            var providerCodeViewModel = new ProviderCodeViewModel();

            var providerCode = _providerCodeRepo.GetCurrent();

            if (providerCode != null)
            {
                providerCodeViewModel = _mapper.Map <ProviderCodeViewModel>(providerCode);
            }

            return(providerCodeViewModel);
        }
        /// <summary>
        /// Creates a new ProviderCode if Id is zero; otherwise updates ProviderCode
        /// </summary>
        /// <param name="providerCodeViewModel"></param>
        public void AddOrUpdate(ProviderCodeViewModel providerCodeViewModel)
        {
            var providerCode = _mapper.Map <ProviderCode>(providerCodeViewModel);

            if (providerCode.Id == 0)
            {
                _providerCodeRepo.Add(providerCode);
            }
            else
            {
                _providerCodeRepo.Update(providerCode);
            }
        }
        public ActionResult Add(ProviderCodeViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // Ensure code doesn't already exist
            if (_providerCodeService.Exists(model.Code))
            {
                ModelState.AddModelError("", "Provider code entered already exists."
                                         + "Please enter a different code.");
                return(View(model));
            }

            // Add new provider code to db
            _providerCodeService.AddOrUpdate(model);

            return(RedirectToAction(nameof(Index)));
        }