public ResponseModel SavePackageAdvance(PackageAdvance model) { bool IsFindMatch = false; var existingList = GetPackageAdvanceList(100); PackageAdvanceViewModel matchPackage = new PackageAdvanceViewModel(); var findMatch = existingList.Where(r => r.PackageId == model.PackageId && r.PeriodTypeId == model.PeriodTypeId && r.Id != model.Id).FirstOrDefault(); if (findMatch != null) { matchPackage = findMatch; IsFindMatch = true; } if (!IsFindMatch) { try { if (model.Id == null) { model.CreatedDate = DateTime.Now; model.Id = Guid.NewGuid().ToString(); DbContext.PackageAdvance.Add(model); } else { var local = DbContext.Set <PackageAdvance>().Local.FirstOrDefault(c => c.Id == model.Id); if (local != null) { DbContext.Entry(local).State = System.Data.Entity.EntityState.Detached; } var dbData = DbContext.PackageAdvance.Where(r => r.Id == model.Id).FirstOrDefault(); dbData.PackageId = model.PackageId; dbData.Amount = model.Amount; dbData.UpdatedDate = DateTime.Now; DbContext.Entry(dbData).State = System.Data.Entity.EntityState.Modified; } DbContext.SaveChanges(); return(new ResponseModel { Success = true, Message = "Success" }); } catch (Exception ex) { throw ex; } } return(new ResponseModel { Success = false, Message = matchPackage.PackageName + " and period type " + matchPackage.PeriodType + " already saved." }); }
public ResponseModel DeletePackageAdvance(PackageAdvance model) { try { var local = DbContext.Set <PackageAdvance>().Local.FirstOrDefault(c => c.Id == model.Id); if (local != null) { DbContext.Entry(local).State = System.Data.Entity.EntityState.Detached; } DbContext.Entry(model).State = System.Data.Entity.EntityState.Deleted; DbContext.SaveChanges(); } catch (Exception ex) { return(new ResponseModel { Success = false, Message = "Package advance can not be delete. Package is using on transaction." }); } return(new ResponseModel { Success = true, Message = "Success" }); }
public IHttpActionResult Delete([FromBody] PackageAdvance model) { return(Ok(_packageRepository.DeletePackageAdvance(model))); }