public async Task <IActionResult> AddEmployee([Bind("IdEmployee,FullName,Address,Telephone,Employment,Salary,Pid")] Employee employee) { if (ModelState.IsValid) { _context.Add(employee); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(EmployeesList))); } return(View(employee)); }
public async Task <IActionResult> AddContract([Bind("IdContract,Date,Provider,Price,Type")] Contract contract) { // only admins can add contracts if (Authentication.Instance.isLoggedIn() && Authentication.Instance.isAdmin()) { if (ModelState.IsValid) { _context.Add(contract); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(ContractsList))); } return(View(contract)); } else { return(Redirect("~/MainPage")); } }
/// <summary> /// Finds or adds new weakness for the POAM /// </summary> /// <param name="originalRecommendation">Original Recommendation of the POAM</param> /// <param name="risk">The Risk of the POAM</param> /// <returns>The weakness object</returns> private async Task <Weakness> CrateWeakness(string originalRecommendation, string risk) { Weakness weakness = null; //Find if the weakness exists weakness = await _context.Weaknesses.Where(item => item.OriginalRecommendation == originalRecommendation && item.Risk == risk).FirstOrDefaultAsync(); // if the weakness does not exist, create a new weakness if (weakness == null) { weakness = new Weakness { Risk = risk, OriginalRecommendation = originalRecommendation }; // Add the object to the database _context.Weaknesses.Add(weakness); // Save the object. This will get the ID field populated as well await _context.SaveChangesAsync(); } return(weakness ?? throw new Exception(@"Weakness not found and/or could not be created")); }
public async Task <IActionResult> Import(IFormFile fileupload) { // get the poam list from the uploaded worksheet var poams = _entityservice.ReadPOAMsFromExcel(fileupload); // add the poam list to persistent storage foreach (var item in await poams) { _context.POAMs.Add(item); await _context.SaveChangesAsync(); } // Redirect back to the index page return(RedirectToAction("Index", "POAM")); }
public async Task <IActionResult> Create(POAMViewModel poam) { try { var entity = await _entityservice.CreatePOAMFromViewModel(poam); _context.POAMs.Add(entity); await _context.SaveChangesAsync(); } catch (Exception ex) { throw ex; } return(RedirectToAction("Index")); }
public async Task <IActionResult> AddPaymentReceipt([Bind("IdReceipt,Date,Amount,IdApartment")] Receipt receipt) { var apartment = _context.Apartment.FirstOrDefault(a => a.IdApartment == receipt.IdApartment); // owner of the apartment can add a payment receipt if (Authentication.Instance.isLoggedIn() && apartment.IdOwner == Authentication.Instance.getCurrentUser().IdOwner) { if (ModelState.IsValid) { _context.Add(receipt); await _context.SaveChangesAsync(); return(Redirect("~/ApartmentsOwned")); } return(View(receipt)); } else { return(Redirect("~/ApartmentsOwned")); } }
public async Task <IActionResult> AddWaterConsumption([Bind("IdWaterConsumption,WarmWater,ColdWater,Date,IdApartment")] WaterConsumption waterConsumption) { var apartment = _context.Apartment.FirstOrDefault(a => a.IdApartment == waterConsumption.IdApartment); // owner of the apartment can add water consumption if (Authentication.Instance.isLoggedIn() && apartment.IdOwner == Authentication.Instance.getCurrentUser().IdOwner) { if (ModelState.IsValid) { _context.Add(waterConsumption); await _context.SaveChangesAsync(); return(Redirect("~/ApartmentsOwned")); } return(View(waterConsumption)); } else { return(Redirect("~/ApartmentsOwned")); } }
public async Task <IActionResult> MainPage() { // only logged users can see the main page if (Authentication.Instance.isLoggedIn()) { var apartments = _context.Apartment.Include(a => a.IdOwnerNavigation).OrderBy(a => a.IdOwnerNavigation.FullName); var contracts = _context.Contract; var employees = _context.Employee; // total salary of all employees double salarySum = 0; foreach (var employee in employees) { salarySum += employee.Salary; } //number of all association tenants byte totalAssociationTenants = 0; foreach (var apartment in apartments) { if (apartment.NoTenants != null) { totalAssociationTenants += apartment.NoTenants.Value; } } // compute personnel salary tax per tenant double taxPerTenant = salarySum / totalAssociationTenants; foreach (Apartment apartment in apartments) { var waterConsumptions = _context.WaterConsumption.Where(w => w.IdApartment == apartment.IdApartment); var receipts = _context.Receipt.Where(r => r.IdApartment == apartment.IdApartment); DateTime date = DateTime.Now; WaterConsumption oldWaterConsumption = waterConsumptions.FirstOrDefault(w => w.Date.Month != date.Month); // if an old report of water consumption was found if (oldWaterConsumption != null) { // current debt becomes previous debt apartment.PreviousDebt += apartment.CurrentDebt; // delete the report _context.WaterConsumption.Remove(oldWaterConsumption); } apartment.CurrentDebt = 0; var currentWaterConsumption = waterConsumptions.FirstOrDefault(w => w.Date.Month == date.Month); // compute payment for warm and cold water in the current month if (currentWaterConsumption != null) { var warmWaterContract = contracts.FirstOrDefault(c => c.Type == "Warm Water"); var coldWaterContract = contracts.FirstOrDefault(c => c.Type == "Cold Water"); apartment.CurrentDebt += currentWaterConsumption.ColdWater * coldWaterContract.Price + currentWaterConsumption.WarmWater * warmWaterContract.Price; } // for other contracts add tax per tenant foreach (var contract in contracts) { if (contract.Type != "Water") { apartment.CurrentDebt += contract.Price * apartment.NoTenants; } } // add personnel salary tax per tenant apartment.CurrentDebt += apartment.NoTenants * taxPerTenant; //subtract amount from current debt based on receipts var currentReceipts = receipts.Where(r => r.Date.Month == date.Month); foreach (var receipt in currentReceipts) { if (apartment.CurrentDebt != 0) { apartment.CurrentDebt -= receipt.Amount; } else { if (apartment.PreviousDebt != 0) { apartment.PreviousDebt -= receipt.Amount; } } } apartment.CurrentDebt = Math.Round((double)apartment.CurrentDebt, 2); apartment.PreviousDebt = Math.Round((double)apartment.PreviousDebt, 2); apartment.TotalDebt = apartment.PreviousDebt + apartment.CurrentDebt; _context.Update(apartment); } await _context.SaveChangesAsync(); return(View(await apartments.ToListAsync())); } else { return(Redirect("~/Home/Index")); } }