コード例 #1
0
 public int Create(ReturnDeviceRequest o)
 {
     using (var db = new BillingDbContext())
     {
         db.ServiceRequests.Add(o);
         return(db.SaveChanges());
     }
 }
        /******************************************************************************************
        * From domain model to value object
        ******************************************************************************************/
        public ReturnDeviceRequestDTO ToRequestDTO(ReturnDeviceRequest o)
        {
            var vo = new ReturnDeviceRequestDTO();

            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);
        }
        /******************************************************************************************
        * From value object to domain model
        ******************************************************************************************/
        public ReturnDeviceRequest ToRequest(ReturnDeviceRequestDTO vo)
        {
            var o = new ReturnDeviceRequest();

            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);
        }
コード例 #4
0
 public int Update(ReturnDeviceRequest 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.OldContract != null)
                         {
                             var oc = ri1.OldContract;
                             if (oc.No == 0)
                             {
                                 oriri1.OldContract = oc;
                                 db.Entry(oc).State = EntityState.Added;
                             }
                             else
                             {
                                 db.Entry(oriri1.OldContract).CurrentValues.SetValues(oc);
                                 db.Entry(oriri1.OldContract).State = EntityState.Modified;
                             }
                         }
                         if (ri1.UpdContract != null)
                         {
                             var uc = ri1.UpdContract;
                             if (uc.No == 0)
                             {
                                 oriri1.UpdContract = uc;
                                 db.Entry(uc).State = EntityState.Added;
                             }
                             else
                             {
                                 db.Entry(oriri1.UpdContract).CurrentValues.SetValues(uc);
                                 db.Entry(oriri1.UpdContract).State = EntityState.Modified;
                             }
                         }
                     }
                 }
             }
         }
         db.Entry(o).State = EntityState.Modified;
         return(db.SaveChanges());
     }
 }