Beispiel #1
0
        public async Task <ActionResult> PostDailySpendings(DailySpendingModel Spending)
        {
            if (ModelState.IsValid)
            {
                var someDate = DateTime.Parse(Spending.date);

                var CurrentUser = _context.UserData.Find(Spending.UserId);

                var savedSpending = _context.Spendings.Where(sp => sp.Date == someDate && sp.isDeleted == false && sp.User == CurrentUser);

                if (savedSpending.Count() != 0)
                {
                    return(BadRequest(new { message = "Expense tracker for" + someDate.ToString("dd-MMM-yyy") + "exists already" }));
                }



                if (CurrentUser != null && Spending.date != null)
                {
                    CultureInfo myCI  = new CultureInfo("en-UK");
                    Calendar    myCal = myCI.Calendar;

                    CalendarWeekRule myCWR      = myCI.DateTimeFormat.CalendarWeekRule;
                    DayOfWeek        myfirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;

                    var weekNumber = myCal.GetWeekOfYear(someDate, myCWR, myfirstDOW);

                    var dailySpendings = new DailySpendings
                    {
                        User       = CurrentUser,
                        Date       = someDate,
                        DateString = Spending.date,
                        WeekNumber = weekNumber,
                        CreatedAt  = DateTime.UtcNow.ToLongDateString(),
                        UpdatedAt  = DateTime.UtcNow.ToShortDateString()
                    };

                    await _context.Spendings.AddAsync(dailySpendings);

                    await _context.SaveChangesAsync();

                    return(Ok(new { dateId = dailySpendings.DateId, date = dailySpendings.Date.ToShortDateString(), message = "Save successful" }));
                }

                return(BadRequest(new { message = "Invalid user Input" }));
            }

            return(BadRequest());
        }
Beispiel #2
0
        public async Task <IActionResult> UpdateDailySpendings(DailySpendingModel spendingModel)
        {
            if (ModelState.IsValid)
            {
                var spending = await _context.Spendings.FindAsync(spendingModel.Id);

                if (spending == null)
                {
                    return(BadRequest(new { message = "Spending not found" }));
                }

                spending.UpdatedAt = DateTime.UtcNow.ToShortDateString();

                _context.Entry(spending).State = EntityState.Modified;

                await _context.SaveChangesAsync();

                return(Ok(new { message = "Update successfully" }));
            }

            return(BadRequest(new { message = "Sorry, an error occured somewhere here" }));
        }