public ActionResult AddIncomeType(IncomeTypeListView incomeTypeView)
        {
            if (incomeTypeView == null)
            {
                throw new ArgumentNullException(nameof(incomeTypeView));
            }

            if (incomeTypeView.IncomeTypeName == null)
            {
                ModelState.AddModelError("", "Income Type Name is Required");
                var incomeTypeModel = this.generalService.GetIncomeTypeView(incomeTypeView, string.Empty);
                return(this.PartialView("AddIncomeType", incomeTypeModel));
            }


            var incomeTypeInfo = this.generalService.ProcessIncomeTypeInfo(incomeTypeView);

            if (!string.IsNullOrEmpty(incomeTypeInfo))
            {
                ModelState.AddModelError("", incomeTypeInfo);
                var incomeType = this.generalService.GetIncomeTypeView(incomeTypeView, "");
                return(this.PartialView("AddIncomeType", incomeType));
            }

            var returnMessage = string.Format("IncomeType Saved");

            var incomeTypeList = this.generalService.GetIncomeTypeView(incomeTypeView, returnMessage);

            return(this.PartialView("AddIncomeType", incomeTypeList));
        }
        public ActionResult EditIncomeType(IncomeTypeListView incomeTypeView)
        {
            if (incomeTypeView == null)
            {
                throw new ArgumentNullException("incomeTypeView");
            }


            if (incomeTypeView.IncomeTypeName == null)
            {
                ModelState.AddModelError("", "Income Type Name is Required");
                var incomeTypeModel = this.generalService.GetIncomeTypeView(incomeTypeView, string.Empty);

                return(this.View("EditIncomeType", incomeTypeModel));
            }

            var incomeTypeEdit = this.generalService.UpdateIncomeTypeInfo(incomeTypeView);

            if (!string.IsNullOrEmpty(incomeTypeEdit))
            {
                ModelState.AddModelError("", incomeTypeEdit);
                var incomeTypeModel = this.generalService.GetIncomeTypeView(incomeTypeView, "");
                return(this.PartialView("EditIncomeType", incomeTypeModel));
            }

            var returnMessage = string.Format("IncomeType Updated ");

            return(this.RedirectToAction("IncomeType",
                                         new { message = returnMessage }));
        }
        /// <summary>
        /// Creates the edit income type jurisdiction view.
        /// </summary>
        /// <param name="incomeTypes">The income types.</param>
        /// <returns></returns>
        public IIncomeTypeListView CreateEditIncomeTypeView(IIncomeType incomeTypes)

        {
            var View = new IncomeTypeListView
            {
                IncomeTypeName = incomeTypes.IncomeTypeName,
                IncomeTypeId   = incomeTypes.IncomeTypeId,
            };

            return(View);
        }
        /// <summary>
        /// Creates the income type jurisdiction view.
        /// </summary>
        /// <param name="jurisdictions">The jurisdictions.</param>
        /// <param name="incomeTypes">The income types.</param>
        /// <param name="jurisdictionIncomeTypes">The jurisdiction income types.</param>
        /// <returns></returns>
        public IIncomeTypeListView CreateIncomeTypeJurisdictionView(IList <IJurisdiction> jurisdictions, IList <IIncomeType> incomeTypes)

        {
            var incomeTypeDDL   = GetDropdownIncomeTypeList.GetIncomeType(incomeTypes, -1);
            var jurisdictionDDL = GetJurisdictionDropdown.GetJurisdicions(jurisdictions, -1);
            var View            = new IncomeTypeListView
            {
                IncomeTypeList   = incomeTypeDDL,
                JurisdictionList = jurisdictionDDL,
            };

            return(View);
        }
        /// <summary>
        /// Creates the income type jurisdiction view.
        /// </summary>
        /// <param name="jurisdictionIncomeTypes">The jurisdiction income types.</param>
        /// <returns></returns>
        public IIncomeTypeListView CreateIncomeTypeJurisdictionView(IList <IJurisdictionIncomeType> jurisdictionIncomeTypes, string infoMessage, IList <IIncomeType> incomeTypes, IList <IJurisdiction> jurisdictions, int jurisdictionId)

        {
            var incomeTypeDDL   = GetDropdownIncomeTypeList.GetIncomeType(incomeTypes, -1);
            var jurisdictionDDL = GetJurisdictionDropdown.GetJurisdicions(jurisdictions, -1);

            var View = new IncomeTypeListView
            {
                IncomeTypeList          = incomeTypeDDL,
                JurisdictionList        = jurisdictionDDL,
                jurisdictionIncomeTypes = jurisdictionIncomeTypes,
                ProcessingMessage       = infoMessage,
                JurisdictionId          = jurisdictionId,
            };

            return(View);
        }
        /// <summary>
        /// Creates the income type ListView.
        /// </summary>
        /// <param name="selectedIncomeTypeId">The selected income type identifier.</param>
        /// <param name="selectedIncomeTypeName">Name of the selected income type.</param>
        /// <param name="selectedDescription">The selected description.</param>
        /// <param name="selectedWHT_Rate">The selected WHT rate.</param>
        /// <param name="selectedIsActive">if set to <c>true</c> [selected is active].</param>
        /// <param name="selectedDateCreated">The selected date created.</param>
        /// <param name="incomeTypeCollection">The income type collection.</param>
        /// <param name="processingMessage">The processing message.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentNullException">incomeTypeCollection</exception>
        public IIncomeTypeListView CreateIncomeTypeListView(int selectedId, string selectedDescription, IList <IIncomeType> incomeTypeCollection, string message)
        {
            if (incomeTypeCollection == null)
            {
                throw new ArgumentNullException(nameof(incomeTypeCollection));
            }

            var returnView = new IncomeTypeListView
            {
                SelectedIncomeTypeId = selectedId,
                SelectedDescription  = selectedDescription,

                IncomeTypeCollection = incomeTypeCollection,

                ProcessingMessage = message ?? ""
            };

            return(returnView);
        }
        public ActionResult AddIncomeTypeJurisdiction(IncomeTypeListView incomeTypeListView)  //displays branches with the users
        {
            if (incomeTypeListView.JurisdictionId == -1 || incomeTypeListView.IncomeTypeId == -1)
            {
                ModelState.AddModelError("", "Ensure you select the appropriate Information");
                var incomeTypeJurisdiction = this.generalService.CreateUpdatedIncomeTypeJurisdictionView(incomeTypeListView, string.Empty);
                return(this.PartialView("AddIncomeTypejurisdiction", incomeTypeJurisdiction));
            }


            var incomeTypeJurisdictionList = this.generalService.ProcessIncomeTypeJurisdictionInfo(incomeTypeListView);

            if (!string.IsNullOrEmpty(incomeTypeJurisdictionList))
            {
                var incomeTypeJurisdiction = this.generalService.CreateUpdatedIncomeTypeJurisdictionView(incomeTypeListView, incomeTypeJurisdictionList);
                return(this.PartialView("AddIncomeTypejurisdiction", incomeTypeJurisdiction));
            }
            var returnModel = this.generalService.CreateUpdatedIncomeTypeJurisdictionView(incomeTypeListView, "Saved Successfully");

            return(this.PartialView("AddIncomeTypejurisdiction", returnModel));
        }