/// <summary> /// Method updates the expense record /// </summary> /// <param name="userId">User identifier</param> /// <param name="expenseRecordId">Expense record identifier. By this identifier we will find record for changing</param> /// <param name="description">Description for expense record</param> /// <param name="price">Price</param> /// <param name="tagId">Tag identifier for expense record</param> /// <param name="dateStamp">Date stamp which shows when money were spent</param> /// <returns></returns> public Response Edit(int userId, int expenseRecordId, string description, decimal price, int tagId, DateTime? dateStamp) { var response = new Response(); if (HasUserAccess(userId, expenseRecordId)) { if (string.IsNullOrEmpty(description) || price == 0 || tagId == 0 || dateStamp == null) { response.IsError = true; response.Errors.Add(Error.ExpenseRecordHasNotBeenSet); } else { var expenseRecord = GetById(userId, expenseRecordId).Object; var tagRepository = new TagRepository(context); expenseRecord.Tag = tagRepository.GetById(userId, tagId).Object; expenseRecord.Description = description; expenseRecord.Price = price; expenseRecord.DateStamp = (DateTime)dateStamp; context.Save(); } } else { response.IsError = true; response.Errors.Add(Error.UserDoesNotHaveAccess); } return response; }
/// <summary> /// Get expense records by choosen tag /// </summary> /// <param name="userId">User identifier</param> /// <param name="tagId">Tag identifier</param> /// <returns>List of expense records which is in response object</returns> public GetObjectResponse<List<ExpenseRecord>> GetExpenseRecordsByTag(int userId, int tagId) { var response = new GetObjectResponse<List<ExpenseRecord>>(); var tagRepository = new TagRepository(context); if (tagRepository.HasUserAccess(userId, tagId)) { response.Object = tagRepository.GetById(userId, tagId).Object.ExpenseRecords.ToList(); } else { response.IsError = true; response.Errors.Add(Error.UserDoesNotHaveAccess); } return response; }
/// <summary> /// Add expense record to the system /// </summary> /// <param name="userId">User identifier</param> /// <param name="description">Description for expense record</param> /// <param name="price">Price</param> /// <param name="tagId">Tag identifier for expense record</param> /// <param name="dateStamp">Date stamp which shows when money were spent</param> /// <returns>Executin result as Response object</returns> public Response Add(int userId, string description, decimal price, int tagId, DateTime? dateStamp) { var response = new AddResponse(); if (string.IsNullOrEmpty(description) || price == 0 || tagId == 0 || dateStamp == null) { response.IsError = true; response.Errors.Add(Error.ExpenseRecordHasNotBeenSet); } else { var expenseRecord = new ExpenseRecord(); var tagRepository = new TagRepository(context); expenseRecord.Tag = tagRepository.GetById(userId, tagId).Object; expenseRecord.Description = description; expenseRecord.Price = price; expenseRecord.DateStamp = (DateTime)dateStamp; response = Add(userId, expenseRecord); } return response; }