Пример #1
0
        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());
        }
Пример #2
0
        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()));
            }
        }
Пример #3
0
        /// <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));
        }
Пример #4
0
        /// <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));
        }