/// <summary> /// Add new tag /// </summary> /// <param name="expense">Expense saving model</param> /// <param name="userIdentity">Owner</param> /// <returns>Result message</returns> public Enums.Messages AddExpense(ExpenseModels.SaveExpenseModel expense, string userIdentity) { using (var context = new ExpenseDatabaseContext()) { //find tag. You can edit just yours tags var tag = context.Tags.FirstOrDefault(x => x.TagId == expense.Tag); var user = context.Users.FirstOrDefault(x => x.Login == userIdentity); // check user account if (user == null) { return Enums.Messages.UserNotRegistrate; } // new expense will add if (tag != null) { context.Expenses.Add(new Expense() { Amount = expense.Amount, DateOfMakingExpense = expense.DateOfMakingExpense.ToUniversalTime(), Description = expense.Description, Tag = tag, User = user }); return context.SaveChanges() >= 1 ? Enums.Messages.Good : Enums.Messages.ErorWriteInDatabase; } return Enums.Messages.ErorWriteInDatabase; } }
public ActionResult NewExpense(ExpenseModels.SaveExpenseModel model) { if (ModelState.IsValid) { if (new ExpenseGeneralFunction().AddExpense(model, User.Identity.Name) == Enums.Messages.Good) { ViewBag.Mess = "Expense added"; return View(new ExpenseModels.CreateExpenseModel(User.Identity.Name)); } } return View(new ExpenseModels.CreateExpenseModel() { DateOfMakingExpense = model.DateOfMakingExpense, Amount = model.Amount, Description = model.Description, Tags = new TagGeneralFunction().AllUserTags(User.Identity.Name), Tag = model.Tag }); }
/// <summary> /// Edit expense /// </summary> /// <param name="model">edit model</param> /// <param name="userIdentity">user account</param> /// <returns>result message</returns> public Enums.Messages EditExpense(ExpenseModels.DisplayExpenseModel model, string NewTag, string userIdentity) { using (var context = new ExpenseDatabaseContext()) { // find expense. You can edit just yours expenses var expense = context.Expenses.FirstOrDefault(x => x.ExpenseId == model.Id && x.User.Login == userIdentity); // seach new tag var tag = context.Tags.FirstOrDefault(x => !x.IsDelete && x.Name == NewTag); if (expense != null) { // if tag didn't find , than create new tag if (tag == null) { tag = (new Tag() { Name = NewTag, User = expense.User }); context.Tags.Add(tag); } // save data expense.Amount = model.Amount; expense.Tag = tag; expense.Description = model.Description; expense.DateOfMakingExpense = model.DateOfMakingExpense; return context.SaveChanges() >= 1 ? Enums.Messages.Good : Enums.Messages.ErorWriteInDatabase; } return Enums.Messages.RecordNotFound; } }
public ActionResult EditExpense(ExpenseModels.DisplayExpenseModel model, string NewTag) { new ExpenseGeneralFunction().EditExpense(model, NewTag, User.Identity.Name); return RedirectToAction("ShowExpenses", "Expense"); }
public ActionResult ShowExpenses(ExpenseModels.RequestStatisticModel model) { // select all Expenses var extenseHelper = new ExpenseGeneralFunction(); var allUserExtenses = extenseHelper.AllUserExpenses(User.Identity.Name, model.BeginOfPeriod.ToUniversalTime(), model.EndOfPeriod.ToUniversalTime()); // spent sum decimal totalAmount = 0; // create info by tags var statTags = extenseHelper.ExpenseByTag(allUserExtenses, ref totalAmount); // create new model, that contain all needing data return View(new ExpenseModels.DisplayStatisticModel() { StatisticsByTag = statTags, AllExpenses = allUserExtenses, TotalAmount = totalAmount, BeginOfPeriod = model.BeginOfPeriod, EndOfPeriod = model.EndOfPeriod }); }