public IHttpActionResult Post([FromBody] ExpenseGroup expenseGroup) { // TODO: figure out why this doesn't work??!! :( try { if (expenseGroup == null) { return(BadRequest()); } // simulate create expenseGroup.Id = ExpenseGroup.Max(eg => eg.Id) + 1; ExpenseGroup.Add(expenseGroup); // should return fresh copy of created entity bool created = true; if (created) { return(Created($"{Request.RequestUri}/{expenseGroup.Id}", expenseGroup)); } return(BadRequest()); } catch (Exception) { return(InternalServerError()); } }
public RepositoryActionResult <ExpenseGroup> EditExpenseGroup(ExpenseGroup expenseGroup) { try { var existingEG = _context.ExpenseGroups .FirstOrDefault(eg => eg.Id == expenseGroup.Id); if (existingEG == null) { return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.NotFound)); } _context.Entry(existingEG).State = EntityState.Detached; _context.ExpenseGroups.Attach(expenseGroup); _context.Entry(expenseGroup).State = EntityState.Modified; var result = _context.SaveChanges(); if (result == 0) { return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.NothingModified, null)); } else { return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.Updated)); } } catch (Exception ex) { return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.Error, ex)); } }
public async Task <ActionResult> Create(ExpenseGroup expenseGroup) { try { var client = ExpenseTrackerHttpClient.GetClient(); var claimsIdentity = this.User.Identity as ClaimsIdentity; var userId = claimsIdentity.FindFirst("unique_user_key").Value; // an expensegroup is created with status "Open", for the current user expenseGroup.ExpenseGroupStatusId = 1; expenseGroup.UserId = userId; var serializedItemToCreate = JsonConvert.SerializeObject(expenseGroup); var response = await client.PostAsync("api/expensegroups", new StringContent(serializedItemToCreate, System.Text.Encoding.Unicode, "application/json")); if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } else { return(Content("An error occurred")); } } catch { return(Content("An error occurred.")); } }
public async Task <ActionResult> Edit(int id, ExpenseGroup expenseGroup) { try { var client = ExpenseTrackerHttpClient.GetClient(); var serializedItemToUpdate = JsonConvert.SerializeObject(expenseGroup); var response = await client.PutAsync("api/expensegroups/" + id, new StringContent(serializedItemToUpdate, System.Text.Encoding.Unicode, "application/json")); if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } else { return(Content("An error occurred.")); } } catch (Exception) { return(Content("An error occurred.")); } }
public async Task <ActionResult> Edit(int id, ExpenseGroup expenseGroup) { try { var client = ExpenseTrackerHttpClient.GetClient(); // create a JSON Patch Document JsonPatchDocument <DTO.ExpenseGroup> patchDoc = new JsonPatchDocument <DTO.ExpenseGroup>(); patchDoc.Replace(eg => eg.Title, expenseGroup.Title); patchDoc.Replace(eg => eg.Description, expenseGroup.Description); // serialize and PATCH var serializedItemToUpdate = JsonConvert.SerializeObject(patchDoc); var response = await client.PatchAsync("api/expensegroups/" + id, new StringContent(serializedItemToUpdate, System.Text.Encoding.Unicode, "application/json")); if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } else { return(Content("An error occurred")); } } catch { return(Content("An error occurred")); } }
public async Task <ActionResult> Create(ExpenseGroup expenseGroup) { try { var client = ExpenseTrackerHttpClient.GetClient(); // an expensegroup is created with status "Open", for the current user expenseGroup.ExpenseGroupStatusId = 1; expenseGroup.UserId = @"https://expensetrackeridsrv3/embedded_1"; var serializedItemToCreate = JsonConvert.SerializeObject(expenseGroup); var response = await client.PostAsync("api/expensegroups", new StringContent(serializedItemToCreate, System.Text.Encoding.Unicode, "application/json")); if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } else { return(Content("An error occurred.")); } } catch { return(Content("An error occurred.")); } }
public static Engine.Core.ExpenseGroup ToModel(this ExpenseGroup expenseGroup) { return(new Engine.Core.ExpenseGroup() { Id = expenseGroup.ExpenseGroupId, Code = expenseGroup.Code, Description = expenseGroup.Description, IsActive = expenseGroup.IsActive }); }
public static ExpenseGroupDTO CreateExpenseGroupDTO(ExpenseGroup expenseGroup) { return(new ExpenseGroupDTO() { Description = expenseGroup.Description, ExpenseGroupStatusId = expenseGroup.ExpenseGroupStatusId, Id = expenseGroup.Id, Title = expenseGroup.Title, Expenses = expenseGroup.Expenses.Select(e => ExpenseFactory.CreateExpenseDTO(e)).ToList() }); }
public DTO.ExpenseGroup CreateExpenseGroup(ExpenseGroup expenseGroup) { return(new DTO.ExpenseGroup() { Description = expenseGroup.Description, ExpenseGroupStatusId = expenseGroup.ExpenseGroupStatusId, Id = expenseGroup.Id, Title = expenseGroup.Title, UserId = expenseGroup.UserId, Expenses = expenseGroup.Expenses.Select(e => expenseFactory.CreateExpense(e)).ToList() }); }
public void WhenUpdateInvoked() { var expenseGroup = new ExpenseGroup() { Name = "Group 1" }; _expenseGroupRepository.Setup(x => x.Edit(expenseGroup)); _groupServiceMock.Update(expenseGroup); _expenseGroupRepository.Verify(m => m.Edit(It.IsAny <ExpenseGroup>()), Times.Once); _unitOfWork.Verify(m => m.Commit(), Times.Once); }
private ExpenseGroupDto GetExpenseGroupDtoFromExpenseGroup(ExpenseGroup expenseGroup) { var expenseGroupDto = new ExpenseGroupDto() { Id = Guid.Parse(expenseGroup.Id), Name = expenseGroup.Name, Active = expenseGroup.Active, CreationDate = expenseGroup.CreationDate, LastUpdateDate = expenseGroup.LastUpdateDate }; return(expenseGroupDto); }
private ExpenseGroup GetExpenseGroupFromExpenseGroupDto(ExpenseGroupDto expenseGroupDto) { var expenseGroup = new ExpenseGroup() { Id = expenseGroupDto.Id.ToString(), UserId = expenseGroupDto.UserId.ToString(), Name = expenseGroupDto.Name, Active = expenseGroupDto.Active, CreationDate = expenseGroupDto.CreationDate, LastUpdateDate = expenseGroupDto.LastUpdateDate }; return(expenseGroup); }
public ActionResult CreateGroup(ExpenseGroupVM data) { if (!ModelState.IsValid) { return(View("AddGroup", data)); } var groupItem = new ExpenseGroup { Name = data.Name }; _groupService.Create(groupItem); return(RedirectToAction("Index")); }
public void WhenGetByIdIsInvoked() { var expenseGroup = new ExpenseGroup() { Id = 1, Name = "Group 1" }; _expenseGroupRepository.Setup(x => x.GetById(groupId)).Returns(expenseGroup); var result = _groupServiceMock.GetById(groupId); Assert.That(result, Is.InstanceOf <ExpenseGroup>()); Assert.AreEqual(expenseGroup.Name, result.Name); Assert.AreEqual(expenseGroup.Id, result.Id); _unitOfWork.Verify(m => m.Commit(), Times.Never); }
public ExpenseGroup Save([FromBody] ExpenseGroup model) { ModelState.Validate(); if (model.Id > 0) { _repository.Update(model); } else { _repository.Insert(model); } return(model); }
private List <ExpenseGroup> GenerateEntities() { Dictionary <string, string> expenseGroupNames = new Dictionary <string, string> { { "Битови сметки", "Household bills" }, { "Жилище", "Housing" }, { "Храна и консумативи", "Food and supplies" }, { "Заеми", "Loans" }, { "Транспорт", "Transportation" }, { "Автомобил", "Car" }, { "Деца", "Children" }, { "Дрехи и обувки", "Clothes and shoes" }, { "Лични", "Personal" }, { "Цигари и алкохол", "Cigarettes and alcohol" }, { "Развлечения", "Entertainment" }, { "Хранене навън", "Eating out" }, { "Образование", "Education" }, { "Подаръци", "Gifts" }, { "Спорт/Хоби", "Sports / Hobbies" }, { "Пътуване/Отдих", "Travel / Leisure" }, { "Медицински", "Medical" }, { "Домашни любимци", "Pets" }, { "Разни", "Miscellaneous" } }; List <ExpenseGroup> expenseGroups = new List <ExpenseGroup>(); foreach (var keyValuePair in expenseGroupNames) { ExpenseGroup expenseGroup = new ExpenseGroup() { CreatedOn = DateTime.UtcNow, ModifiedOn = null, IsDeleted = false, DeletedOn = null, NameEN = keyValuePair.Value, NameBG = keyValuePair.Key, IsMain = true }; expenseGroups.Add(expenseGroup); } return(expenseGroups); }
/// <summary> /// Return bool if ok, the newly-created ExpenseGroup is still available (including /// the id) to the calling class. /// </summary> /// <param name="eg"></param> /// <returns></returns> public RepositoryActionResult <ExpenseGroup> InsertExpenseGroup(ExpenseGroup eg) { try { _ctx.ExpenseGroups.Add(eg); var result = _ctx.SaveChanges(); if (result > 0) { return(new RepositoryActionResult <ExpenseGroup>(eg, RepositoryActionStatus.Created)); } else { return(new RepositoryActionResult <ExpenseGroup>(eg, RepositoryActionStatus.NothingModified, null)); } } catch (Exception ex) { return(new RepositoryActionResult <ExpenseGroup>(null, RepositoryActionStatus.Error, ex)); } }
public RepositoryActionResult <ExpenseGroup> UpdateExpenseGroup(ExpenseGroup eg) { try { // you can only update when an expensegroup already exists for this id var existingEG = _ctx.ExpenseGroups.FirstOrDefault(exg => exg.Id == eg.Id); if (existingEG == null) { return(new RepositoryActionResult <ExpenseGroup>(eg, RepositoryActionStatus.NotFound)); } // change the original entity status to detached; otherwise, we get an error on attach // as the entity is already in the dbSet // set original entity state to detached _ctx.Entry(existingEG).State = EntityState.Detached; // attach & save _ctx.ExpenseGroups.Attach(eg); // set the updated entity state to modified, so it gets updated. _ctx.Entry(eg).State = EntityState.Modified; var result = _ctx.SaveChanges(); if (result > 0) { return(new RepositoryActionResult <ExpenseGroup>(eg, RepositoryActionStatus.Updated)); } else { return(new RepositoryActionResult <ExpenseGroup>(eg, RepositoryActionStatus.NothingModified, null)); } } catch (Exception ex) { return(new RepositoryActionResult <ExpenseGroup>(null, RepositoryActionStatus.Error, ex)); } }
public IHttpActionResult Get(int id, string fields = null) { try { bool includeExpenses = false; List <string> lstOfFields = new List <string>(); // we should include expenses when the fields-string contains "expenses" if (fields != null) { lstOfFields = fields.ToLower().Split(',').ToList(); includeExpenses = lstOfFields.Any(f => f.Contains("expenses")); } ExpenseGroup expenseGroup = null; if (includeExpenses) { expenseGroup = _repo.GetExpenseGroupWithExpenses(id); } else { expenseGroup = _repo.GetExpenseGroup(id); } if (expenseGroup != null) { return(Ok(ExpenseGroupFactory.CreateDataShapedObjectExpenseGroup(expenseGroup, lstOfFields))); } else { return(NotFound()); } } catch (Exception) { return(InternalServerError()); } }
public OperationResult <ExpenseGroup> Add(ExpenseGroup expenseGroup) { var serviceResult = new OperationResult <ExpenseGroup>(); try { expenseGroup.Id = Guid.NewGuid().ToString(); expenseGroup.CreationDate = DateTime.Now; expenseGroup.LastUpdateDate = DateTime.Now; var createdExpenseGroup = this.unitOfwork.ExpenseGroupRepository.Add(expenseGroup); this.unitOfwork.SaveChanges(); serviceResult = this.serviceResultBuilder.BuildOperationResult(createdExpenseGroup, OperationResultType.Success, string.Empty); } catch { var message = $"There was an error while trying to add Expense Group {expenseGroup.Name}"; serviceResult = this.serviceResultBuilder.BuildOperationResult(expenseGroup, OperationResultType.Error, message); } return(serviceResult); }
public RepositoryActionResult <ExpenseGroup> AddExpenseGroup(ExpenseGroup expenseGroup) { try { _context.ExpenseGroups .Add(expenseGroup); var result = _context.SaveChanges(); if (result > 0) { return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.Created)); } else { return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.NothingModified)); } } catch (Exception ex) { return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.Error, ex)); } }
public OperationResult <ExpenseGroup> Edit(ExpenseGroup expenseGroup) { var operationResult = new OperationResult <ExpenseGroup>(); try { var expenseGroupToEdit = this.unitOfwork.ExpenseGroupRepository.GetById(Guid.Parse(expenseGroup.Id)); expenseGroupToEdit.Name = expenseGroup.Name; expenseGroupToEdit.Active = expenseGroup.Active; expenseGroupToEdit.LastUpdateDate = DateTime.Now; this.unitOfwork.SaveChanges(); operationResult = serviceResultBuilder.BuildOperationResult(expenseGroupToEdit, OperationResultType.Success, string.Empty); } catch { var message = $"There was an error while trying to update Expense Group with Id {expenseGroup.Id}"; operationResult = serviceResultBuilder.BuildOperationResult(expenseGroup, OperationResultType.Error, message); } return(operationResult); }
public ActionResult Create(ExpenseGroup expenseGroup) { return(View()); }
public object CreateDataShapedObject(ExpenseGroup expenseGroup, List <string> fields) { return(CreateDataShapedObject(CreateExpenseGroup(expenseGroup), fields)); }
public SetNewExpenseGroupMessage(ExpenseGroup expenseGroup) { ExpenseGroup = expenseGroup; }
public async Task <ActionResult> Edit(int id, ExpenseGroup expenseGroup) { #region editusingput //try //{ // var client = ExpenseTrackerHttpClient.GetClient(); // // serialize & PUT // var serializedItemToUpdate = JsonConvert.SerializeObject(expenseGroup); // var response = await client.PutAsync("api/expensegroups/" + id, // new StringContent(serializedItemToUpdate, // System.Text.Encoding.Unicode, "application/json")); // if (response.IsSuccessStatusCode) // { // return RedirectToAction("Index"); // } // else // { // return Content("An error occurred"); // } //} //catch //{ // return Content("An error occurred"); //} #endregion #region editusingpatch try { var client = ExpenseTrackerHttpClient.GetClient(); JsonPatchDocument <DTO.ExpenseGroup> patchDoc = new JsonPatchDocument <ExpenseGroup>(); patchDoc.Replace(eg => eg.Title, expenseGroup.Title); patchDoc.Replace(eg => eg.Description, expenseGroup.Description); var serializedItemToUpdate = JsonConvert.SerializeObject(patchDoc); var response = await client.PatchAsync("api/expensegroups/" + id, new StringContent(serializedItemToUpdate, System.Text.Encoding.Unicode, "application/json")); if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } else { return(Content("An error occurred")); } } catch { return(Content("An error occurred")); } #endregion }
public ExpenseGroup Add(ExpenseGroup newExpenseGroup) { return(this.context.ExpenseGroups.Add(newExpenseGroup)); }
public ActionResult Edit(int id, ExpenseGroup expenseGroup) { return(View()); }
protected override void Seed(ExpenseTracker.Repository.ExpenseTrackerContext context) { var defaultGroup = new ExpenseGroup() { Name = "Europian trip" }; context.ExpenseGroups.Add(defaultGroup); var userList = new List <ExpenseUser> { new ExpenseUser() { Email = "*****@*****.**", DisplayName = "Somu Jose" }, new ExpenseUser() { Email = "*****@*****.**", DisplayName = "Dipu" }, new ExpenseUser() { Email = "*****@*****.**", DisplayName = "Jahan" }, new ExpenseUser() { Email = "*****@*****.**", DisplayName = "Jinoy" } }; context.ExpenseUsers.AddRange(userList); context.SaveChanges(); var groupId = context.ExpenseGroups.FirstOrDefault().Id; var user1Id = context.ExpenseUsers.FirstOrDefault(x => x.Email == "*****@*****.**").Id; var user2Id = context.ExpenseUsers.FirstOrDefault(x => x.Email == "*****@*****.**").Id; var user3Id = context.ExpenseUsers.FirstOrDefault(x => x.Email == "*****@*****.**").Id; var user4Id = context.ExpenseUsers.FirstOrDefault(x => x.Email == "*****@*****.**").Id; var expenseItems = new List <ExpenseItem> { new ExpenseItem() { ExpenseGroupId = groupId, Amount = 120, UserId = user1Id }, new ExpenseItem() { ExpenseGroupId = groupId, Amount = 46, UserId = user1Id }, new ExpenseItem() { ExpenseGroupId = groupId, Amount = 80, UserId = user2Id }, new ExpenseItem() { ExpenseGroupId = groupId, Amount = 55, UserId = user3Id }, new ExpenseItem() { ExpenseGroupId = groupId, Amount = 110, UserId = user3Id }, new ExpenseItem() { ExpenseGroupId = groupId, Amount = 66, UserId = user3Id }, new ExpenseItem() { ExpenseGroupId = groupId, Amount = 60, UserId = user4Id }, new ExpenseItem() { ExpenseGroupId = groupId, Amount = 35, UserId = user4Id } }; context.ExpenseItems.AddRange(expenseItems); context.SaveChanges(); }
public void Remove(ExpenseGroup expenseGroup) { this.context.ExpenseGroups.Remove(expenseGroup); }