public int Create(NewScenarioRequest o) { using (var db = new BillingDbContext()) { db.ServiceRequests.Add(o); return(db.SaveChanges()); } }
/****************************************************************************************** * From value object to domain model ******************************************************************************************/ public NewScenarioRequest ToRequest(NewScenarioRequestDTO vo) { var o = new NewScenarioRequest(); ClassCopier.Instance.Copy(vo, o); if (vo.RequestInfo != null) { o.RequestInfo = ToRequestInfo(vo.RequestInfo); } if (vo.Routings.Count > 0) { o.Routings = ToRoutingInfos(vo.Routings); } return(o); }
/****************************************************************************************** * From domain model to value object ******************************************************************************************/ public NewScenarioRequestDTO ToRequestDTO(NewScenarioRequest o) { var vo = new NewScenarioRequestDTO(); ClassCopier.Instance.Copy(o, vo); if (o.RequestInfo != null) { vo.RequestInfo = ToRequestInfoDTO(o.RequestInfo); } if (o.Routings.Count > 0) { vo.Routings = ToRoutingInfosDTO(o.Routings); } return(vo); }
public int Update(NewScenarioRequest o) { using (var db = new BillingDbContext()) { var ori = Select(o.No, true); if (o.RequestInfo != null) { var ri = o.RequestInfo; if (ri.No == 0) { ori.RequestInfo = ri; db.Entry(ri).State = EntityState.Added; } else { db.RequestInfos.Attach(ori.RequestInfo); db.Entry(ori.RequestInfo).CurrentValues.SetValues(ri); db.Entry(ori.RequestInfo).State = EntityState.Modified; } } if (o.Routings.Count > 0) { var list1 = o.Routings; foreach (var ri1 in list1) { if (ri1.No == 0) { ori.Routings.Add(ri1); db.Entry(ri1).State = EntityState.Added; } else { var oriri1 = ori.Routings.Find(x => x.No == ri1.No); if (oriri1 != null) { db.RoutingInfos.Attach(oriri1); ClassCopier.Instance.Copy(ri1, oriri1); db.Entry(oriri1).State = EntityState.Modified; if (ri1.Routings.Count > 0) { var list2 = ri1.Routings; foreach (var ri2 in list2) { if (ri2.No == 0) { oriri1.Routings.Add(ri2); db.Entry(ri2).State = EntityState.Added; } else { var oriri2 = oriri1.Routings.Find(y => y.No == ri2.No); db.RoutingItems.Attach(oriri2); db.Entry(oriri2).CurrentValues.SetValues(ri2); db.Entry(oriri2).State = EntityState.Modified; } } } if (ri1.Contract != null) { var oc = ri1.Contract; if (oc.No == 0) { oriri1.Contract = oc; db.Entry(oc).State = EntityState.Added; } else { db.Entry(oriri1.Contract).CurrentValues.SetValues(oc); db.Entry(oriri1.Contract).State = EntityState.Modified; } } } } } } db.Entry(o).State = EntityState.Modified; return(db.SaveChanges()); } }