public IActionResult GetTariff([FromQuery] TariffModel model) { if (!CommonMethods.GetTenant(model, out Tenant tenant)) { Log.Error("Model without tenant"); return(BadRequest(new { error = "portalNameEmpty", message = "PortalName is required" })); } if (tenant == null) { Log.Error("Tenant not found"); return(BadRequest(new { error = "portalNameNotFound", message = "Portal not found" })); } return(GetTariff(tenant)); }
public IActionResult SetTariff(TariffModel model) { if (!CommonMethods.GetTenant(model, out Tenant tenant)) { Log.Error("Model without tenant"); return(BadRequest(new { error = "portalNameEmpty", message = "PortalName is required" })); } if (tenant == null) { Log.Error("Tenant not found"); return(BadRequest(new { error = "portalNameNotFound", message = "Portal not found" })); } var quota = new TenantQuota(tenant.TenantId) { ActiveUsers = 10000, Features = model.Features ?? "", MaxFileSize = 1024 * 1024 * 1024, MaxTotalSize = 1024L * 1024 * 1024 * 1024 - 1, Name = "api", }; if (model.ActiveUsers != default) { quota.ActiveUsers = model.ActiveUsers; } if (model.MaxTotalSize != default) { quota.MaxTotalSize = model.MaxTotalSize; } if (model.MaxFileSize != default) { quota.MaxFileSize = model.MaxFileSize; } HostedSolution.SaveTenantQuota(quota); var tariff = new Tariff { QuotaId = quota.Id, DueDate = model.DueDate != default ? model.DueDate : DateTime.MaxValue, }; HostedSolution.SetTariff(tenant.TenantId, tariff); return(GetTariff(tenant)); }
public bool CheckAllowPermissionAction(Guid id, PermissionRange range) { var result = new TariffModel(); result.setTariff = GetTariffById(id); if (result.setTariff == null) { return(false); } BaseUpdateModel baseModel = new BaseUpdateModel { UserCreated = result.setTariff.UserCreated, CompanyId = result.setTariff.CompanyId, DepartmentId = result.setTariff.DepartmentId, OfficeId = result.setTariff.OfficeId, GroupId = result.setTariff.GroupId }; int code = PermissionExtention.GetPermissionCommonItem(baseModel, range, currentUser); if (code == 403) { return(false); } return(true); }
public IActionResult GetTariff(Guid tariffId) { PermissionRange permissionRange; ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.settingTariff); permissionRange = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.Detail); bool isAllowDelete = tariffService.CheckAllowPermissionAction(tariffId, permissionRange); if (isAllowDelete == false) { return(BadRequest(new ResultHandle { Status = false, Message = stringLocalizer[LanguageSub.DO_NOT_HAVE_PERMISSION].Value })); } var result = new TariffModel(); result.setTariff = tariffService.GetTariffById(tariffId); result.setTariffDetails = tariffService.GetListTariffDetailByTariffId(tariffId)?.OrderBy(x => x.DatetimeCreated).ToList(); if (result == null) { return(Ok(new ResultHandle { Status = false, Message = "Không tìm thấy Tariff", Data = result })); } else { return(Ok(new ResultHandle { Status = true, Message = "Success", Data = result })); } }
/// <summary> /// Method to format currency /// </summary> /// <param name="src"></param> /// <returns></returns> private TariffModel FormatCurrency(TariffModel src) { src.MinimumHjeDisplay = String.Format("{0:N}", src.MinimumHJE); src.MaximumHjeDisplay = String.Format("{0:N}", src.MaximumHJE); src.TariffDisplay = String.Format("{0:N}", src.Tariff); return(src); }
public void GetOffers_ThrowsArgumentException_IfConsumptionIsLowerThanZero() { decimal consumption = -100; TariffModel model = new TariffModel(); var ex = Assert.ThrowsException <ArgumentException>(() => model.GetOffers(consumption)); Assert.AreEqual("Consumption should be non-negative", ex.Message); }
private TariffModel InitializeTariffModel() { TariffModel model = new TariffModel(); ProductA productA = new ProductA(productA_Name); ProductB productB = new ProductB(productB_Name); model.AddProduct(productA); model.AddProduct(productB); return(model); }
public ActionResult <bool> Save([FromBody] TariffModel tariff) { try { _tariffService.Submit(_mapper.Map <Tariff>(tariff)); return(true); } catch (Exception exception) { return(this.StatusCode(StatusCodes.Status500InternalServerError, exception.Message)); } }
public IActionResult UpdateTariff(TariffModel model) { PermissionRange permissionRange; ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.settingTariff); permissionRange = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.Write); if (permissionRange == PermissionRange.None) { return(BadRequest(new ResultHandle { Status = false, Message = stringLocalizer[LanguageSub.DO_NOT_HAVE_PERMISSION].Value })); } bool code = tariffService.CheckAllowPermissionAction(model.setTariff.Id, permissionRange); if (code == false) { return(BadRequest(new ResultHandle { Status = false, Message = stringLocalizer[LanguageSub.DO_NOT_HAVE_PERMISSION].Value })); } if (!ModelState.IsValid) { return(BadRequest()); } var checkData = tariffService.CheckExistsDataTariff(model); if (!checkData.Success) { return(Ok(new ResultHandle { Status = checkData.Success, Message = checkData.Exception.Message.ToString(), Data = checkData.Code })); } model.setTariff.UserModified = currentUser.UserID; var hs = tariffService.UpdateTariff(model); var message = HandleError.GetMessage(hs, Crud.Update); ResultHandle result = new ResultHandle { Status = hs.Success, Message = stringLocalizer[message].Value, Data = model }; return(Ok(result)); }
public IActionResult CheckAllowDelete(Guid id) { PermissionRange permissionRange; ICurrentUser _user = null; var result = new TariffModel(); result.setTariff = tariffService.GetTariffById(id); if (result.setTariff == null) { return(Ok(false)); } _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.settingTariff); permissionRange = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.Delete); return(Ok(tariffService.CheckAllowPermissionAction(id, permissionRange))); }
/// <summary> /// * Check tồn tại tariff. Check theo các field: /// - Tariff Name (Không được trùng tên), /// - Effective Date - Expried Date /// - Tariff Type, Product Service, Cargo Type, Service Mode /// * Check list tariff detail không được phép trống /// </summary> /// <param name="model"></param> /// <returns></returns> public HandleState CheckExistsDataTariff(TariffModel model) { try { var hs = CheckDuplicateTariff(model.setTariff); if (!hs.Success) { return(hs); } //Check list tariff detail không được phép trống if (model.setTariffDetails.Count == 0) { return(new HandleState("Please add tariff to create new OPS tariff")); } return(new HandleState()); } catch (Exception ex) { return(new HandleState(ex.Message)); } }
/// <summary> /// Add tariff & list tariff detail /// </summary> /// <param name="model"></param> /// <returns></returns> public HandleState AddTariff(TariffModel model) { try { var userCurrent = currentUser.UserID; var today = DateTime.Now; model.setTariff.GroupId = currentUser.GroupId; model.setTariff.DepartmentId = currentUser.DepartmentId; model.setTariff.OfficeId = currentUser.OfficeID; model.setTariff.CompanyId = currentUser.CompanyID; //Insert SetTariff var tariff = mapper.Map <SetTariff>(model.setTariff); tariff.Id = model.setTariff.Id = Guid.NewGuid(); tariff.UserCreated = tariff.UserModified = userCurrent; tariff.DatetimeCreated = tariff.DatetimeModified = today; var hs = DataContext.Add(tariff); if (hs.Success) { //Insert list SetTariffDetail var tariffDetails = mapper.Map <List <SetTariffDetail> >(model.setTariffDetails); tariffDetails.ForEach(r => { r.Id = Guid.NewGuid(); r.TariffId = tariff.Id; r.UserCreated = r.UserModified = userCurrent; r.DatetimeCreated = r.DatetimeModified = today; }); var hsTariffDetail = setTariffDetailRepo.Add(tariffDetails); } return(hs); } catch (Exception ex) { return(new HandleState(ex.Message)); } }
public IActionResult SetTariff(TariffModel model) { if (model == null) { return(BadRequest(new { errors = "PortalName is required." })); } if (!ModelState.IsValid) { var errors = new JArray(); foreach (var k in ModelState.Keys) { errors.Add(ModelState[k].Errors.FirstOrDefault().ErrorMessage); } return(BadRequest(new { errors })); } var tenant = HostedSolution.GetTenant((model.PortalName ?? "").Trim()); if (tenant == null) { return(BadRequest(new { errors = "Tenant not found." })); } var quota = new TenantQuota(tenant.TenantId) { ActiveUsers = 10000, Features = model.Features ?? "", MaxFileSize = 1024 * 1024 * 1024, MaxTotalSize = 1024L * 1024 * 1024 * 1024 - 1, Name = "api", }; if (model.ActiveUsers != default) { quota.ActiveUsers = model.ActiveUsers; } if (model.MaxTotalSize != default) { quota.MaxTotalSize = model.MaxTotalSize; } if (model.MaxFileSize != default) { quota.MaxFileSize = model.MaxFileSize; } HostedSolution.SaveTenantQuota(quota); var tariff = new Tariff { QuotaId = quota.Id, DueDate = model.DueDate != default ? model.DueDate : DateTime.MaxValue, }; HostedSolution.SetTariff(tenant.TenantId, tariff); tariff = HostedSolution.GetTariff(tenant.TenantId, false); quota = HostedSolution.GetTenantQuota(tenant.TenantId); return(Ok(new { errors = "", tenant = ToTenantWrapper(tenant), tariff = ToTariffWrapper(tariff, quota) })); }
/// <summary> /// Update tariff & list tariff model /// </summary> /// <param name="model"></param> /// <returns></returns> public HandleState UpdateTariff(TariffModel model) { try { var today = DateTime.Now; //Update SetTariff var tariff = mapper.Map <SetTariff>(model.setTariff); //var tariffCurrent = DataContext.Get(x => x.Id == tariff.Id).FirstOrDefault(); //tariff.UserCreated = tariffCurrent.UserCreated; //tariff.DatetimeCreated = tariffCurrent.DatetimeCreated; tariff.DatetimeModified = today; var hs = DataContext.Update(tariff, x => x.Id == tariff.Id); if (hs.Success) { var tariffDetails = mapper.Map <List <SetTariffDetail> >(model.setTariffDetails); //Remove các tariff mà user đã gỡ bỏ var listIdTariffDetail = tariffDetails.Select(s => s.Id); var listIdTariffDetailNeedRemove = setTariffDetailRepo.Get(x => x.TariffId == tariff.Id && !listIdTariffDetail.Contains(x.Id)).Select(x => x.Id); if (listIdTariffDetailNeedRemove.Count() > 0) { var hsTariffDetailDel = setTariffDetailRepo.Delete(x => listIdTariffDetailNeedRemove.Contains(x.Id)); } //Update các tariff detail cũ var tariffDetailOld = tariffDetails.Where(x => x.Id != Guid.Empty); //&& setTariffDetailRepo.Get(g => g.TariffId == tariff.Id).Select(s => s.Id).Contains(x.Id)); if (tariffDetailOld.Count() > 0) { foreach (var item in tariffDetailOld) { //item.UserCreated = setTariffDetailRepo.Get(x => x.Id == item.Id).FirstOrDefault().UserCreated; item.UserModified = model.setTariff.UserModified; //item.DatetimeCreated = setTariffDetailRepo.Get(x => x.Id == item.Id).FirstOrDefault().DatetimeCreated; item.DatetimeModified = DateTime.Now; var hsTariffDetailUpdate = setTariffDetailRepo.Update(item, x => x.Id == item.Id); } } //Add các tariff detail mới var tariffDetailNew = tariffDetails.Where(x => x.Id == Guid.Empty).ToList(); if (tariffDetailNew.Count > 0) { tariffDetailNew.ForEach(r => { r.Id = Guid.NewGuid(); r.TariffId = tariff.Id; r.UserCreated = r.UserModified = model.setTariff.UserModified; r.DatetimeCreated = r.DatetimeModified = DateTime.Now; }); var hsTariffDetailAdd = setTariffDetailRepo.Add(tariffDetailNew); } } return(hs); } catch (Exception ex) { return(new HandleState(ex.Message)); } }