Пример #1
0
        public ActionResult Create(TariffViewModel tariff)
        {
            tariff.PmtFrequency = 1;
            if (tariff.MinAge > tariff.MaxAge)
            {
                ModelState.AddModelError("MinAge", "Minimal age is greater than maximal");
            }
            if (tariff.MinAmount > tariff.MaxAmount)
            {
                ModelState.AddModelError("MinAmount", "Minimal loan amount is greater than maximal");
            }
            if (tariff.MinTerm > tariff.MaxTerm)
            {
                ModelState.AddModelError("MinTerm", "Minimal term is greater than maximal");
            }
            if (Service.GetTariffs().Any(t => t.Name.ToLower() == tariff.Name.ToLower()))
            {
                ModelState.AddModelError("Name", "There is already tariff with equal name");
            }
            if (ModelState.IsValid)
            {
                tariff.CreationDate = Service.GetCurrentDate();
                Service.UpsertTariff(tariff.Convert());
                return(RedirectToAction("Index"));
            }

            return(View(tariff));
        }
        public static void SeedTariffs(ITariffManager tariffManager, int operatorId)
        {
            TariffViewModel tariff1 = new TariffViewModel();

            tariff1.Name        = "Low";
            tariff1.Description = "Cheap tariff";
            tariff1.OperatorId  = operatorId;
            tariff1.Price       = 35;
            tariff1.Limit       = 3;

            TariffViewModel tariff2 = new TariffViewModel();

            tariff2.Name        = "Medium";
            tariff2.Description = "Better choise";
            tariff2.OperatorId  = operatorId;
            tariff2.Price       = 55;
            tariff2.Limit       = 5;

            TariffViewModel tariff3 = new TariffViewModel();

            tariff3.Name        = "High";
            tariff3.Description = "All inclusive";
            tariff3.OperatorId  = operatorId;
            tariff3.Price       = 80;
            tariff3.Limit       = 10;

            tariffManager.Insert(tariff1);
            tariffManager.Insert(tariff2);
            tariffManager.Insert(tariff3);
        }
Пример #3
0
        /// <summary>
        /// Local helper method to help regenerate properties neccessary when navigating between actions
        /// </summary>
        /// <typeparam name="TariffViewModel">The type of view model object</typeparam>
        /// <typeparam name="bool">The type of update flag</typeparam>
        /// <param name="source">Old data of new generated properties, set it null will automatically set null all properties other than SelectList items</param>
        /// <param name="update">Boolean value that indicates the view model is going to update or reset. Set true</param>
        /// <returns>New view model data to bind to target view</returns>
        private TariffViewModel GenerateProperties(TariffViewModel source, bool update)
        {
            var productTypeList = service.GetProductTypes().Select(item => new ProductTypeFormViewModel()
            {
                ProdCode    = item.PROD_CODE,
                ProductType = item.PRODUCT_TYPE
            }).AsQueryable();

            var data = source;

            if (!update || data == null)
            {
                data = new TariffViewModel();
            }
            data.MainMenu        = mainMenu;
            data.CurrentMenu     = PageInfo;
            data.IsNotViewer     = CurrentUser.UserRole == Enums.UserRole.Administrator;
            data.ProductTypeList = GenericHelpers <ProductTypeFormViewModel> .GenerateList(productTypeList, item => item.ProdCode, item => item.ProductType);

            data.ShowActionOptions   = data.IsNotViewer;
            data.EditMode            = false;
            data.EnableFormInput     = true;
            data.ViewModel.IsCreator = false;
            data.ViewModel           = this.FormatCurrency(data.ViewModel);
            return(data);
        }
Пример #4
0
        public ActionResult Edit(TariffViewModel tariff)
        {
            tariff.PmtFrequency = 1;
            if (tariff.MinAge > tariff.MaxAge)
            {
                ModelState.AddModelError("MinAge", "Minimal age is greater than maximal");
            }
            if (tariff.MinAmount > tariff.MaxAmount)
            {
                ModelState.AddModelError("MinAmount", "Minimal loan amount is greater than maximal");
            }
            if (tariff.MinTerm > tariff.MaxTerm)
            {
                ModelState.AddModelError("MinTerm", "Minimal term is greater than maximal");
            }
            if (ModelState.IsValid)
            {
                Service.UpsertTariff(tariff.Convert());
                return(RedirectToAction("Index"));
            }
            var id = tariff.Id;

            ViewBag.CanBeEdited = !Service.GetLoans().Any(l => l.Application.TariffId == id) &&
                                  !Service.GetLoanApplications().Any(la => la.TariffId == id);
            return(View(tariff));
        }
Пример #5
0
        public ActionResult Edit(int id, TariffViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Tariff updatedTariff     = TariffConverter.createTariffFromViewModel(model);
                    string updatedTariffJSON = JsonConvert.SerializeObject(updatedTariff);

                    EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.editTariff(id, updatedTariffJSON));

                    if (response.status == EMResponse.OK)
                    {
                        return(RedirectToAction("Home", "Meter", new { meterId = model.meterId, propertyId = model.BelongsToProperty, type = model.fuel }));
                    }
                    else
                    {
                        return(View("Error"));
                    }
                }

                return(View(model));
            }
            catch
            {
                return(View("Error"));
            }
        }
Пример #6
0
        public void Insert_EmptyTariffNotNull_ErrorResult()
        {
            TariffViewModel testTariff = new TariffViewModel()
            {
                Id = 2
            };

            var testList = new List <Tariff> {
                new Tariff()
                {
                    Id          = 2,
                    Description = "test",
                    Limit       = 8,
                    Name        = "testName",
                    Price       = 5,
                    OperatorId  = 4
                },
                new Tariff()
                {
                    Id = 4
                }
            };

            mockUnitOfWork.Setup(n => n.Tariffs
                                 .Get(It.IsAny <Expression <Func <Tariff, bool> > >(), null, "")).Returns(testList);
            mockUnitOfWork.Setup(n => n.Save());
            var result = manager.Insert(testTariff);

            Assert.IsFalse(result);
        }
Пример #7
0
        public IActionResult DeleteConfirmed(int?id)
        {
            TariffViewModel tariff = tariffManager.GetTariffs(id.Value).FirstOrDefault(r => r.Id == id);

            tariffManager.Delete(tariff, id.Value);
            return(RedirectToAction("Operators", "Operator"));
        }
Пример #8
0
        /// <summary>
        /// Action to display main page module of Master Tariff
        /// </summary>
        /// <returns>The action result that will handled by HTTP request</returns>
        public ActionResult Index()
        {
            var data = new TariffViewModel()
            {
                MainMenu        = mainMenu,
                CurrentMenu     = PageInfo,
                IsNotViewer     = (CurrentUser.UserRole == Enums.UserRole.Administrator ? true : false),
                IsAdminApprover = refService.IsAdminApprover(CurrentUser.USER_ID)
            };

            try
            {
                var tariff = service.GetTariff();
                data.TariffList = AutoMapper.Mapper.Map <List <TariffModel> >(tariff).ToList();
                var list = new List <TariffModel>(data.TariffList);
                data.TariffList = new List <TariffModel>();
                var approvalStatusApproved  = refService.GetReferenceByKey(ReferenceKeys.ApprovalStatus.Completed).REFF_ID;
                var approvalStatusSubmitted = refService.GetReferenceByKey(ReferenceKeys.ApprovalStatus.AwaitingAdminApproval).REFF_ID;
                foreach (var item in list)
                {
                    item.IsCreator   = CurrentUser.USER_ID == item.CreatedBy;
                    item.IsApproved  = item.ApprovalStatus == approvalStatusApproved;
                    item.IsSubmitted = item.ApprovalStatus == approvalStatusSubmitted;
                    data.TariffList.Add(item);
                }
            }
            catch (Exception ex)
            {
                AddExceptionMessage(ex);
            }
            return(View("Index", data));
        }
Пример #9
0
        public void Delete_EmptyTariff_SuccessResult()
        {
            TariffViewModel testTariff = new TariffViewModel();

            mockUnitOfWork.Setup(n => n.Tariffs.GetById(9)).Returns(modelWithId);
            mockUnitOfWork.Setup(n => n.Tariffs.Delete(modelWithId));
            mockUnitOfWork.Setup(n => n.Save());
            var result = manager.Delete(testTariff, 9);

            Assert.IsTrue(result);
        }
Пример #10
0
 public IActionResult Update(TariffViewModel item)
 {
     if (ModelState.IsValid)
     {
         tariffManager.Update(item);
         return(View());
     }
     else
     {
         return(View());
     }
 }
        public ActionResult Create([Bind(Include = "Id,Since,Until,Kind,ConsumptionRanges")] TariffViewModel tariffViewModel)
        {
            if (ModelState.IsValid)
            {
                var tariff = tariffViewModel.ToTariff(_db);
                _db.Tariffs.Add(tariff);
                _db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(tariffViewModel));
        }
Пример #12
0
 public IActionResult Create(TariffViewModel item)
 {
     if (ModelState.IsValid)
     {
         tariffManager.Insert(item);
         return(Json(new { newUrl = Url.Action("Operators", "Operator") }));
     }
     else
     {
         return(new ObjectResult("Fill in all fields"));
     }
 }
Пример #13
0
        public ActionResult Edit(TariffViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    AddMessageInfo("Form incomplete!", Enums.MessageInfoType.Error);
                    model = GenerateProperties(model, true);
                    var history = this.changeHistoryBll.GetByFormTypeAndFormId(Enums.MenuList.Tariff, model.ViewModel.Id.ToString());
                    //var workflow = refService.GetWorkflowHistory((int)Enums.MenuList.Tariff, model.ViewModel.Id).ToList();
                    model.ChangesHistoryList = Mapper.Map <List <ChangesHistoryItemModel> >(history);
                    model.WorkflowHistory    = GetWorkflowHistory(model.ViewModel.Id);
                    model.EnableFormInput    = true;
                    model.EditMode           = true;
                    return(View("Edit", model));
                }

                var data = model.ViewModel;
                if (data.ValidEndDate < data.ValidStartDate || data.MaximumHJE < data.MinimumHJE)
                {
                    if (data.ValidEndDate < data.ValidStartDate)
                    {
                        AddMessageInfo("Valid end date must be later than start date!", Enums.MessageInfoType.Error);
                    }
                    if (data.MaximumHJE < data.MinimumHJE)
                    {
                        AddMessageInfo("Maximum HJE must be greater than Minimum HJE!", Enums.MessageInfoType.Error);
                    }
                    var history = refService.GetChangesHistory((int)Enums.MenuList.Tariff, model.ViewModel.Id.ToString()).ToList();
                    //var workflow = refService.GetWorkflowHistory((int)Enums.MenuList.Tariff, model.ViewModel.Id).ToList();
                    model.ChangesHistoryList = Mapper.Map <List <ChangesHistoryItemModel> >(history);
                    model.WorkflowHistory    = GetWorkflowHistory(model.ViewModel.Id);
                    model = GenerateProperties(model, true);
                    model.EnableFormInput = true;
                    model.EditMode        = true;
                    return(View("Edit", model));
                }
                var entity = Mapper.Map <TARIFF>(data);
                service.Save(entity, ReferenceKeys.ApprovalStatus.Edited, Enums.ActionType.Modified, (int)CurrentUser.UserRole, CurrentUser.USER_ID, null, null);
                AddMessageInfo(Constans.SubmitMessage.Updated, Enums.MessageInfoType.Success);

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                AddExceptionMessage(ex);
                model = GenerateProperties(model, true);
                model.EnableFormInput = true;
                model.EditMode        = true;
                return(View("Edit", model));
            }
        }
Пример #14
0
        public void Insert_EmptyTariffNull_SuccessResult()
        {
            TariffViewModel testTariff = new TariffViewModel();

            var tariff = mockUnitOfWork.Setup(n => n.Tariffs.Get(It.IsAny <Expression <Func <Tariff, bool> > >(), null, "")).Returns(new List <Tariff>()
            {
            });

            mockUnitOfWork.Setup(n => n.Save());
            var result = manager.Insert(testTariff);

            Assert.IsTrue(result);
        }
Пример #15
0
        public void Insert_SaveTariff_ErrorResult()
        {
            TariffViewModel testTariff = new TariffViewModel();
            var             tariff     = mockUnitOfWork.Setup(n => n.Tariffs.Get(It.IsAny <Expression <Func <Tariff, bool> > >(), null, "")).Returns(new List <Tariff>()
            {
            });

            mockUnitOfWork.Setup(n => n.Save()).Throws(new Exception());

            var result = manager.Insert(testTariff);

            Assert.IsFalse(result);
        }
Пример #16
0
        public void Delete_EmptyTariff_ErrorResult()
        {
            TariffViewModel testTariff = new TariffViewModel();
            int             testInt    = 3;

            mockUnitOfWork.Setup(n => n.Tariffs.Delete(modelWithId));
            mockUnitOfWork.Setup(n => n.Tariffs.GetById(2)).Returns((Tariff)null);
            mockUnitOfWork.Setup(n => n.Save());

            var result = manager.Delete(testTariff, testInt);

            Assert.IsFalse(result);
        }
Пример #17
0
        public void Delete_ExistingObject_ErrorResult()
        {
            TariffViewModel testTariff = new TariffViewModel();

            mockUnitOfWork.Setup(n => n.Tariffs.GetById(9)).Returns(new Tariff()
            {
                Id = 9, Name = "kjn", Limit = 4, Price = 5, Description = "test", OperatorId = 4
            });
            mockUnitOfWork.Setup(n => n.Save()).Throws(new Exception());

            var result = manager.Delete(testTariff, 9);

            Assert.IsFalse(result);
        }
Пример #18
0
        public void Update_ExistingObject_ErrorResult()
        {
            TariffViewModel testTariff = new TariffViewModel();

            mockUnitOfWork.Setup(n => n.Tariffs.Update(new Tariff()
            {
                Id = 9, Name = "kjn", Limit = 4, Price = 5, Description = "test", OperatorId = 4
            }));
            mockUnitOfWork.Setup(n => n.Save()).Throws(new Exception());
            var result = manager.Update(testTariff);

            TestContext.WriteLine("throw-catch sometimes it works incorrectly or Update does not make Exception");

            Assert.IsFalse(result);
        }
Пример #19
0
        public IActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            TariffViewModel tariff = tariffManager.GetTariffById(id.Value);

            if (tariff == null)
            {
                return(NotFound());
            }
            return(View(tariff));
        }
        //todo: investigate why ConsumptionRangeViewModel ctor conversion instead of ConsumptionRangeViewModel.From leads to an error "Only parameterless constructors and initializers are supported in LINQ to Entities"
        public ActionResult Create()
        {
            if (!_db.ConsumptionRanges.Any())
            {
                return(RedirectToAction("Create", "ConsumptionRange"));
            }

            var tarifCreateData = new TariffViewModel
            {
                ConsumptionRanges = _db.ConsumptionRanges
                                    .Select(TariffViewModel.From)
                                    .ToList()
            };

            return(View(tarifCreateData));
        }
Пример #21
0
        /// <summary>
        /// Update exist Tariff
        /// </summary>
        /// <param name="item">ViewModel wich need to update in db</param>
        /// <returns>Success, if transaction succesfull; !Success if not, Details contains error message if any</returns>
        public bool Update(TariffViewModel item)
        {
            var result = mapper.Map <Tariff>(item);

            try
            {
                unitOfWork.Tariffs.Update(result);
                unitOfWork.Save();
            }
            catch
            {
                return(false);
            }

            return(true);
        }
Пример #22
0
        public ActionResult Create(TariffViewModel tariffViewModel)
        {
            string fuel       = tariffViewModel.fuel;
            int    meterId    = tariffViewModel.meterId;
            int    propertyId = tariffViewModel.BelongsToProperty;

            try
            {
                if (ModelState.IsValid)
                {
                    Tariff tariff = TariffConverter.createTariffFromViewModel(tariffViewModel);

                    EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.createTariff(tariff.SCValue, tariff.StartDate.ToString(),
                                                                                                        tariff.SCPeriod.Id, tariff.BandPeriod.Id, tariffViewModel.meterId));

                    if (response.status == EMResponse.OK)
                    {
                        int tariffId = JsonConvert.DeserializeObject <int>(response.data);


                        foreach (TariffBand band in tariff.Bands)
                        {
                            EMResponse bandResponse = JsonConvert.DeserializeObject <EMResponse>(emAPI.createTariffBand(band.UpperkWhLimit,
                                                                                                                        band.LowerkWhLimit,
                                                                                                                        band.UnitRate, tariffId));
                            if (bandResponse.status != EMResponse.OK)
                            {
                                return(View("Error"));
                            }
                        }

                        return(RedirectToAction("Home", "Meter", new { meterId = tariffViewModel.meterId, propertyId = tariffViewModel.BelongsToProperty, type = tariffViewModel.fuel }));
                    }
                }
                else
                {
                    return(View(tariffViewModel));
                }

                return(View(tariffViewModel));
            }
            catch
            {
                return(View("Error"));
            }
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Tariff tariff = _db.Tariffs.Find(id);

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

            var tariffViewModel = TariffViewModel.FromTariff(tariff, _db);

            return(View(tariffViewModel));
        }
Пример #24
0
        protected override void Initialize()
        {
            manager = new TariffManager(mockUnitOfWork.Object, mockMapper.Object);
            TestContext.WriteLine("Overrided");

            modelWithId = new Tariff()
            {
                Id = 9, Name = "kjn", Limit = 4, Price = 5, Description = "test", OperatorId = 4
            };
            itemWithId = new TariffViewModel()
            {
                Id = 9, Name = "kjn", Limit = 4, Price = 5, Description = "test", OperatorId = 4
            };
            listModelWithId = new List <TariffViewModel>()
            {
                itemWithId
            };
        }
Пример #25
0
        //
        // GET: /Tariff/Create

        public ActionResult Create(int meterId, int propertyId, string fuel)
        {
            try
            {
                TariffViewModel model = new TariffViewModel();
                model.fuel              = fuel;
                model.meterId           = meterId;
                model.BelongsToProperty = propertyId;
                model.MinimumStartDate  = Convert.ToDateTime(ResponseReader.convertTo <string>(emAPI.getMinimumTariffDate(meterId)));
                model.StartDate         = model.MinimumStartDate;

                ///cannot convert from JSON to a List<Period>, despite JSON being valid.  Therefore SCPeriods is populated on ViewModel creation, see TariffViewModel.cs.
                return(View(model));
            }
            catch
            {
                return(View("Error"));
            }
        }
Пример #26
0
 public ActionResult Delete(TariffViewModel model)
 {
     try
     {
         EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.deleteTariff(model.Id));
         if (response.status == EMResponse.OK)
         {
             return(RedirectToAction("Home", "Meter", new { meterId = model.meterId, propertyId = model.BelongsToProperty, type = model.fuel }));
         }
         else
         {
             return(View("Error"));
         }
     }
     catch
     {
         return(View("Error"));
     }
 }
Пример #27
0
        /// <summary>
        /// Delete exist Tariff
        /// </summary>
        /// <param name="item">ViewModel wich need to update in db</param>
        /// <param name="id">Tariff Id</param>
        /// <returns></returns>
        public bool Delete(TariffViewModel item, int id)
        {
            var tar = unitOfWork.Tariffs.GetById(id);

            if (tar == null)
            {
                return(false);
            }
            try
            {
                unitOfWork.Tariffs.Delete(tar);
                unitOfWork.Save();
            }
            catch
            {
                return(false);
            }
            return(true);
        }
        public ActionResult Edit([Bind(Include = "Id,Since,Until,Kind,ConsumptionRanges")] TariffViewModel tariffViewModel)
        {
            if (ModelState.IsValid)
            {
                var tariff = tariffViewModel.ToTariff(_db);

                foreach (var range in tariff.Ranges)
                {
                    range.Tariff           = tariff;
                    _db.Entry(range).State = EntityState.Modified;
                }
                _db.SaveChanges();

                _db.Entry(tariff).State = EntityState.Modified;
                _db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            return(View(tariffViewModel));
        }
Пример #29
0
        //
        // GET: /Tariff/Delete/5

        public ActionResult Delete(int tariffId, int meterId, int propertyId, string type)
        {
            try
            {
                Tariff          tariff = ResponseReader.convertTo <Tariff>(emAPI.getTariff(tariffId));
                TariffViewModel model  = TariffConverter.createTariffViewFromTariff(tariff, true);
                model.meterId           = meterId;
                model.Id                = tariffId;
                model.fuel              = type;
                model.BelongsToProperty = propertyId;
                TimeSpan oneDay = new TimeSpan(1, 0, 0, 0);
                model.MinimumStartDate = Convert.ToDateTime(ResponseReader.convertTo <string>(emAPI.getMinimumTariffDate(meterId)));
                model.StartDate        = model.MinimumStartDate + oneDay;

                return(PartialView(model));
            }
            catch
            {
                return(View("Error"));
            }
        }
Пример #30
0
 public ActionResult Revise(TariffViewModel model)
 {
     try
     {
         var  entity      = service.Find(model.ViewModel.Id);
         bool emailStatus = service.Save(entity, ReferenceKeys.ApprovalStatus.Edited, Enums.ActionType.Reject, (int)Enums.UserRole.AdminApprover, CurrentUser.USER_ID, refService.GetUserEmail(CurrentUser.USER_ID), String.Format("{0} [{1} {2}]", ReferenceLookup.Instance.GetReferenceKey(ReferenceKeys.EmailSender.AdminApprover), CurrentUser.FIRST_NAME, CurrentUser.LAST_NAME), model.ViewModel.RevisionData.Comment);
         if (emailStatus)
         {
             AddMessageInfo(Constans.SubmitMessage.Updated + " and successfully send email!", Enums.MessageInfoType.Success);
         }
         else
         {
             AddMessageInfo(Constans.SubmitMessage.Updated + " but failed to sending email!", Enums.MessageInfoType.Success);
         }
     }
     catch (Exception ex)
     {
         AddExceptionMessage(ex);
     }
     return(RedirectToAction("Index"));
 }