public static Investments MapToInvestmentModel(this InvestmentFormViewModel model)
 {
     return(new Investments()
     {
         Id = model.Id,
         DFIndicatorId = model.DFIndicatorId,
         DFSourceId = model.DFSourceId,
         DFYearId = model.DFYearId,
         DFUnitId = model.DFUnitId,
         DFQuarterId = model.DFQuarterId,
         isDeleted = model.IsDeleted,
         Agriculture = model.Agriculture,
         AccommodationAndFoodServiceActivities = model.AccommodationAndFoodServiceActivities,
         Construction = model.Construction,
         Education = model.Education,
         Electricity = model.Electricity,
         FinancialIntermediaryInsuranceAndSocialSecurity = model.FinancialIntermediaryInsuranceAndSocialSecurity,
         Health = model.Health,
         InformationAndCommunication = model.InformationAndCommunication,
         NaturalGas = model.NaturalGas,
         OtherExtractions = model.OtherExtractions,
         OtherManufacturing = model.OtherManufacturing,
         OtherSrvices = model.OtherSrvices,
         Petroleum = model.Petroleum,
         PetroleumRefining = model.PetroleumRefining,
         RealEstateActivities = model.RealEstateActivities,
         StorageAndTransportation = model.StorageAndTransportation,
         SuezCanal = model.SuezCanal,
         TotalInvestments = model.TotalInvestments,
         WaterAndSewerage = model.WaterAndSewerage,
         WholesaleAndRetailTrade = model.WholesaleAndRetailTrade,
     });
 }
        public IActionResult Edit(InvestmentFormViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                return(EditInvetment(viewModel, out int id));
            }

            ViewBag.Indicator   = _dFIndicatorRepository.GetByID((int)DFIndicatorEnum.PublicInvestments).NameEn;
            ViewBag.Source      = _dFSourceRepository.GetByID((int)DFSourceEnum.MinistryOfPlanning).NameEn;
            ViewBag.Unit        = _dFUnitRepository.GetByID((int)DFUnitEnum.MillionEGP).NameEn;
            ViewBag.DFYearId    = new SelectList(_dFYearsRepository.GetAll(), "Id", "NameEn", viewModel.DFYearId);
            ViewBag.DFQuarterId = new SelectList(_dFQuartersRepository.GetAll(), "Id", "NameEn", viewModel.DFQuarterId);

            return(View(viewModel));
        }
        public async Task <IActionResult> Create(InvestmentFormViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.GetUserAsync(HttpContext.User);

                viewModel.CreatedById = user.Id;

                _investmentRepository.AddVer(viewModel.MapToInvestmentModelVer());
                _toastNotification.AddSuccessToastMessage("Element has been Created successfully.");

                _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Add, "Definitions > Economic Indicators > Investment > Add", " Id :" + viewModel.Id);

                return(RedirectToAction(nameof(Index)));
            }
            FormCommon();
            return(View(viewModel));
        }
        private IActionResult EditInvetment(InvestmentFormViewModel viewModel, out int id, bool fromDelete = false)
        {
            var invetmentVersion = _investmentRepository.GetByInvetmentId(viewModel.Investmentid ?? 0);
            var investmentById   = _investmentRepository.GetVerById(viewModel.Id);

            invetmentVersion = investmentById == null ? invetmentVersion : investmentById;
            var invementVersionModel = viewModel.MapToInvestmentModelVer();

            invementVersionModel.InvestmentsId = viewModel.Investmentid > 0 ? viewModel.Investmentid : (int?)null;
            if (!fromDelete)
            {
                invementVersionModel.ChangeActionEnum = ChangeActionEIEnum.Update;
                invementVersionModel.isDeleted        = false;
            }
            else
            {
                invementVersionModel.ChangeActionEnum = ChangeActionEIEnum.Delete;
            }
            if (invetmentVersion == null || invementVersionModel.VersionStatusEnum == VersionStatusEIEnum.Approved || invementVersionModel.VersionStatusEnum == VersionStatusEIEnum.Ignored)
            {
                invementVersionModel.VersionStatusEnum = VersionStatusEIEnum.Draft;
                invementVersionModel.Id = 0;
                var user = _userManager.GetUserAsync(HttpContext.User);
                invementVersionModel.CreatedById = user.Result.Id;


                _investmentRepository.AddVer(invementVersionModel);
                _toastNotification.AddSuccessToastMessage(ToasrMessages.EditSuccess);
                id = invementVersionModel.Id;
                return(RedirectToAction(nameof(Index)));
            }

            invementVersionModel.Id = invetmentVersion != null ? invetmentVersion.Id : viewModel.Id;

            _investmentRepository.UpdateVer(invementVersionModel);
            id = invementVersionModel.Id;

            _toastNotification.AddSuccessToastMessage("Element has been Edited successfully.");

            _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Update, "Definitions > Economic Indicators > Investment > Edit", " Id :" + viewModel.Id);

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