public IHttpActionResult UpdateBudget(string referenceId, BudgetRequest budgetRequest) { if (string.IsNullOrEmpty(referenceId)) { return(BadRequest("referenceId not found")); } if (budgetRequest == null) { return(BadRequest("spendBudgetEntity not found")); } if (budgetRequest.SpendCategoryId <= 0 || budgetRequest.CareHomeId <= 0) { return(BadRequest("SpendCateCareHome id and amount not found")); } if (string.IsNullOrEmpty(budgetRequest.DateFrom.ToString()) || string.IsNullOrEmpty(budgetRequest.DateTo.ToString())) { return(BadRequest("Missing required fields")); } var loggedInUser = HttpContext.Current.User as SecurityPrincipal; logger.Info($"Spend Budget created by {loggedInUser.ForeName}"); budgetRequest.UpdatedById = loggedInUser.Id; budgetRequest.UpdatedDate = DateTime.Now; var result = _budgetService.Update(budgetRequest); return(Ok(result)); }
public ActionResult Index(BudgetRequest request) { var result = this.ProjectService.GetBudgetList(request); foreach (var rt in result) { if (rt.LaborCost != null) { rt.BudgetTotal += rt.LaborCost.LaborTotal; } if (rt.MaterialCost != null) { rt.BudgetTotal += rt.MaterialCost.MaterialTotal; } if (rt.MachineryCost != null) { rt.BudgetTotal += rt.MachineryCost.MachineryTotal; } if (rt.Measure != null) { rt.BudgetTotal += rt.Measure.MeasureTotal; } if (rt.Overhead != null) { rt.BudgetTotal += rt.Overhead.OverheadTotal; } //rt.BudgetTotal +=rt.Warranty + rt.Subcontracting + rt.OtherBudget; } return(View(result)); }
public void GetBudgetReturnsLastAvailableBudget() { Budget budget = budgetService.CreateBudget(budgetRequest); BudgetRequest budgetRequest2 = new BudgetRequest { StartDate = new DateTime(2034, 05, 06), EndDate = new DateTime(2050, 12, 17), Amount = 123.5, BudgetItems = new List <BudgetItemRequest>() }; Budget budget2 = budgetService.CreateBudget(budgetRequest2); int id_budget1 = budget.BudgetId; int id_budget2 = budget2.BudgetId; budget = dbContext.Budgets.Where(b => b.BudgetId == id_budget1).FirstOrDefault(); budget2 = dbContext.Budgets.Where(b => b.BudgetId == id_budget2).FirstOrDefault(); Assert.NotNull(budget); Assert.NotNull(budget2); Budget budgetFromService = budgetService.GetCurrentBudget(); Assert.Equal(budget2, budgetFromService); }
private BudgetEntity ToEntity(BudgetRequest budgetRequest) { IEnumerable <BudgetAllocationEntity> spendBudgetAllocationEntities = budgetRequest.BudgetAllocations.Select(a => { return(ToEntity(a)); }).ToArray(); return(new BudgetEntity() { Id = budgetRequest.Id, ReferenceId = budgetRequest.ReferenceId, SpendCategoryId = budgetRequest.SpendCategoryId, CareHomeId = budgetRequest.CareHomeId, Name = budgetRequest.Name, BudgetType = budgetRequest.BudgetType, DateFrom = budgetRequest.DateFrom, DateTo = budgetRequest.DateTo, Description = budgetRequest.Description, PoPrefix = budgetRequest.PoPrefix, Status = budgetRequest.Status, Reason = budgetRequest.Reason, CreatedById = budgetRequest.CreatedById, UpdatedById = budgetRequest.UpdatedById, UpdatedDate = budgetRequest.UpdatedDate, BudgetAllocations = spendBudgetAllocationEntities }); }
public async Task <IActionResult> CreateBudget([FromBody] BudgetRequest request) { var userId = User.Claims.FirstOrDefault(c => c.Type == "id").Value; var userExists = await _identityService.CheckIfUserExists(userId); if (!userExists) { return(NotFound(new ErrorResponse(new ErrorModel { Message = $"There is no user with id: {userId}" }))); } var budget = await _budgetService.NewBudgetAsync(request, userId); if (budget == null) { return(BadRequest(new ErrorResponse(new ErrorModel { Message = "Could not create new budget" }))); } var locationUri = _uriService.GetBudgetUri(budget.Id); return(Created(locationUri, new Response <BudgetResponse>(_mapper.Map <BudgetResponse>(budget)))); }
public Budget CreateBudget(BudgetRequest request) { string loggedUser = _httpContextAccessor.HttpContext.User.FindFirstValue("userId"); LocalDate newStartDate = LocalDate.FromDateTime((DateTime)request.StartDate); LocalDate newEndDate = LocalDate.FromDateTime((DateTime)request.EndDate); List <Budget> foundBudgets = dbContext.Budgets.Where(b => (b.StartDate.CompareTo(newStartDate) < 0 && b.EndDate.CompareTo(newStartDate) > 0) || (b.StartDate.CompareTo(newEndDate) < 0 && b.EndDate.CompareTo(newStartDate) > 0)) .ToList(); if (foundBudgets.Count > 0) { throw new SkrillaApiException("conflict", "There is a budget for that time period already"); } Budget budget = new Budget( LocalDate.FromDateTime((DateTime)request.StartDate), LocalDate.FromDateTime((DateTime)request.EndDate), request.Amount, loggedUser); dbContext.Add(budget); List <int> categoryIds = request.BudgetItems.Select(i => i.category).ToList(); List <Category> categories = dbContext.Categories .Where(s => s.PersonId.Equals(loggedUser)) .ToList(); if (categories == null) { throw new SkrillaApiException("not_found", "One or more categories were not found."); } categories.ForEach(category => { BudgetItem item = new BudgetItem(budget, category, 0); dbContext.Add(item); }); request.BudgetItems.ForEach(i => { BudgetItem item = budget.BudgetItems.Where(bi => i.category.Equals(bi.Category.CategoryId)).FirstOrDefault(); if (item != null) { item.BudgetedAmount = i.amount; } }); dbContext.SaveChanges(); return(budget); }
public async Task <BudgetRequest> Create(BudgetRequestCreate budgetRequestIn, string labGroupId) { var budgetRequest = BudgetRequest.FromCreate(budgetRequestIn, labGroupId); await _budgetRequests.InsertOneAsync(budgetRequest); return(budgetRequest); }
public BudgetControllerTest() { ContextOptions = new DbContextOptionsBuilder <SkrillaDbContext>() .UseSqlite(CreateInMemoryDatabase()) .Options; _connection = RelationalOptionsExtension.Extract(ContextOptions).Connection; dbContext = new SkrillaDbContext(ContextOptions); dbContext.Database.EnsureDeleted(); dbContext.Database.EnsureCreated(); category = new Category("ExampleCategory", false, "mockUser", "exampleIcon"); category2 = new Category("ExampleCategory2", false, "mockUser", "exampleIcon"); dbContext.Add(category); dbContext.Add(category2); dbContext.SaveChanges(); List <BudgetItemRequest> budgetItems = new List <BudgetItemRequest> { new BudgetItemRequest { category = category.CategoryId, amount = 23.5 }, new BudgetItemRequest { category = category2.CategoryId, amount = 101.5 } }; budgetRequest = new BudgetRequest { StartDate = new DateTime(2019, 05, 06), EndDate = new DateTime(2030, 04, 17), Amount = 123.5, BudgetItems = budgetItems }; var budgetLoggerMock = new Mock <ILogger <BudgetService> >(); var controllerLoggerMock = new Mock <ILogger <BudgetController> >(); budgetService = new BudgetService(budgetLoggerMock.Object, dbContext, GetMockHttpAccesor()); controller = new BudgetController(controllerLoggerMock.Object, budgetService); controller.ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext { User = principal } }; }
public void ProcessAllocation(int budget, int withheld) { var request = new BudgetRequest() { Budget = budget, DebtPayed = withheld }; _requests.Add(request); CheckRequests(); }
public IEnumerable <BudgetInfo> GetBudgetList(BudgetRequest request = null) { request = request ?? new BudgetRequest(); using (var dbContext = new ProjectDbContext()) { IQueryable <BudgetInfo> Budgets = dbContext.Budgets.Include("LaborCost").Include("Overhead").Include("MachineryCost").Include("MaterialCost").Include("Measure"); if (!string.IsNullOrEmpty(request.ProjectName)) { Budgets = Budgets.Where(u => u.ProjectName.Contains(request.ProjectName)); } return(Budgets.OrderByDescending(u => u.ID).ToPagedList(request.PageIndex, request.PageSize)); } }
public BudgetResponse IncreaseBudgetAllocation(BudgetRequest budgetRequest) { BudgetAllocation allocation = budgetRequest.BudgetAllocations.FirstOrDefault(); if (allocation.Approved == Constants.BUDGET_APPROVED) { allocation.ApprovedById = budgetRequest.UpdatedById; allocation.ApprovedDate = DateTime.Now; } allocation.UpdatedById = budgetRequest.UpdatedById; allocation.UpdatedDate = DateTime.Now; var updated = _spendBudgetDataProvider.IncreaseBudgetAllocation(ToEntity(budgetRequest)); return(ToModel(updated)); }
public async Task <BudgetRequest> AddBudGetRequest(BudgetRequest budgetRequest, string userId) { if (budgetRequest.ProjectNumber == "ADMIN") { budgetRequest.ProjectId = null; } var key = await GenerateBudgetRequestNumber(); budgetRequest.RequestNumber = key.Reference; budgetRequest.RNumber = key.Number; _db.UserId = userId; var result = _db.BudgetRequests.Add(budgetRequest); return(result); }
public async Task <ActionResult <BudgetRequest> > Get([FromHeader] string authToken) { if (!await _authenticationService.CheckAccess(authToken, "budgetView")) { return(Unauthorized()); } BudgetRequest budgetRequest = await _budgetRequestService.Get(await _labGroupService.GetByMemberId(AuthenticationHelpers.GetUserIdFromToken(authToken))); if (budgetRequest == null) { return(BadRequest("No Active Budget Requests!")); } return(budgetRequest); }
public BudgetResponse Update(BudgetRequest budgetRequest) { // If allocation is, Approved already, do not change the amount // If budget Compleated do not change any fields // Else only update, dateFrom, dateTo, desc, poPrefix, status var existingBudget = GetBudgetListResponse(budgetRequest.ReferenceId); if (existingBudget.Status == Constants.BUDGET_STATUS_COMPLETED) { return(null); // Todo: throw valid bus exception to be bubble upto UI } var unApprovedIds = existingBudget.BudgetAllocations.Where(a => a.Approved != "Y").Select(a => a.Id); List <BudgetAllocation> unApproved = new List <BudgetAllocation>(); unApprovedIds.ForEach(id => { unApproved.Add(budgetRequest.BudgetAllocations.Where(a => a.Id == id).FirstOrDefault()); }); // With unApproved list, when a user is approving, add date and user id unApproved.ForEach(a => { if (a.Approved == Constants.BUDGET_APPROVED) { a.ApprovedById = budgetRequest.UpdatedById; a.ApprovedDate = DateTime.Now; } // Ensure updated date and updated by id is filled in a.UpdatedById = budgetRequest.UpdatedById; a.UpdatedDate = DateTime.Now; }); budgetRequest.BudgetAllocations = unApproved; // Find start and end dates when the budget type is 'Monthly' if (budgetRequest.BudgetType == BudgetType.Monthly) { IEnumerable <DatePair> dates = GenerateMonthStartEndDates(budgetRequest.BudgetMonth, 1); budgetRequest.DateFrom = dates.First().StartDate; budgetRequest.DateTo = dates.First().EndDate; } var spendBudgetEntityUpdated = _spendBudgetDataProvider.Update(ToEntity(budgetRequest)); return(ToModel(spendBudgetEntityUpdated)); }
public IHttpActionResult IncrementBudgetAllocationAmount(string referenceId, BudgetRequest budgetRequest) { if (string.IsNullOrEmpty(referenceId) || budgetRequest == null) { return(BadRequest("Budget reference id or allocation is missing.")); } var loggedInUser = HttpContext.Current.User as SecurityPrincipal; logger.Info($"Spend Budget created by {loggedInUser.ForeName}"); budgetRequest.UpdatedById = loggedInUser.Id; budgetRequest.UpdatedDate = DateTime.Now; var inserted = _budgetService.IncreaseBudgetAllocation(budgetRequest); return(Ok(inserted)); }
public async Task <Budget> NewBudgetAsync(BudgetRequest budgetRequest, string userId) { var budgetDto = new BudgetDto { CreatedAt = DateTime.UtcNow, UpdatedAt = DateTime.UtcNow, Name = budgetRequest.Name, Description = budgetRequest.Description, UserId = userId }; var budget = _mapper.Map <Budget>(budgetDto); var created = await _baseRepository.CreateEntityAsync(budget); return(created); }
public BudgetResponse Insert(BudgetRequest budgetRequest) { // For Inserts, request comes with ONE allocation entity. User can save ONLY ONE AMOUNT. But entity is handled as multiple (1-many) if (budgetRequest.BudgetAllocations.FirstOrDefault().Approved == Constants.BUDGET_APPROVED) { budgetRequest.BudgetAllocations.FirstOrDefault().ApprovedById = budgetRequest.CreatedById; budgetRequest.BudgetAllocations.FirstOrDefault().ApprovedDate = DateTime.Now; } // Ensure all allocations has updated id and date.. budgetRequest.BudgetAllocations.ForEach(a => { a.UpdatedById = budgetRequest.CreatedById; }); // Find start and end dates when the budget type is 'Monthly' if (budgetRequest.BudgetType == BudgetType.Monthly) { IEnumerable <DatePair> dates = GenerateMonthStartEndDates(budgetRequest.BudgetMonth, 1); budgetRequest.DateFrom = dates.First().StartDate; budgetRequest.DateTo = dates.First().EndDate; } // Recurring budgets. Month starts at 1. 1=Jan. If less than Zero, than no recurring budgets. BudgetEntity inserted = null; BudgetEntity[] budgetEntities; if (budgetRequest.NumberOfMonths > 0) { // Recurring budget budgetEntities = CreateRecurringBudgets(budgetRequest); } else { // Standard insert. ONE budget entity. make it array so imple is easier budgetEntities = new List <BudgetEntity>() { ToEntity(budgetRequest) }.ToArray(); } inserted = _spendBudgetDataProvider.Insert(budgetEntities); return(ToModel(inserted)); }
private BudgetEntity[] CreateRecurringBudgets(BudgetRequest budgetRequest) { var startMonth = budgetRequest.BudgetMonth; var numOfMonths = budgetRequest.NumberOfMonths; var listOfDates = GenerateMonthStartEndDates(startMonth, numOfMonths).ToArray(); // create n number of reqs entities List <BudgetEntity> list = new List <BudgetEntity>(); for (int i = 0; i < numOfMonths; i++) { var temp = ToEntity(budgetRequest); temp.DateFrom = listOfDates[i].StartDate; temp.DateTo = listOfDates[i].EndDate; list.Add(temp); } return(list.ToArray()); }
public void BudgetRequestIsCreatedSuccessfully() { DateTime start = new DateTime(2019, 05, 10); DateTime end = new DateTime(2020, 04, 15); BudgetRequest request = new BudgetRequest { StartDate = start, EndDate = end, Amount = 123.5, BudgetItems = items }; string jsonString = JsonSerializer.Serialize <BudgetRequest>(request); Assert.Equal(start, request.StartDate); Assert.Equal(end, request.EndDate); Assert.Equal(123.5, request.Amount); Assert.Single(request.BudgetItems); }
public IHttpActionResult InsertBudget(BudgetRequest budgetRequest) { if (budgetRequest == null) { return(BadRequest("Spend budget is null")); } if (budgetRequest.SpendCategoryId <= 0 || budgetRequest.CareHomeId <= 0) { return(BadRequest("Care category id and care home id is required")); } if (budgetRequest.BudgetAllocations.FirstOrDefault().Amount <= 0) { return(BadRequest("Budget amount is required")); } if (budgetRequest.BudgetType == BudgetType.Monthly && budgetRequest.BudgetMonth <= 0) { return(BadRequest("Budget month is required field")); } if (budgetRequest.BudgetType == BudgetType.Project) { if (string.IsNullOrEmpty(budgetRequest.DateFrom.ToString()) || string.IsNullOrEmpty(budgetRequest.DateTo.ToString())) { return(BadRequest("Budget dates are required fields")); } } var loggedInUser = HttpContext.Current.User as SecurityPrincipal; logger.Info($"Spend Budget created by {loggedInUser.ForeName}"); budgetRequest.CreatedById = loggedInUser.Id; budgetRequest.UpdatedById = loggedInUser.Id; var result = _budgetService.Insert(budgetRequest); return(Ok(result)); }
public ActionResult <object> Post([FromBody] BudgetRequest request) { string loggedUser = User.FindFirstValue("userId"); if (loggedUser == null) { return(Unauthorized()); } ValidationResult result = validator.Validate(request); if (!result.IsValid) { return(BadRequest(new ValidationSummary(result))); } try { Budget budget = budgetService.CreateBudget(request); if (budget == null) { return(StatusCode(500)); } return(CreatedAtAction(nameof(Post), null, budget)); } catch (SkrillaApiException e) { if ("conflict".Equals(e.Code)) { return(new SkrillaGenericResponse(e.Code, e.Message)); } else { return(BadRequest(e.Message)); } } }
public void GetBudgetList() { BudgetRequest secondBudgetRequest = new BudgetRequest { StartDate = new DateTime(2030, 05, 06), EndDate = new DateTime(2040, 04, 17), Amount = 123.5, BudgetItems = new List <BudgetItemRequest>() }; Budget firstBudget = budgetService.CreateBudget(budgetRequest); Budget secondBudget = budgetService.CreateBudget(secondBudgetRequest); var result = controller.GetBudgetList(); List <Budget> budgetList = (List <Budget>)result.Value; Assert.True(budgetList.Exists(b => b.BudgetId.Equals(firstBudget.BudgetId) && b.Amount.Equals(firstBudget.Amount) )); Assert.True(budgetList.Exists(b => b.BudgetId.Equals(secondBudget.BudgetId) && b.Amount.Equals(secondBudget.Amount))); }
public async Task <ActionResult <BudgetRequest> > Create([FromHeader] string authToken, BudgetRequestCreate budgetRequest) { if (!await _authenticationService.CheckAccess(authToken, "announceView")) { return(Unauthorized()); } LabGroup group = await _labGroupService.GetByMemberId(AuthenticationHelpers.GetUserIdFromToken(authToken)); BudgetRequest created = await _budgetRequestService.Create(budgetRequest, group.Id); await _logService.Create(new Log( null, AuthenticationHelpers.GetUserIdFromToken(authToken), DateTime.UtcNow, "Document created.", "budgetRequests", created.Id, JsonSerializer.Serialize(created) )); return(Ok(budgetRequest)); }
public void ModifyBudgetFailsDueToOldBudget() { BudgetRequest oldBudgetRequest = new BudgetRequest { StartDate = new DateTime(2019, 05, 06), EndDate = new DateTime(2019, 08, 17), Amount = 123.5, BudgetItems = new List <BudgetItemRequest>() }; Budget budget = budgetService.CreateBudget(oldBudgetRequest); BudgetItemRequest itemRequest = new BudgetItemRequest(); itemRequest.category = 123456; itemRequest.budgetId = budget.BudgetId; itemRequest.amount = 10005.5; itemRequest.ForceRequest = false; var result = controller.ModifyCategoryBudget(itemRequest).Result as ObjectResult; SkrillaGenericResponse resultValue = (SkrillaGenericResponse)result.Value; Assert.Equal("invalid_request", resultValue.Code); Assert.Equal("No se puede alterar presupuestos pasados.", resultValue.Message); }
private async Task ProcessApprovedRequest(BudgetRequest request) { var project = await GetProjectByIdAsync(request.ProjectId.Value); project.RemainingBudget = project.RemainingBudget - request.TotalAmount; if (request.BudgetRequestItems.Count > 0) { foreach (var item in request.BudgetRequestItems) { if (item.Amount > 0) { if (item.Category == "CONTRACTORS/OUTSOURCE") { var result = await GetProposalContractorByIdAsync(item.ItemId); if (result != null) { result.RemainingBudget = result.RemainingBudget - item.Amount; _db.Entry(result).State = EntityState.Modified; } } else if (item.Category == "OPERATING EXPENSES") { var result = await GetProposalExpenseByIdAsync(item.ItemId); if (result != null) { result.RemainingBudget = result.RemainingBudget - item.Amount; _db.Entry(result).State = EntityState.Modified; } } else if (item.Category == "EQUIPMENT") { var pEquip = await GetProposalEquipmentByIdAsync(item.ItemId); var result = await GetInventoryByIdAsync(pEquip.InventoryId); if (result != null) { pEquip.RemainingBudget = pEquip.RemainingBudget - item.Amount; _db.Entry(result).State = EntityState.Modified; } } else if (item.Category == "LABORATORY ANALYSIS") { var result = await GetProposalLaboratoryByIdAync(item.ItemId); if (result != null) { result.RemainingBudget = result.RemainingBudget - item.Amount; _db.Entry(result).State = EntityState.Modified; } } else if (item.Category == "COMMISSIONS/REPRESENTATIONS") { var result = await GetProposalCommissionByIdAsync(item.ItemId); if (result != null) { result.RemainingBudget = result.RemainingBudget - item.Amount; _db.Entry(result).State = EntityState.Modified; } } } } } _db.Entry(project).State = EntityState.Modified; }
public async void Update(BudgetRequest original, BudgetRequestUpdate update) => await _budgetRequests.ReplaceOneAsync(budgetRequest => budgetRequest.Id == original.Id, BudgetRequest.FromUpdate(original, update));
public async Task <ActionResult> ProjectRequest(BudgetRequestViewModel model) { try { // How this work everytime you add a new item it will store to Items note this list cant be modified to // as of deleting you need to add the TempId to ToBeDeleted List this list is for the deleted items you can only store id here // like the Items you cant modify this list // to get the not deleted list you need to just filer the ToBeDeleted list to Items the get the result and add it to ShowItems // note if you refresh the will all temp data will be lost // Add item await SetListItemsAsync(model); if (model.Item != null && model.IsCreate == "addItem") { if (model.Items.Count > 0 && model.IsCreate != "delete") { // Asign tempId int count = model.Items.Last().TempId; model.Item.TempId = count += 1; } else { // Asign defualt value model.Item.TempId = 1; } #region Dropdown // Add item to item list model = await ManageDropDownValuesAndValidition(model); if (!model.Error.IsEmpty()) { model.ShowItems = model.Items.Where(m => !model.ListOfDeleted.Any(xx => xx == m.TempId)).ToList(); TempData["Error"] = model.Error; return(View(model)); } #endregion model.Items.Add(model.Item); model.IsCreate = null; TempData["Success"] = "New item added"; // Get not delete items model.ShowItems = model.Items.Where(m => !model.ListOfDeleted.Any(xx => xx == m.TempId)).ToList(); return(View(model)); } // Removed Item else if (model.IsCreate != "true" && model.IsCreate != "addItem") { // Get item to be removed int toBeDeleted = model.Items.Where(m => m.TempId == model.TobeDeleted).First().TempId; // Add tempid to list of deleted model.ListOfDeleted.Add(toBeDeleted); // Get not delete items model.ShowItems = model.Items.Where(m => !model.ListOfDeleted.Any(xx => xx == m.TempId)).ToList(); model.TobeDeleted = 0; TempData["Success"] = "Item Removed"; return(View(model)); } // Save Budget Request // Purpose an Date needed validation model.ShowItems = model.Items.Where(m => !model.ListOfDeleted.Any(xx => xx == m.TempId)).ToList(); if (model.Purpose.IsEmpty()) { model.Error = "Please enter Purpose of request"; } else if (model.DateNeeded == null) { model.Error = "Please enter Date Needed"; } else if (model.Items.Count <= 0) { model.Error = "Please add request item"; } if (!model.Error.IsEmpty()) { TempData["Error"] = model.Error; return(View(model)); } model.RequestorName = CurrentUser.DisplayName; model.RequestorId = CurrentUser.Id; model.TotalAmount = model.TotalAmountForView; BudgetRequest request = await _repo.AddBudGetRequest(_mapper.Map <BudgetRequest>(model), CurrentUser.Id); // Get proper list foreach (var item in model.ShowItems) { item.BudgetRequestId = request.Id; _repo.AddBudGetRequestItem(_mapper.Map <BudgetRequestItem>(item), CurrentUser.Id); } if (await _repo.SaveAllAsync()) { TempData["Success"] = string.Format("BudgetRequest has been successfully Sent"); return(RedirectToAction("Show", "Project", new { id = model.ProjectId })); } else { await SetListItemsAsync(model); TempData["Error"] = "Unable to send BudgetRequest due to some internal issues."; return(View(model)); } } catch (Exception e) { TempData["Error"] = e.Message; await SetListItemsAsync(model); return(View(model)); } }
public BudgetRequestValidationTest() { request = new BudgetRequest(); validator = new BudgetValidation(); }
public async Task <IActionResult> Update([FromHeader] string authToken, string id, BudgetRequestUpdate budgetRequestUpdate) { if (!await _authenticationService.CheckAccess(authToken, "budgetMgr")) { return(Unauthorized()); } var budgetRequest = await _budgetRequestService.Get(id); if (budgetRequest == null) { return(NotFound()); } _budgetRequestService.Update(budgetRequest, budgetRequestUpdate); await _logService.Create(new Log( null, AuthenticationHelpers.GetUserIdFromToken(authToken), DateTime.UtcNow, "Document modified.", "budgetRequests", id, JsonSerializer.Serialize(BudgetRequest.FromUpdate(budgetRequest, budgetRequestUpdate)) )); if (budgetRequestUpdate.StockroomApprovedFlag) { LabGroup group = await _labGroupService.GetByMemberId(AuthenticationHelpers.GetUserIdFromToken(authToken)); group.Budget = group.Budget + budgetRequestUpdate.IncreaseAmount; group.BudgetBalance = group.BudgetBalance + budgetRequestUpdate.IncreaseAmount; group.Transactions.Add(new Transaction( null, "Add", "Budget Increase", budgetRequestUpdate.IncreaseAmount, DateTime.UtcNow )); _labGroupService.Update(group, group.Id); await _logService.Create(new Log( null, AuthenticationHelpers.GetUserIdFromToken(authToken), DateTime.UtcNow, "Document modified.", "budgetRequests", id, JsonSerializer.Serialize(group) )); if (!_hostEnvironment.EnvironmentName.Equals("Development", StringComparison.OrdinalIgnoreCase)) { foreach (string userId in group.Members) { User temp = await _userService.Get(userId); EmailHelpers.SendBudgetRequestApprovedEmail(temp.TechMail); } } } return(Ok()); }