// [TypeFilter(typeof(AuthorizeAction), Arguments = new object[] { "Write" })]
        public IActionResult Index()
        {
            SchemeViewModel model = new SchemeViewModel();

            model.RtaList                 = _schemeService.GetRTAList();
            model.SchemeTypeList          = _schemeService.GetSchemeTypeList();
            model.AmcList                 = _schemeService.GetAmcList();
            model.PlanList                = _schemeService.GetPlanList();
            model.OptionTypeList          = _schemeService.GetOPtionTypeList();
            model.RestrictNationalityList = _schemeService.GetCountryList();
            model.InvestorTypeList        = _schemeService.GetCountryList();
            model.SeriesList              = _schemeService.GetSeriesList();
            model.AssetClassList          = _schemeService.GetAssetClassList();
            model.SubAssetClassList       = _schemeService.GetAssetClassList();
            model.NoOfDaysList            = _schemeService.GetMinimumHoldingPeriodDaysList();
            model.NoOfMonthsList          = _schemeService.GetMinimumHoldingPeriodMonthsList();
            model.NoOfYearsList           = _schemeService.GetMinimumHoldingPeriodYearsList();
            InitAccessModel(model);
            return(View(model));
        }
        public ActionResult GetSchemeTable(string Operation)
        {
            Session["Operation"] = Operation;
            //ButtonVisiblity(Operation);
            List <SchemeViewModel> list = new List <SchemeViewModel>();
            var model     = new SchemeViewModel();
            var tablelist = dd._context.Mst_SchemeMaster.ToList();

            foreach (var item in tablelist)
            {
                model               = new SchemeViewModel();
                model.SchemeName    = item.SchemeName;
                model.ProductStr    = item.Product == 1 ? "Gold Loan" : "Diamond Loan";
                model.SchemeId      = item.SchemeId;
                model.EditID        = item.SchemeId;
                model.SchemeTypeStr = item.SchemeType == 1 ? "Slabwise" : "Slabwise";
                model.FrequencyStr  = item.Frequency == 1 ? "Montly" : "Montly";
                model.Statusstr     = item.Status == 1 ? "Active" : "Inactive";
                list.Add(model);
            }
            return(PartialView("_SchemeList", list));
        }
Ejemplo n.º 3
0
        // GET: Schemes/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Scheme scheme = await db.Schemes
                            .Where(s => s.Id == id)
                            .FirstOrDefaultAsync();

            if (scheme == null)
            {
                return(HttpNotFound());
            }

            var vm = new SchemeViewModel()
            {
                Id                   = scheme.Id,
                Name                 = scheme.Name,
                Description          = scheme.Description,
                Markets              = scheme.Markets,
                Indicators           = scheme.Indicators,
                BullBearTests        = scheme.BullBearTests,
                BackTests            = scheme.BackTests,
                PatternScanners      = scheme.PatternScanners,
                Scanners             = scheme.Scanners,
                ScannerFlag          = scheme.ScannerFlag,
                CustomIndicatorsFlag = scheme.CustomIndicatorsFlag,
                LiveFlag             = scheme.LiveFlag,
                CIAddFlag            = scheme.CIAddFlag,
                ScannerAddFlag       = scheme.ScannerAddFlag,
                SignalAddFlag        = scheme.SignalAddFlag,
                TrendAddFlag         = scheme.TrendAddFlag,
                PatternAddFlag       = scheme.PatternAddFlag
            };

            return(View(vm));
        }
        /// <summary>
        /// Get the Data based on ID and return to the model to update view.
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        // [TypeFilter(typeof(AuthorizeAction), Arguments = new object[] { "Write" })]
        public IActionResult Update(int ID)
        {
            SchemeViewModel model = new SchemeViewModel
            {
                schemeMaster              = _schemeService.GetData(ID),
                SchemeTransactionDetails  = _schemeService.GetTransactionData(ID),
                schemeRegistrationDetails = _schemeService.GetRegistrationData(ID),
                Frequency = _schemeService.GetFrequncyData(ID),
                schemeRestrictedNationality  = _schemeService.GetRestrictedNationality(ID),
                schemeRestrictedInvestorType = _schemeService.GetRestrictedInvestorData(ID)
            };

            if (model.schemeMaster != null)
            {
                model.RtaList                 = _schemeService.GetRTAList();
                model.SchemeTypeList          = _schemeService.GetSchemeTypeList();
                model.AmcList                 = _schemeService.GetAmcList();
                model.PlanList                = _schemeService.GetPlanList();
                model.OptionTypeList          = _schemeService.GetOPtionTypeList();
                model.RestrictNationalityList = _schemeService.GetCountryList();
                model.InvestorTypeList        = _schemeService.GetCountryList();
                model.SeriesList              = _schemeService.GetSeriesList();
                model.AssetClassList          = _schemeService.GetAssetClassList();
                model.SubAssetClassList       = _schemeService.GetAssetClassList();
                model.NoOfDaysList            = _schemeService.GetMinimumHoldingPeriodDaysList();
                model.NoOfMonthsList          = _schemeService.GetMinimumHoldingPeriodMonthsList();
                model.NoOfYearsList           = _schemeService.GetMinimumHoldingPeriodYearsList();
                model.SchemeTransactionDetails.RestrictedNationality = _schemeService.GetSchemesRestrictedNationality(ID).ToArray();
                model.SchemeTransactionDetails.InvestorType          = _schemeService.GetSchemesRestrictedInvestorType(ID).ToArray();
                //InitAccessModel(model);
                return(View("Index", model));
            }
            else
            {
                return(View("SummaryView", model));
            }
        }
        /// <summary>
        /// Add Update Scheme
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public JsonResponse AddUpdate(SchemeViewModel model)
        {
            try
            {
                SchemeRestrictedNationality  res      = new SchemeRestrictedNationality();
                SchemeRestrictedInvestorType invester = new SchemeRestrictedInvestorType();
                //  If model.ID == 0 the data goes to the Add part.
                if (!IsExsits(model.schemeMaster.SchemeName, model.schemeMaster.ID))
                {
                    int insertSchme, insertTransaction, insertReg, updateScheme = 0, updateTran = 0, updateReg = 0, updateNationality = 0, updateInvestorType = 0;
                    if (model.schemeMaster.ID == 0)
                    {
                        //Insert SchemeMaster Table
                        model.schemeMaster.CreatedOn = DateTime.Now;
                        model.schemeMaster.CreatedBy = GetUserID();
                        _context.Set <Schema>().Add(model.schemeMaster);
                        insertSchme = _context.SaveChanges();

                        //Insert SchemeTrasactionDetails table
                        model.SchemeTransactionDetails.SchemeID  = model.schemeMaster.ID;
                        model.SchemeTransactionDetails.CreatedOn = DateTime.Now;
                        model.SchemeTransactionDetails.CreatedBy = GetUserID();
                        model.SchemeTransactionDetails.IsActive  = true;
                        _context.Set <SchemeTransaction>().Add(model.SchemeTransactionDetails);
                        insertTransaction = _context.SaveChanges();
                        if (insertTransaction != 0)
                        {
                            if (model.SchemeTransactionDetails.IsRecurring == true)
                            {
                                model.Frequency.IsActive  = true;
                                model.Frequency.CreatedOn = DateTime.Now;
                                model.Frequency.CreatedBy = GetUserID();
                                model.Frequency.SchemeID  = model.schemeMaster.ID;
                                _context.Set <Frequency>().Add(model.Frequency);
                                int l = _context.SaveChanges();
                            }
                        }

                        //Insert Scheme RegistrationDetails table
                        model.schemeRegistrationDetails.CreatedOn = DateTime.Now;
                        model.schemeRegistrationDetails.CreatedBy = GetUserID();
                        model.schemeRegistrationDetails.IsActive  = true;
                        model.schemeRegistrationDetails.SchemeID  = model.schemeMaster.ID;
                        _context.Set <SchemeRegistration>().Add(model.schemeRegistrationDetails);
                        insertReg = _context.SaveChanges();


                        //Insert RestrictedNationality
                        if (model.SchemeTransactionDetails.RestrictedNationality != null)
                        {
                            foreach (var item in model.SchemeTransactionDetails.RestrictedNationality)
                            {
                                res           = null;
                                res           = new SchemeRestrictedNationality();
                                res.IsActive  = true;
                                res.CreatedOn = DateTime.Now;
                                res.CreatedBy = GetUserID();
                                res.SchemeID  = model.schemeMaster.ID;
                                res.CountryId = Convert.ToInt32(item);
                                _context.Set <SchemeRestrictedNationality>().Add(res);
                                _context.SaveChangesAsync();
                            }
                        }

                        //Insert RestrictedInvestorType
                        if (model.SchemeTransactionDetails.InvestorType != null)
                        {
                            foreach (var item in model.SchemeTransactionDetails.InvestorType)
                            {
                                invester           = null;
                                invester           = new SchemeRestrictedInvestorType();
                                invester.IsActive  = true;
                                invester.CreatedOn = DateTime.Now;
                                invester.CreatedBy = GetUserID();
                                invester.SchemeID  = model.schemeMaster.ID;
                                invester.TypeId    = Convert.ToInt32(item);
                                _context.Set <SchemeRestrictedInvestorType>().Add(invester);
                                _context.SaveChangesAsync();
                            }
                        }

                        if (insertSchme != 0 && insertTransaction != 0 && insertReg != 0)
                        {
                            resp.Status  = Constants.ResponseStatus.Success;
                            resp.Message = Constants.Service.Data_insert_success;
                        }
                        else
                        {
                            resp.Status  = Constants.ResponseStatus.Failed;
                            resp.Message = Constants.Service.Data_insert_failed;
                        }
                    }
                    //  Else data goes to the Update part.
                    else
                    {
                        resp.Message = Constants.Service.Data_Update_failed;
                        var schemeDetails          = GetData(model.schemeMaster.ID);
                        var transactionDetails     = GetTransactionData(model.schemeMaster.ID);
                        var registrationDetils     = GetRegistrationData(model.schemeMaster.ID);
                        var restrictedNational     = GetRestrictedNationalData(model.schemeMaster.ID);
                        var restrictedInvesterType = GetRestrictedInvestorData(model.schemeMaster.ID);
                        //Update SchemeMaster Table
                        if (schemeDetails != null)
                        {
                            schemeDetails.SchemeCode   = model.schemeMaster.SchemeCode;
                            schemeDetails.SchemeName   = model.schemeMaster.SchemeName;
                            schemeDetails.SchemeTypeID = model.schemeMaster.SchemeTypeID;
                            schemeDetails.RTAID        = model.schemeMaster.RTAID;
                            schemeDetails.AMCID        = model.schemeMaster.AMCID;
                            schemeDetails.RTACode      = model.schemeMaster.RTACode;
                            schemeDetails.PlanID       = model.schemeMaster.PlanID;
                            schemeDetails.RTAProdCode  = model.schemeMaster.RTAProdCode;
                            schemeDetails.IsActive     = model.schemeMaster.IsActive;
                            schemeDetails.ModifiedOn   = DateTime.Now;
                            schemeDetails.ModifiedBy   = GetUserID();
                            _context.Set <Schema>().Update(schemeDetails);
                            updateScheme = _context.SaveChanges();
                        }
                        //Update SchemeTransaction table
                        if (transactionDetails != null)
                        {
                            transactionDetails.SIP   = model.SchemeTransactionDetails.SIP;
                            transactionDetails.STP   = model.SchemeTransactionDetails.STP;
                            transactionDetails.SWP   = model.SchemeTransactionDetails.SWP;
                            transactionDetails.Demat = model.SchemeTransactionDetails.Demat;
                            transactionDetails.IncludedUnitsOfExDate = model.SchemeTransactionDetails.IncludedUnitsOfExDate;
                            transactionDetails.ModifiedBy            = GetUserID();
                            transactionDetails.ModifiedOn            = DateTime.Now;
                            _context.Set <SchemeTransaction>().Update(transactionDetails);
                            updateTran = _context.SaveChanges();
                            //check recurring is true, if its true  frequency is add
                            if (transactionDetails.IsRecurring == true)
                            {
                                var frequency = GetFrequncyData(model.schemeMaster.ID);
                                if (frequency != null)
                                {
                                    frequency.Daily      = model.Frequency.Daily;
                                    frequency.Weekly     = model.Frequency.Weekly;
                                    frequency.Monthly    = model.Frequency.Monthly;
                                    frequency.Quartely   = model.Frequency.Quartely;
                                    frequency.HalfYearly = model.Frequency.HalfYearly;
                                    frequency.Yearly     = model.Frequency.Yearly;
                                    frequency.ModifiedBy = GetUserID();
                                    frequency.ModifiedOn = DateTime.Now;
                                    _context.Set <Frequency>().Update(frequency);
                                    int J = _context.SaveChanges();
                                    if (J != 0)
                                    {
                                        resp.Status  = Constants.ResponseStatus.Success;
                                        resp.Message = Constants.Service.Data_Update_success;
                                    }
                                }
                                else
                                {
                                    model.Frequency.IsActive  = true;
                                    model.Frequency.CreatedOn = DateTime.Now;
                                    model.Frequency.SchemeID  = model.schemeMaster.ID;
                                    _context.Set <Frequency>().Add(model.Frequency);
                                    int J = _context.SaveChanges();
                                }
                            }
                        }
                        //Insert Scheme Registration table
                        if (registrationDetils != null)
                        {
                            registrationDetils.AMFICode      = model.schemeRegistrationDetails.AMFICode;
                            registrationDetils.BseCode       = model.schemeRegistrationDetails.BseCode;
                            registrationDetils.CloseDate     = model.schemeRegistrationDetails.CloseDate;
                            registrationDetils.ISIN          = model.schemeRegistrationDetails.ISIN;
                            registrationDetils.RefISIN       = model.schemeRegistrationDetails.RefISIN;
                            registrationDetils.IssueOpenDate = model.schemeRegistrationDetails.IssueOpenDate;
                            registrationDetils.ReOpenDate    = model.schemeRegistrationDetails.ReOpenDate;
                            registrationDetils.NSESymbol     = model.schemeRegistrationDetails.NSESymbol;
                            registrationDetils.SchemeOption  = model.schemeRegistrationDetails.SchemeOption;
                            registrationDetils.SeriesId      = model.schemeRegistrationDetails.SeriesId;
                            registrationDetils.ModifiedBy    = GetUserID();
                            registrationDetils.ModifiedOn    = DateTime.Now;
                            _context.Set <SchemeRegistration>().Update(registrationDetils);
                            updateReg = _context.SaveChanges();
                        }

                        //Update Restricted National table
                        var national = _context.SchemeRestrictedNationalities.Where(e => e.SchemeID == model.schemeMaster.ID).ToList();
                        if (national != null)
                        {
                            foreach (var item in national)
                            {
                                item.IsActive = false;
                                _context.SchemeRestrictedNationalities.Update(item);
                                _context.SaveChanges();
                            }
                        }
                        if (model.SchemeTransactionDetails.RestrictedNationality != null)
                        {
                            foreach (var item in model.SchemeTransactionDetails.RestrictedNationality)
                            {
                                res           = null;
                                res           = new SchemeRestrictedNationality();
                                res.IsActive  = true;
                                res.CreatedOn = DateTime.Now;
                                res.CreatedBy = GetUserID();
                                res.SchemeID  = model.schemeMaster.ID;
                                res.CountryId = Convert.ToInt32(item);
                                _context.Set <SchemeRestrictedNationality>().Add(res);
                                updateNationality = _context.SaveChanges();
                                model.schemeRestrictedNationality.ID = 0;
                            }
                        }
                        //Update Investor table
                        var investorType = _context.SchemeRestrictedInvestorTypes.Where(e => e.SchemeID == model.schemeMaster.ID).ToList();
                        if (investorType != null)
                        {
                            foreach (var item in investorType)
                            {
                                item.IsActive = false;
                                _context.SchemeRestrictedInvestorTypes.Update(item);
                                _context.SaveChanges();
                            }
                        }
                        if (model.SchemeTransactionDetails.InvestorType != null)
                        {
                            foreach (var item in model.SchemeTransactionDetails.InvestorType)
                            {
                                invester           = null;
                                invester           = new SchemeRestrictedInvestorType();
                                invester.IsActive  = true;
                                invester.CreatedOn = DateTime.Now;
                                invester.CreatedBy = GetUserID();
                                invester.SchemeID  = model.schemeMaster.ID;
                                invester.TypeId    = Convert.ToInt32(item);
                                _context.Set <SchemeRestrictedInvestorType>().Add(invester);
                                updateInvestorType = _context.SaveChanges();
                                model.schemeRestrictedInvestorType.ID = 0;
                            }
                        }
                        //Check all table is updated
                        if (updateScheme != 0 && updateTran != 0 && updateReg != 0)
                        {
                            resp.Status  = Constants.ResponseStatus.Success;
                            resp.Message = Constants.Service.Data_Update_success;
                        }
                        else
                        {
                            resp.Status  = Constants.ResponseStatus.Failed;
                            resp.Message = Constants.Service.Data_Update_failed;
                        }
                    }
                }
                else
                {
                    resp.Status  = Constants.ResponseStatus.Failed;
                    resp.Message = "Scheme Name is already exists..";
                }
            }
            catch (Exception ex)
            {
                resp.Message = Constants.Service.Common_message;
                throw ex;
            }
            return(resp);
        }
Ejemplo n.º 6
0
 public void SaveUpdateRecord(SchemeViewModel model)
 {
     _schemeRepository.SaveUpdateRecord(model);
 }
Ejemplo n.º 7
0
        public ActionResult Print(int id)
        {
            var scheme = member_SchemeService.Find(id);

            var list = (from m in scheme_MediaService.GetALL()
                        join o in outDoorService.GetList(OutDoorStatus.ShowOnline, true) on m.MediaID equals o.MediaID
                        join c in companyService.GetAll() on o.MemberID equals c.MemberID
                        where m.SchemeID == id
                        select new SchemeMediaViewModel()
                        {
                            CityName = o.Area.CateName,
                            CompanyName = c.Name,
                            PCategoryName = o.OutDoorMediaCate.PCategory.CateName,
                            CategoryName = o.OutDoorMediaCate.CateName,
                            EndTime = m.EndTime,
                            ID = m.ID,
                            ImgUrl = o.MediaImg.FocusImgUrl,
                            MediaID = o.MediaID,
                            MemberID = o.MemberID,
                            Mobile = c.Mobile,
                            Name = o.Name,
                            Phone = c.Phone,
                            Price = m.Price,
                            ProvinceName = o.Area.PCategory.CateName,
                            SchemeID = id,
                            StartTime = m.StartTime,
                            FormatName = o.FormatCate.CateName,
                            HasLight = o.HasLight,
                            Height = o.Height,
                            LightEnd = o.LightEnd,
                            LightStrat = o.LightStrat,
                            TotalFaces = o.TotalFaces,
                            TrafficAuto = o.TrafficAuto,
                            TrafficPerson = o.TrafficPerson,
                            Wdith = o.Wdith,
                            OwnerName = o.OwnerCate.CateName,
                            PeriodName = o.PeriodCate.CateName,
                            Description = o.Description
                        }
                       ).ToList();
            var model = new SchemeViewModel()
            {
                AddTime = scheme.AddTime,
                Description = scheme.Description,
                ID = id,
                Name = scheme.Name,
                Medias = list
            };

            return View(model);
        }
Ejemplo n.º 8
0
        // GET: Schemes/Create
        public ActionResult Create()
        {
            var vm = new SchemeViewModel();

            return(View(vm));
        }
Ejemplo n.º 9
0
 public NewSchemaWindow()
 {
     InitializeComponent();
     ViewModel        = new SchemeViewModel();
     base.DataContext = ViewModel;
 }
Ejemplo n.º 10
0
        //[ValidateAntiForgeryToken]
        public JsonResult CreateEdit(SchemeViewModel scheme)
        {
            scheme.CreatedBy = Convert.ToInt32(Session["UserLoginId"]);
            scheme.UpdatedBy = Convert.ToInt32(Session["UserLoginId"]);
            Mst_SchemeMaster tblSchemeMaster = new Mst_SchemeMaster();

            try
            {
                if (scheme.EditID <= 0)
                {
                    scheme.SchemeId = dd._context.Mst_SchemeMaster.Any() ? dd._context.Mst_SchemeMaster.Max(m => m.SchemeId) + 1 : 1;
                    var data = dd._context.Mst_SchemeMaster.Where(u => u.SchemeName == scheme.SchemeName && u.Status == 1).Select(x => x.SchemeName).FirstOrDefault();
                    if (data != null)
                    {
                        ModelState.AddModelError("SchemeName", "Scheme Name Already Exists");
                        return(Json(scheme));
                    }
                    tblSchemeMaster.SchemeId        = scheme.SchemeId;
                    tblSchemeMaster.RecordCreated   = DateTime.Now;
                    tblSchemeMaster.RecordCreatedBy = scheme.CreatedBy;
                    dd._context.Mst_SchemeMaster.Add(tblSchemeMaster);
                }
                else
                {
                    tblSchemeMaster = dd._context.Mst_SchemeMaster.Where(x => x.SchemeId == scheme.SchemeId).FirstOrDefault();
                }
                tblSchemeMaster.Product           = scheme.Product;
                tblSchemeMaster.SchemeName        = scheme.SchemeName;
                tblSchemeMaster.SchemeType        = scheme.SchemeType;
                tblSchemeMaster.Frequency         = scheme.Frequency;
                tblSchemeMaster.MinTenure         = scheme.MinTenure;
                tblSchemeMaster.MaxTenure         = scheme.MaxTenure;
                tblSchemeMaster.MinLoanAmount     = scheme.MinLoanAmount;
                tblSchemeMaster.MaxLoanAmount     = scheme.MaxLoanAmount;
                tblSchemeMaster.MinLTVPerc        = scheme.MinLTVPerc;
                tblSchemeMaster.MaxLTVPerc        = scheme.MaxLTVPerc;
                tblSchemeMaster.MinRoiPerc        = scheme.MinROIPerc;
                tblSchemeMaster.MaxRoiPerc        = scheme.MaxROIPerc;
                tblSchemeMaster.GracePeriod       = scheme.GracePeriod;
                tblSchemeMaster.EffectiveRoiPerc  = scheme.EffectiveROIPerc;
                tblSchemeMaster.LockInPeriod      = scheme.LockInPeriod;
                tblSchemeMaster.ProcessingFeeType = scheme.ProcessingFeeType;
                tblSchemeMaster.ProcessingCharges = scheme.ProcessingCharges;
                tblSchemeMaster.Status            = scheme.Status;
                tblSchemeMaster.RecordUpdated     = DateTime.Now;
                tblSchemeMaster.RecordUpdatedBy   = scheme.UpdatedBy;
                dd._context.SaveChanges();

                int schemeid = dd._context.Mst_SchemeMaster.Max(x => x.SchemeId);
                if (scheme.Purity == null)
                {
                    scheme.Purity = (List <int>)Session["PurityData"];
                }

                var getrecord = dd._context.Mst_SchemePurity.Where(x => x.SchemeId == scheme.SchemeId).ToList();
                if (getrecord != null)
                {
                    foreach (var item1 in getrecord)
                    {
                        dd._context.Mst_SchemePurity.Remove(item1);
                        dd._context.SaveChanges();
                    }
                }
                foreach (var item in scheme.Purity)
                {
                    Mst_SchemePurity tblSchemePurity = new Mst_SchemePurity();
                    tblSchemePurity.SchemeId = schemeid;
                    tblSchemePurity.PurityId = item;
                    dd._context.Mst_SchemePurity.Add(tblSchemePurity);
                }
                dd._context.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(Json(scheme));
        }
Ejemplo n.º 11
0
        public async Task<ActionResult> EditScheme(Guid schemeId, SchemeViewModel model)
        {
            if (model.Status == SchemeStatus.Rejected)
            {
                return RedirectToAction("ConfirmRejection", new { schemeId });
            }

            if (model.Status == SchemeStatus.Withdrawn)
            {
                return RedirectToAction("ConfirmWithdrawn", new { schemeId });
            }

            model.CompetentAuthorities = await GetCompetentAuthorities();

            if (!ModelState.IsValid)
            {   
                model = await SetSchemeStatusAndCompetentAuthorities(schemeId, model);
                await SetBreadcrumb(schemeId);
                return View(model);
            }

            UpdateSchemeInformationResult result;
            using (var client = apiClient())
            {
                UpdateSchemeInformation request = new UpdateSchemeInformation(
                    schemeId,
                    model.SchemeName,
                    model.ApprovalNumber,
                    model.IbisCustomerReference,
                    model.ObligationType.Value,
                    model.CompetentAuthorityId,
                    model.Status);

                result = await client.SendAsync(User.GetAccessToken(), request);
            }

            switch (result.Result)
            {
                case UpdateSchemeInformationResult.ResultType.Success:
                    return RedirectToAction("Overview", new { schemeId });

                case UpdateSchemeInformationResult.ResultType.ApprovalNumberUniquenessFailure:
                    {
                        ModelState.AddModelError("ApprovalNumber", "Approval number already exists.");
                        
                        await SetBreadcrumb(schemeId);
                        model = await SetSchemeStatusAndCompetentAuthorities(schemeId, model);
                        return View(model);
                    }

                case UpdateSchemeInformationResult.ResultType.IbisCustomerReferenceUniquenessFailure:
                    {
                        string errorMessage = string.Format(
                            "Billing reference \"{0}\" already exists for scheme \"{1}\" ({2}).",
                            result.IbisCustomerReferenceUniquenessFailure.IbisCustomerReference,
                            result.IbisCustomerReferenceUniquenessFailure.OtherSchemeName,
                            result.IbisCustomerReferenceUniquenessFailure.OtherSchemeApprovalNumber);

                        ModelState.AddModelError("IbisCustomerReference", errorMessage);

                        await SetBreadcrumb(schemeId);
                        model = await SetSchemeStatusAndCompetentAuthorities(schemeId, model);
                        return View(model);
                    }

                case UpdateSchemeInformationResult.ResultType.IbisCustomerReferenceMandatoryForEAFailure:
                    ModelState.AddModelError("IbisCustomerReference", "Enter a customer billing reference.");

                    await SetBreadcrumb(schemeId);
                    model = await SetSchemeStatusAndCompetentAuthorities(schemeId, model);
                    return View(model);

                default:
                    throw new NotSupportedException();
            }
        }
Ejemplo n.º 12
0
        private async Task<SchemeViewModel> SetSchemeStatusAndCompetentAuthorities(Guid schemeId, SchemeViewModel model)
        {
            using (var client = apiClient())
            {
                var scheme = await client.SendAsync(User.GetAccessToken(), new GetSchemeById(schemeId));
                model.StatusSelectList = new SelectList(GetStatuses(scheme.SchemeStatus), "Key", "Value");
                model.CompetentAuthorities = await GetCompetentAuthorities();
            }

            return model;
        }
Ejemplo n.º 13
0
        public async Task<ActionResult> EditScheme(Guid? schemeId)
        {
            if (schemeId.HasValue)
            {
                using (var client = apiClient())
                {
                    var scheme = await client.SendAsync(User.GetAccessToken(), new GetSchemeById(schemeId.Value));

                    if (!scheme.CanEdit)
                    {
                        return new HttpForbiddenResult();
                    }

                    List<int> years = await client.SendAsync(User.GetAccessToken(), new GetComplianceYears(scheme.OrganisationId));

                    var model = new SchemeViewModel
                    {
                        CompetentAuthorities = await GetCompetentAuthorities(),
                        ApprovalNumber = scheme.ApprovalName,
                        IbisCustomerReference = scheme.IbisCustomerReference,
                        CompetentAuthorityId = scheme.CompetentAuthorityId ?? Guid.Empty,
                        SchemeName = scheme.SchemeName,
                        ObligationType = scheme.ObligationType,
                        Status = scheme.SchemeStatus,
                        IsChangeableStatus = scheme.SchemeStatus != SchemeStatus.Rejected && scheme.SchemeStatus != SchemeStatus.Withdrawn,
                        OrganisationId = scheme.OrganisationId,
                        SchemeId = schemeId.Value,
                        ComplianceYears = years
                    };

                    model.StatusSelectList = new SelectList(GetStatuses(scheme.SchemeStatus), "Key", "Value");

                    await SetBreadcrumb(schemeId);
                    return View(model);
                }
            }
            else
            {
                return RedirectToAction("ManageSchemes");
            }
        }
Ejemplo n.º 14
0
        public void SaveUpdateRecord(SchemeViewModel scheme)
        {
            TSchemeMaster_BasicDetails tblSchemeMaster = new TSchemeMaster_BasicDetails();

            try
            {
                if (scheme.EditID <= 0)
                {
                    tblSchemeMaster.Product       = scheme.Product;
                    tblSchemeMaster.SchemeName    = scheme.SchemeName;
                    tblSchemeMaster.SchemeType    = scheme.SchemeType;
                    tblSchemeMaster.CalMethod     = scheme.Frequency;
                    tblSchemeMaster.Tenure        = scheme.MinTenure;
                    tblSchemeMaster.MaxTenure     = scheme.MaxTenure;
                    tblSchemeMaster.MinLoanAmt    = scheme.MinLoanAmount;
                    tblSchemeMaster.MaxLoanAmt    = scheme.MaxLoanAmount;
                    tblSchemeMaster.Ltv           = scheme.MinLTVPerc;
                    tblSchemeMaster.MaxLtv        = scheme.MaxLTVPerc;
                    tblSchemeMaster.ROI           = scheme.MinROIPerc;
                    tblSchemeMaster.MaxRoi        = scheme.MaxROIPerc;
                    tblSchemeMaster.GracePeriod   = scheme.GracePeriod;
                    tblSchemeMaster.LockInPeriod  = scheme.LockInPeriod;
                    tblSchemeMaster.ProChargeType = scheme.ProcessingFeeType;
                    tblSchemeMaster.ProCharge     = scheme.ProcessingCharges;
                    tblSchemeMaster.AmtLmtTo      = scheme.MaxProcessingCharge;
                    tblSchemeMaster.isActive      = scheme.Status;
                    tblSchemeMaster.UpdatedDate   = DateTime.Now;
                    tblSchemeMaster.UpdatedBy     = scheme.UpdatedBy;
                    tblSchemeMaster.BranchId      = Convert.ToInt32(HttpContext.Current.Session["BranchId"]);
                    tblSchemeMaster.CMPId         = Convert.ToInt32(HttpContext.Current.Session["CompanyId"]);
                    tblSchemeMaster.FYId          = Convert.ToInt32(HttpContext.Current.Session["FinancialYearId"]);
                    tblSchemeMaster.CreatedDate   = DateTime.Now;
                    tblSchemeMaster.CreatedBy     = scheme.CreatedBy;
                    _context.TSchemeMaster_BasicDetails.Add(tblSchemeMaster);
                    _context.SaveChanges();

                    //**********************************************************************************************
                    int SchemeId = _context.TSchemeMaster_BasicDetails.Max(x => x.SID);

                    foreach (var p in scheme.SchemeEffectiveROIList)
                    {
                        var effectiverow = new TSchemeMaster_EffectiveROI
                        {
                            SID = SchemeId,
                            NoofDefaultMonths = p.NoofDefaultMonths,
                            EffROI            = (decimal)p.EffectiveROIPerc,
                        };
                        _context.TSchemeMaster_EffectiveROI.Add(effectiverow);
                        _context.SaveChanges();
                    }
                    //**********************************************************************************************

                    if (scheme.Purity == null)
                    {
                        scheme.Purity = Purity;
                    }

                    var getrecord = _context.Mst_SchemePurity.Where(x => x.SchemeId == scheme.SchemeId).ToList();
                    if (getrecord != null)
                    {
                        foreach (var item1 in getrecord)
                        {
                            _context.Mst_SchemePurity.Remove(item1);
                            _context.SaveChanges();
                        }
                    }
                    foreach (var item in scheme.Purity)
                    {
                        Mst_SchemePurity tblSchemePurity = new Mst_SchemePurity();
                        tblSchemePurity.SchemeId = SchemeId;
                        tblSchemePurity.PurityId = item;
                        _context.Mst_SchemePurity.Add(tblSchemePurity);
                    }
                    _context.SaveChanges();
                }
                else
                {
                    tblSchemeMaster               = _context.TSchemeMaster_BasicDetails.Where(x => x.SID == scheme.SchemeId).FirstOrDefault();
                    tblSchemeMaster.Product       = scheme.Product;
                    tblSchemeMaster.SchemeName    = scheme.SchemeName;
                    tblSchemeMaster.SchemeType    = scheme.SchemeType;
                    tblSchemeMaster.CalMethod     = scheme.Frequency;
                    tblSchemeMaster.Tenure        = scheme.MinTenure;
                    tblSchemeMaster.MaxTenure     = scheme.MaxTenure;
                    tblSchemeMaster.MinLoanAmt    = scheme.MinLoanAmount;
                    tblSchemeMaster.MaxLoanAmt    = scheme.MaxLoanAmount;
                    tblSchemeMaster.Ltv           = scheme.MinLTVPerc;
                    tblSchemeMaster.MaxLtv        = scheme.MaxLTVPerc;
                    tblSchemeMaster.ROI           = scheme.MinROIPerc;
                    tblSchemeMaster.MaxRoi        = scheme.MaxROIPerc;
                    tblSchemeMaster.GracePeriod   = scheme.GracePeriod;
                    tblSchemeMaster.LockInPeriod  = scheme.LockInPeriod;
                    tblSchemeMaster.ProChargeType = scheme.ProcessingFeeType;
                    tblSchemeMaster.ProCharge     = scheme.ProcessingCharges;
                    tblSchemeMaster.AmtLmtTo      = scheme.MaxProcessingCharge;
                    tblSchemeMaster.isActive      = scheme.Status;
                    tblSchemeMaster.UpdatedDate   = DateTime.Now;
                    tblSchemeMaster.UpdatedBy     = scheme.UpdatedBy;
                    tblSchemeMaster.BranchId      = Convert.ToInt32(HttpContext.Current.Session["BranchId"]);
                    tblSchemeMaster.CMPId         = Convert.ToInt32(HttpContext.Current.Session["CompanyId"]);
                    tblSchemeMaster.FYId          = Convert.ToInt32(HttpContext.Current.Session["FinancialYearId"]);
                    _context.SaveChanges();

                    #region Effective ROI
                    List <TSchemeMaster_EffectiveROI> NewEffectiveROIList = new List <TSchemeMaster_EffectiveROI>();
                    foreach (var p in scheme.SchemeEffectiveROIList)
                    {
                        var Findobject = _context.TSchemeMaster_EffectiveROI.Where(x => x.ROIID == p.ID && x.SID == scheme.SchemeId).FirstOrDefault();
                        if (Findobject == null)
                        {
                            var ratetrnnew = new TSchemeMaster_EffectiveROI
                            {
                                SID = scheme.SchemeId,
                                NoofDefaultMonths = p.NoofDefaultMonths,
                                EffROI            = (decimal)p.EffectiveROIPerc,
                            };
                            _context.TSchemeMaster_EffectiveROI.Add(ratetrnnew);
                        }
                        else
                        {
                            Findobject.NoofDefaultMonths = p.NoofDefaultMonths;
                            Findobject.EffROI            = (decimal)p.EffectiveROIPerc;
                        }
                        NewEffectiveROIList.Add(Findobject);
                    }
                    #endregion

                    #region Effective ROI details remove
                    //take the loop of table and check from list if found in list then not remove else remove from table itself
                    var trnobjlist = _context.TSchemeMaster_EffectiveROI.Where(x => x.SID == scheme.SchemeId).ToList();
                    if (trnobjlist != null)
                    {
                        foreach (TSchemeMaster_EffectiveROI item in trnobjlist)
                        {
                            if (NewEffectiveROIList.Contains(item))
                            {
                                continue;
                            }
                            else
                            {
                                _context.TSchemeMaster_EffectiveROI.Remove(item);
                            }
                        }
                        _context.SaveChanges();
                    }
                    #endregion Effective ROI details remove

                    //*************************************************************************************************************
                    if (scheme.Purity == null)
                    {
                        scheme.Purity = Purity;
                    }
                    //var getrecord = _context.Mst_SchemePurity.Where(x => x.SchemeId == scheme.SchemeId).ToList();
                    //if (getrecord != null)
                    //{
                    //    foreach (var item1 in getrecord)
                    //    {
                    //        _context.Mst_SchemePurity.Remove(item1);
                    //        _context.SaveChanges();
                    //    }
                    //}
                    //foreach (var item in scheme.Purity)
                    //{
                    //    Mst_SchemePurity tblSchemePurity = new Mst_SchemePurity();
                    //    tblSchemePurity.SchemeId = scheme.SchemeId;
                    //    tblSchemePurity.PurityId = item;
                    //    _context.Mst_SchemePurity.Add(tblSchemePurity);
                    //}

                    List <Mst_SchemePurity> NewSchemePurityList = new List <Mst_SchemePurity>();
                    foreach (var p in scheme.Purity)
                    {
                        var Findobject = _context.Mst_SchemePurity.Where(x => x.SchemeId == scheme.SchemeId && x.PurityId == p).FirstOrDefault();
                        if (Findobject == null)
                        {
                            var schemepurity = new Mst_SchemePurity
                            {
                                PurityId = p,
                                SchemeId = scheme.SchemeId,
                            };
                            _context.Mst_SchemePurity.Add(schemepurity);
                        }
                        else
                        {
                            Findobject.SchemeId = scheme.SchemeId;
                            Findobject.PurityId = p;
                        }
                        NewSchemePurityList.Add(Findobject);
                    }

                    #region Effective ROI details remove
                    //take the loop of table and check from list if found in list then not remove else remove from table itself
                    var purityobjlist = _context.Mst_SchemePurity.Where(x => x.SchemeId == scheme.SchemeId).ToList();
                    if (purityobjlist != null)
                    {
                        foreach (Mst_SchemePurity item in purityobjlist)
                        {
                            if (NewSchemePurityList.Contains(item))
                            {
                                continue;
                            }
                            else
                            {
                                _context.Mst_SchemePurity.Remove(item);
                            }
                        }
                        _context.SaveChanges();
                    }
                    #endregion Effective ROI details remove

                    _context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }