public async Task <IActionResult> OnGetAsync() { if (string.IsNullOrEmpty(Request.Cookies["Token"])) { return(Redirect("/")); } LastMessage = ""; var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/donations/expense/{Request.Query["id"]}"); if (!response.IsSuccessStatusCode) { LastMessage = JsonConvert.DeserializeObject <string>(await response.Content.ReadAsStringAsync()); return(Page()); } var expense = JsonConvert.DeserializeObject <GanjoorExpense>(await response.Content.ReadAsStringAsync()); Expense = new UpdateDateDescriptionViewModel() { Date = expense.ExpenseDate, Description = expense.Description }; return(Page()); }
public async Task <IActionResult> UpdateExpense(int id, [FromBody] UpdateDateDescriptionViewModel expense) { try { Guid userId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value); var res = await _donationService.UpdateExpense(userId, id, expense); if (!string.IsNullOrEmpty(res.ExceptionString)) { return(BadRequest(res.ExceptionString)); } return(Ok(res.Result)); } catch (Exception exp) { return(BadRequest(exp.ToString())); } }
/// <summary> /// update expense /// </summary> /// <param name="editingUserId"></param> /// <param name="id"></param> /// <param name="updateModel"></param> /// <returns></returns> public async Task <RServiceResult <bool> > UpdateExpense(Guid editingUserId, int id, UpdateDateDescriptionViewModel updateModel) { var expense = await _context.GanjoorExpenses.Include(e => e.DonationExpenditures).Where(d => d.Id == id).SingleAsync(); List <GanjoorDonation> donations = new List <GanjoorDonation>(); foreach (var expenditure in expense.DonationExpenditures) { if (!donations.Where(d => d.Id == expenditure.GanjoorDonationId).Any()) { donations.Add(await _context.GanjoorDonations.Where(d => d.Id == expenditure.GanjoorDonationId).SingleAsync()); } } expense.ExpenseDate = updateModel.Date; expense.Description = updateModel.Description; _context.GanjoorExpenses.Update(expense); await _context.SaveChangesAsync(); await RegenerateDonationsExpenditureDesc(donations); await RegenerateDonationsPage(editingUserId, $"ویرایش هزینهٔ {expense.Description} به مبلغ {LanguageUtils.FormatMoney(expense.Amount)} {expense.Unit}");//ignore possible errors here! return(new RServiceResult <bool>(true)); }
/// <summary> /// update donation /// </summary> /// <param name="editingUserId"></param> /// <param name="id"></param> /// <param name="updateModel"></param> /// <returns></returns> public async Task <RServiceResult <bool> > UpdateDonation(Guid editingUserId, int id, UpdateDateDescriptionViewModel updateModel) { var donation = await _context.GanjoorDonations.Where(d => d.Id == id).SingleAsync(); donation.RecordDate = updateModel.Date; donation.DateString = LanguageUtils.FormatDate(donation.RecordDate); donation.DonorName = updateModel.Description; _context.GanjoorDonations.Update(donation); await _context.SaveChangesAsync(); await RegenerateDonationsPage(editingUserId, $"ویرایش کمک مالی از {donation.DonorName} به مبلغ {donation.AmountString}");//ignore possible errors here! return(new RServiceResult <bool>(true)); }