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); }
/// <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); }
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)); }
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")); } }
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); }
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")); }
/// <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)); }
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); }
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)); }
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")); } }
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)); } }
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); }
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); }
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); }
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); }
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); }
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)); }
/// <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); }
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)); }
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 }; }
// // 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")); } }
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")); } }
/// <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)); }
// // 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")); } }
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")); }