// GET: InvIssues/Edit/5 public ActionResult Edit(long?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } InvIssue invIssue = db.InvIssues.Find(id); InvIssueDto invIssueDto = new InvIssueDto() { Id = invIssue.Id, Description = invIssue.Description, IssueBy = invIssue.IssueBy, IssueDate = Convert.ToDateTime(invIssue.IssueDate), IssueTo = invIssue.IssueTo, IssueNo = invIssue.IssueNo, IssuePlaceId = (int)Enum.Parse(typeof(IssuePlace), invIssue.IssuePlace), listUser = db.AspNetUsers.Select(x => new UserDto() { Email = x.Email, Id = x.Id }).ToList(), ObjectState = (int)ObjectState.Modified, listIssueDetail = GetIssueDetails(invIssue.Id), IssuePlaceList = IssuePlaceDto.ConvertEnum() }; if (invIssue == null) { return(HttpNotFound()); } return(View(invIssueDto)); }
// GET: InvIssues/Create public ActionResult Create() { InvIssueDto invIssueDto = new InvIssueDto() { Id = 0, IssueDate = DateTime.Now, IssueBy = Convert.ToInt64(User.Identity.GetUserId()), IssuePlaceList = IssuePlaceDto.ConvertEnum(), ObjectState = (int)ObjectState.Added }; invIssueDto.listUser = db.AspNetUsers.Select(x => new UserDto() { Email = x.Email, Id = x.Id }).ToList(); return(View(invIssueDto)); }
public async Task <List <InvIssueDetailDto> > SaveDetailAsync(InvIssueDto vm) { try { foreach (var item in vm.listIssueDetail) { var objsave = new InvIssueDetail() { Id = item.Id, InventoryItemId = item.InventoryItemId, InvIssueId = vm.Id, Quantity = item.Quantity }; if (objsave.Id > 0 && item.ObjectState != (int)ObjectState.Deleted) { item.ObjectState = (int)ObjectState.Modified; } if (objsave.Id <= 0 && item.ObjectState != (int)ObjectState.Deleted) { item.ObjectState = (int)ObjectState.Added; } switch (item.ObjectState) { case (int)ObjectState.Added: db.InvIssueDetails.Add(objsave); await db.SaveChangesAsync(); break; case (int)ObjectState.Modified: db.Entry(objsave).State = EntityState.Modified; await db.SaveChangesAsync(); break; } item.Id = objsave.Id; } vm.listIssueDetail = GetIssueDetails(vm.Id); return(vm.listIssueDetail); } catch (Exception ex) { return(null); } }
public async Task <JsonResult> SaveAsync(InvIssueDto vm) { try { if (ModelState.IsValid) { if (vm.listIssueDetailsToDelete.Count() > 0) { foreach (var item in vm.listIssueDetailsToDelete) { var objdelete = db.InvIssueDetails.Find(item); if (objdelete != null) { db.Entry(objdelete).State = EntityState.Deleted; await db.SaveChangesAsync(); } } } var objsave = new InvIssue() { Id = vm.Id, Description = vm.Description, IssueBy = vm.IssueBy, IssueTo = vm.IssueTo, IssueDate = vm.IssueDate.ToString(), IssueNo = vm.IssueNo, IssuePlace = ((IssuePlace)vm.IssuePlaceId).ToString() }; if (objsave.Id > 0 && vm.ObjectState != (int)ObjectState.Deleted) { vm.ObjectState = (int)ObjectState.Modified; } if (objsave.Id <= 0 && vm.ObjectState != (int)ObjectState.Deleted) { vm.ObjectState = (int)ObjectState.Added; } switch (vm.ObjectState) { case (int)ObjectState.Added: db.InvIssues.Add(objsave); await db.SaveChangesAsync(); break; case (int)ObjectState.Modified: db.Entry(objsave).State = EntityState.Modified; await db.SaveChangesAsync(); break; case (int)ObjectState.Deleted: var details = db.InvIssueDetails.Where(x => x.InvIssueId == objsave.Id).ToList(); foreach (var item in details) { var invissuedetail = await db.InvIssueDetails.FindAsync(item.Id); db.Entry(invissuedetail).State = EntityState.Deleted; db.SaveChanges(); } db.Entry(objsave).State = EntityState.Deleted; await db.SaveChangesAsync(); break; } vm.Id = objsave.Id; vm.listIssueDetail = await SaveDetailAsync(vm); var result = new { result = vm }; return(Json(result)); } else { var result = new { result = false }; return(Json(result)); } } catch (Exception ex) { return(Json(null)); } }